scsi: megaraid_sas: Fix the search of first memory bar
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 21 Aug 2016 08:28:25 +0000 (10:28 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 31 Aug 2016 02:22:52 +0000 (22:22 -0400)
The 2nd parameter of 'find_first_bit' is the number of bits to search.
In this case, we are passing 'sizeof(unsigned long)' which is likely to
be 4.

It is likely that the number of bits in a long was expected here, so use
BITS_PER_LONG instead.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_base.c

index c87e5ef..7edc9e2 100644 (file)
@@ -5036,7 +5036,7 @@ static int megasas_init_fw(struct megasas_instance *instance)
 
        /* Find first memory bar */
        bar_list = pci_select_bars(instance->pdev, IORESOURCE_MEM);
 
        /* Find first memory bar */
        bar_list = pci_select_bars(instance->pdev, IORESOURCE_MEM);
-       instance->bar = find_first_bit(&bar_list, sizeof(unsigned long));
+       instance->bar = find_first_bit(&bar_list, BITS_PER_LONG);
        if (pci_request_selected_regions(instance->pdev, instance->bar,
                                         "megasas: LSI")) {
                dev_printk(KERN_DEBUG, &instance->pdev->dev, "IO memory region busy!\n");
        if (pci_request_selected_regions(instance->pdev, instance->bar,
                                         "megasas: LSI")) {
                dev_printk(KERN_DEBUG, &instance->pdev->dev, "IO memory region busy!\n");