lkml.org 
[lkml]   [2004]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [BUG] sata_via broken by recent libata updates
Sergey Vlasov wrote:
> Hello!
>
> After updating from 2.4.25-libata1 to 2.4.25-libata9 the sata_via
> driver stopped working. The module loads and even seems to detect
> the presense of drives, but the SCSI-emulation devices are not
> registered:
[...]
> Seems that the problem is caused by changes in the device
> initialization - calling ata_device_add() from svia_init_one() does
> not work (at least with the 2.4.x SCSI layer). The following patch
> solves the initialization problem:
>
> --- kernel-source-2.4.25/drivers/scsi/sata_via.c.sata_via-init-fix 2004-03-22 14:03:31 +0300
> +++ kernel-source-2.4.25/drivers/scsi/sata_via.c 2004-03-24 16:27:50 +0300
> @@ -264,9 +264,7 @@ static int svia_init_one (struct pci_dev
>
> pci_set_master(pdev);
>
> - /* FIXME: check ata_device_add return value */
> - ata_device_add(probe_ent);
> - kfree(probe_ent);
> + ata_add_to_probe_list(probe_ent);
>
> return 0;

Ah, indeed. A bug in the 2.4 backport. Seems to be present in sata_sis
too.

Thanks for spotting, I just checked in the attached patch.

Jeff


# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
# 2004/03/24 13:07:52-05:00 jgarzik@redhat.com
# [libata] Fix probing bug in VIA, SiS drivers
#
# Some 2.6 code leaked into the 2.4 backport.
#
# Spotted by Sergey Vlasov.
#
# drivers/scsi/sata_via.c
# 2004/03/24 13:07:50-05:00 jgarzik@redhat.com +1 -3
# [libata] Fix probing bug in VIA, SiS drivers
#
# Some 2.6 code leaked into the 2.4 backport.
#
# Spotted by Sergey Vlasov.
#
# drivers/scsi/sata_sis.c
# 2004/03/24 13:07:50-05:00 jgarzik@redhat.com +1 -3
# [libata] Fix probing bug in VIA, SiS drivers
#
# Some 2.6 code leaked into the 2.4 backport.
#
# Spotted by Sergey Vlasov.
#
diff -Nru a/drivers/scsi/sata_sis.c b/drivers/scsi/sata_sis.c
--- a/drivers/scsi/sata_sis.c Wed Mar 24 13:08:01 2004
+++ b/drivers/scsi/sata_sis.c Wed Mar 24 13:08:01 2004
@@ -182,9 +182,7 @@
pci_set_master(pdev);
pci_enable_intx(pdev);

- /* FIXME: check ata_device_add return value */
- ata_device_add(probe_ent);
- kfree(probe_ent);
+ ata_add_to_probe_list(probe_ent);

return 0;

diff -Nru a/drivers/scsi/sata_via.c b/drivers/scsi/sata_via.c
--- a/drivers/scsi/sata_via.c Wed Mar 24 13:08:01 2004
+++ b/drivers/scsi/sata_via.c Wed Mar 24 13:08:01 2004
@@ -264,9 +264,7 @@

pci_set_master(pdev);

- /* FIXME: check ata_device_add return value */
- ata_device_add(probe_ent);
- kfree(probe_ent);
+ ata_add_to_probe_list(probe_ent);

return 0;
\
 
 \ /
  Last update: 2005-03-22 14:01    [W:0.044 / U:0.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site