2004-06-14 17:22:43

by Roger Luethi

[permalink] [raw]
Subject: [PATCH 2.6] Fix off-by-one in pci_enable_wake

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


2004-06-14 17:58:33

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH 2.6] Fix off-by-one in pci_enable_wake

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