Fix off-by-one in pci_enable_wake.
Bit field location determined by mask, not value.
Signed-off-by: Roger Luethi <[email protected]>
--- linux-2.6.7-rc3-bk6/drivers/pci/pci.c.orig 2004-06-14 18:42:09.561442345 +0200
+++ linux-2.6.7-rc3-bk6/drivers/pci/pci.c 2004-06-14 18:43:15.083670484 +0200
@@ -442,7 +442,7 @@
pci_read_config_word(dev,pm+PCI_PM_PMC,&value);
value &= PCI_PM_CAP_PME_MASK;
- value >>= ffs(value); /* First bit of mask */
+ value >>= ffs(PCI_PM_CAP_PME_MASK) - 1; /* First bit of mask */
/* Check if it can generate PME# from requested state. */
if (!value || !(value & (1 << state)))
On Mon, Jun 14, 2004 at 07:22:25PM +0200, Roger Luethi wrote:
> Fix off-by-one in pci_enable_wake.
> Bit field location determined by mask, not value.
Applied, thanks.
greg k-h