patch-2.4.0-test11 linux/drivers/scsi/gdth.c
Next file: linux/drivers/scsi/gdth_proc.c
Previous file: linux/drivers/scsi/g_NCR5380.c
Back to the patch index
Back to the overall index
- Lines: 71
- Date:
Thu Nov 16 14:08:25 2000
- Orig file:
v2.4.0-test10/linux/drivers/scsi/gdth.c
- Orig date:
Sun Oct 8 10:50:24 2000
diff -u --recursive --new-file v2.4.0-test10/linux/drivers/scsi/gdth.c linux/drivers/scsi/gdth.c
@@ -3125,6 +3125,8 @@
break;
if (gdth_search_isa(isa_bios)) { /* controller found */
shp = scsi_register(shtp,sizeof(gdth_ext_str));
+ if(shp == NULL)
+ continue;
ha = HADATA(shp);
if (!gdth_init_isa(isa_bios,ha)) {
scsi_unregister(shp);
@@ -3197,6 +3199,8 @@
break;
if (gdth_search_eisa(eisa_slot)) { /* controller found */
shp = scsi_register(shtp,sizeof(gdth_ext_str));
+ if(shp == NULL)
+ continue;
ha = HADATA(shp);
if (!gdth_init_eisa(eisa_slot,ha)) {
scsi_unregister(shp);
@@ -3268,6 +3272,8 @@
if (gdth_ctr_count >= MAXHA)
break;
shp = scsi_register(shtp,sizeof(gdth_ext_str));
+ if(shp == NULL)
+ continue;
ha = HADATA(shp);
if (!gdth_init_pci(&pcistr[ctr],ha)) {
scsi_unregister(shp);
@@ -3571,24 +3577,29 @@
ha = HADATA(gdth_ctr_tab[hanum]);
sdev = scsi_get_host_dev(gdth_ctr_tab[hanum]);
- scp = scsi_allocate_device(sdev, 1, FALSE);
+ if (!sdev)
+ return;
- scp->cmd_len = 12;
- scp->use_sg = 0;
+ scp = scsi_allocate_device(sdev, 1, FALSE);
- for (i = 0; i < MAX_HDRIVES; ++i) {
- if (ha->hdr[i].present) {
- gdtcmd.BoardNode = LOCALBOARD;
- gdtcmd.Service = CACHESERVICE;
- gdtcmd.OpCode = GDT_FLUSH;
- gdtcmd.u.cache.DeviceNo = i;
- gdtcmd.u.cache.BlockNo = 1;
- gdtcmd.u.cache.sg_canz = 0;
- TRACE2(("gdth_flush(): flush ha %d drive %d\n", hanum, i));
- gdth_do_cmd(scp, &gdtcmd, 30);
+ if (scp) {
+ scp->cmd_len = 12;
+ scp->use_sg = 0;
+
+ for (i = 0; i < MAX_HDRIVES; ++i) {
+ if (ha->hdr[i].present) {
+ gdtcmd.BoardNode = LOCALBOARD;
+ gdtcmd.Service = CACHESERVICE;
+ gdtcmd.OpCode = GDT_FLUSH;
+ gdtcmd.u.cache.DeviceNo = i;
+ gdtcmd.u.cache.BlockNo = 1;
+ gdtcmd.u.cache.sg_canz = 0;
+ TRACE2(("gdth_flush(): flush ha %d drive %d\n", hanum, i));
+ gdth_do_cmd(scp, &gdtcmd, 30);
+ }
}
+ scsi_release_command(scp);
}
- scsi_release_command(scp);
scsi_free_host_dev(sdev);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)