Message ID | 201008301737.05459.jdelvare@suse.de |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
--- linux-2.6.36-rc3.orig/drivers/ata/pata_artop.c 2010-08-02 00:11:14.000000000 +0200 +++ linux-2.6.36-rc3/drivers/ata/pata_artop.c 2010-08-30 17:07:17.000000000 +0200 @@ -74,7 +74,8 @@ static int artop6260_pre_reset(struct at struct pci_dev *pdev = to_pci_dev(ap->host->dev); /* Odd numbered device ids are the units with enable bits (the -R cards) */ - if (pdev->device % 1 && !pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no])) + if ((pdev->device & 1) && + !pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no])) return -ENOENT; return ata_sff_prereset(link, deadline);
x % 1 always evaluates to 0, which clearly isn't the intent. The author probably had "% 2" or "& 1" in mind, and mispelled it. Signed-off-by: Jean Delvare <jdelvare@suse.de> Cc: Jeff Garzik <jgarzik@pobox.com> Cc: Alan Cox <alan@linux.intel.com> --- Notice: I don't have the hardware so this fix is untested, bug was found by code inspection. drivers/ata/pata_artop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)