From: Jeff Haran <[email protected]>
Fix the edac local pci_write_bits32 to properly note the 'escape' mask
if all ones in a 32-bit word.
Currently no consumer of this function uses that mask, so danger to
existing code.
Signed-off-by: Jeff Haran <[email protected]>
Signed-off-by: Doug Thompson <[email protected]>
---
edac_core.h | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
Index: linux-2.6.29/drivers/edac/edac_core.h
===================================================================
--- linux-2.6.29.orig/drivers/edac/edac_core.h
+++ linux-2.6.29/drivers/edac/edac_core.h
@@ -767,11 +767,19 @@ static inline void pci_write_bits16(stru
pci_write_config_word(pdev, offset, value);
}
-/* write all or some bits in a dword-register*/
+/*
+ * pci_write_bits32
+ *
+ * edac local routine to do pci_write_config_dword, but adds
+ * a mask parameter. If mask is all ones, ignore the mask.
+ * Otherwise utilize the mask to isolate specified bits
+ *
+ * write all or some bits in a dword-register
+ */
static inline void pci_write_bits32(struct pci_dev *pdev, int offset,
u32 value, u32 mask)
{
- if (mask != 0xffff) {
+ if (mask != 0xffffffff) {
u32 buf;
pci_read_config_dword(pdev, offset, &buf);