ata: hpt366: fix constant cast warning
PATCH 1/1 ata: hpt366: fix constant cast warning
gcc-5.x warns about a preexisting problem in the hpt36x pata driver:
drivers/ata/pata_hpt366.c: In function 'hpt36x_init_one':drivers/ata/pata_hpt366.c:376:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers]
Other ata drivers have the same problem, as ata_pci_bmdma_init_one takes a non-const pointer, and they solve it by using a cast to turn that pointer into a normal non-const pointer.
I also tried to change the ata core code to make host->private_data a const pointer, but that quickly got out of hand, as some other drivers expect it to be writable, so I ended up using the same hack as the others here.
drivers/ata/pata_hpt366.c +2 -2
@@ -352,7 +352,7 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id) };const struct ata_port_info *ppi[] = { &info_hpt366,NULL }; -void *hpriv =NULL ; +const void *hpriv =NULL ;u32 reg1;int rc;
@@ -383,7 +383,7 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)break ; }/* Now kick off ATA set up */ -return ata_pci_bmdma_init_one (dev, ppi, &hpt36x_sht, hpriv,0 ); +return ata_pci_bmdma_init_one (dev, ppi, &hpt36x_sht, (void *)hpriv,0 ); }#ifdef CONFIG_PM_SLEEP
Hi,
Quoted 9 lines · Arnd Bergmann
gcc-5.x warns about a preexisting problem in the hpt36x pata driver:
drivers/ata/pata_hpt366.c: In function 'hpt36x_init_one':drivers/ata/pata_hpt366.c:376:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers]Other ata drivers have the same problem, as
ata_pci_bmdma_init_onetakes a non-const pointer, and they solve it by using a cast to turn that pointer into a normal non-const pointer.
Quoted 6 lines
I also tried to change the ata core code to make
host->private_dataa const pointer, but that quickly got out of hand, as some other drivers expect it to be writable, so I ended up using the same hack as the others here.Signed-off-by Arnd Bergmann <[email protected]>
Your patch looks fine to me, thanks.
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
Quoted 22 lines
drivers/ata/pata_hpt366.c +2
-2@@ -352,7 +352,7 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id) };const struct ata_port_info *ppi[] = { &info_hpt366,NULL }; -void *hpriv =NULL ; +const void *hpriv =NULL ;u32 reg1;int rc;@@ -383,7 +383,7 @@ static int hpt36x_init_one(struct pci_dev *dev, const struct pci_device_id *id)break ; }/* Now kick off ATA set up */ -return ata_pci_bmdma_init_one (dev, ppi, &hpt36x_sht, hpriv,0 ); +return ata_pci_bmdma_init_one (dev, ppi, &hpt36x_sht, (void *)hpriv,0 ); }#ifdef CONFIG_PM_SLEEP
Tejun Heo
AppliedQuoted 9 lines · Arnd Bergmann
gcc-5.x warns about a preexisting problem in the hpt36x pata driver:
drivers/ata/pata_hpt366.c: In function 'hpt36x_init_one':drivers/ata/pata_hpt366.c:376:9: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers]Other ata drivers have the same problem, as
ata_pci_bmdma_init_onetakes a non-const pointer, and they solve it by using a cast to turn that pointer into a normal non-const pointer.
Quoted 6 lines
I also tried to change the ata core code to make
host->private_dataa const pointer, but that quickly got out of hand, as some other drivers expect it to be writable, so I ended up using the same hack as the others here.Signed-off-by Arnd Bergmann <[email protected]>
Applied to libata/for-4.2.
Thanks.
Signature · 1 line
tejun