Skip to contentSkip to conversation

pnx8550: Fix broken write_config_byte() function in arch/mips/pci/ops-pnx8550.c

PATCH In review Davy Chan 2 participants 2 messages Jan 5, 2007 – Jan 8, 2007 MIPS

lore
Share & tools
lore

Davy Chan

author
#0 lore raw

PATCH 1/1 pnx8550: Fix broken write_config_byte() function in arch/mips/pci/ops-pnx8550.c

(Looks like not many people write single bytes to the PCI configuration
registers on a PNX8550-based system.)

There's a serious typo in the function:
arch/mips/pci/ops-pnx8550.c:write_config_byte()

The parameter passed to the function config_access() is PCI_CMD_CONFIG_READ instead of PCI_CMD_CONFIG_WRITE. This renders any attempts to write a single byte to the PCI configuration registers useless.

This problem does not exist for write_config_word() nor write_config_dword().

This problem has been there since kernel v2.6.17 and is still there as of kernel v2.6.19.1.

Patch attached.

See ya...

d.c.

arch/mips/pci/ops-pnx8550.c +1 -1
@@ -202,7 +202,7 @@
 		break;
 	}
 
-	err = config_access(PCI_CMD_CONFIG_READ, bus, devfn, where, ~(1 << (where & 3)), &data);
+	err = config_access(PCI_CMD_CONFIG_WRITE, bus, devfn, where, ~(1 << (where & 3)), &data);
 
 	return err;
 }
#1 lore raw
Quoted 11 lines · Davy Chan

There's a serious typo in the function:
arch/mips/pci/ops-pnx8550.c:write_config_byte()

The parameter passed to the function config_access() is PCI_CMD_CONFIG_READ instead of PCI_CMD_CONFIG_WRITE. This renders any attempts to write a single byte to the PCI configuration registers useless.

This problem does not exist for write_config_word() nor write_config_dword().

This problem has been there since kernel v2.6.17 and is still there as of kernel v2.6.19.1.

The bug exists even in 2.6.16 which is the oldest -stable branch I'm still maintaining on linux-mips.org.

Patch applied. Standard rant, please add a Signed-off-by: line. See Documentation/SubmittingPatches for what this is about.

Ralf