2009-04-07 23:57:35

by dougthompson

[permalink] [raw]
Subject: [PATCH 2/3] edac: fix local pci_write_bits32

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);