[POWERPC] 4xx: PCIe indirect DCR spinlock fix.
commite8318d98e95ddd3969c0701b5d15ec961ce786b2
authorValentine Barshak <vbarshak@ru.mvista.com>
Tue, 5 Feb 2008 18:36:49 +0000 (6 05:36 +1100)
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>
Thu, 7 Feb 2008 03:02:57 +0000 (6 21:02 -0600)
treef395df1ecab6962ece80b9082d0b953e55c9273a
parent853265e588153dca22c82b84df39bbb40abd7ad0
[POWERPC] 4xx: PCIe indirect DCR spinlock fix.

Since we have mfdcri() and mtdcri() as macros, we can't use constructions,
such as "mtdcri(base, reg, mfdcri(base, reg) | val)".  In this case the
mfdcri() stuff is not evaluated first.  It's evaluated inside the mtdcri()
macro and we have the dcr_ind_lock spinlock acquired twice.

To avoid this error, I've added __mfdcri()/__mtdcri() inline functions that
take the lock after register name fix-up.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
include/asm-powerpc/dcr-native.h