Deleted Added
full compact
ciss.c (232854) ciss.c (245459)
1/*-
2 * Copyright (c) 2001 Michael Smith
3 * Copyright (c) 2004 Paul Saab
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
1/*-
2 * Copyright (c) 2001 Michael Smith
3 * Copyright (c) 2004 Paul Saab
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 10 unchanged lines hidden (view full) ---

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 * $FreeBSD: head/sys/dev/ciss/ciss.c 232854 2012-03-12 08:03:51Z scottl $
27 * $FreeBSD: head/sys/dev/ciss/ciss.c 245459 2013-01-15 14:35:35Z sbruno $
28 */
29
30/*
31 * Common Interface for SCSI-3 Support driver.
32 *
33 * CISS claims to provide a common interface between a generic SCSI
34 * transport and an intelligent host adapter.
35 *

--- 1162 unchanged lines hidden (view full) ---

1198#if 0
1199 /* XXX later revisions may not need this */
1200 sc->ciss_flags |= CISS_FLAG_FAKE_SYNCH;
1201#endif
1202
1203 /* XXX only really required for old 5300 adapters? */
1204 sc->ciss_flags |= CISS_FLAG_BMIC_ABORT;
1205
28 */
29
30/*
31 * Common Interface for SCSI-3 Support driver.
32 *
33 * CISS claims to provide a common interface between a generic SCSI
34 * transport and an intelligent host adapter.
35 *

--- 1162 unchanged lines hidden (view full) ---

1198#if 0
1199 /* XXX later revisions may not need this */
1200 sc->ciss_flags |= CISS_FLAG_FAKE_SYNCH;
1201#endif
1202
1203 /* XXX only really required for old 5300 adapters? */
1204 sc->ciss_flags |= CISS_FLAG_BMIC_ABORT;
1205
1206 /*
1207 * Earlier controller specs do not contain these config
1208 * entries, so assume that a 0 means its old and assign
1209 * these values to the defaults that were established
1210 * when this driver was developed for them
1211 */
1212 if (sc->ciss_cfg->max_logical_supported == 0)
1213 sc->ciss_cfg->max_logical_supported = CISS_MAX_LOGICAL;
1214 if (sc->ciss_cfg->max_physical_supported == 0)
1215 sc->ciss_cfg->max_physical_supported = CISS_MAX_PHYSICAL;
1206 /* print information */
1207 if (bootverbose) {
1216 /* print information */
1217 if (bootverbose) {
1208#if 0 /* XXX proxy volumes??? */
1209 ciss_printf(sc, " %d logical drive%s configured\n",
1210 sc->ciss_id->configured_logical_drives,
1211 (sc->ciss_id->configured_logical_drives == 1) ? "" : "s");
1218 ciss_printf(sc, " %d logical drive%s configured\n",
1219 sc->ciss_id->configured_logical_drives,
1220 (sc->ciss_id->configured_logical_drives == 1) ? "" : "s");
1212#endif
1213 ciss_printf(sc, " firmware %4.4s\n", sc->ciss_id->running_firmware_revision);
1214 ciss_printf(sc, " %d SCSI channels\n", sc->ciss_id->scsi_bus_count);
1215
1216 ciss_printf(sc, " signature '%.4s'\n", sc->ciss_cfg->signature);
1217 ciss_printf(sc, " valence %d\n", sc->ciss_cfg->valence);
1218 ciss_printf(sc, " supported I/O methods 0x%b\n",
1219 sc->ciss_cfg->supported_methods,
1220 "\20\1READY\2simple\3performant\4MEMQ\n");

--- 6 unchanged lines hidden (view full) ---

1227 ciss_printf(sc, " interrupt coalesce count %d\n",
1228 sc->ciss_cfg->interrupt_coalesce_count);
1229 ciss_printf(sc, " max outstanding commands %d\n",
1230 sc->ciss_cfg->max_outstanding_commands);
1231 ciss_printf(sc, " bus types 0x%b\n", sc->ciss_cfg->bus_types,
1232 "\20\1ultra2\2ultra3\10fibre1\11fibre2\n");
1233 ciss_printf(sc, " server name '%.16s'\n", sc->ciss_cfg->server_name);
1234 ciss_printf(sc, " heartbeat 0x%x\n", sc->ciss_cfg->heartbeat);
1221 ciss_printf(sc, " firmware %4.4s\n", sc->ciss_id->running_firmware_revision);
1222 ciss_printf(sc, " %d SCSI channels\n", sc->ciss_id->scsi_bus_count);
1223
1224 ciss_printf(sc, " signature '%.4s'\n", sc->ciss_cfg->signature);
1225 ciss_printf(sc, " valence %d\n", sc->ciss_cfg->valence);
1226 ciss_printf(sc, " supported I/O methods 0x%b\n",
1227 sc->ciss_cfg->supported_methods,
1228 "\20\1READY\2simple\3performant\4MEMQ\n");

--- 6 unchanged lines hidden (view full) ---

1235 ciss_printf(sc, " interrupt coalesce count %d\n",
1236 sc->ciss_cfg->interrupt_coalesce_count);
1237 ciss_printf(sc, " max outstanding commands %d\n",
1238 sc->ciss_cfg->max_outstanding_commands);
1239 ciss_printf(sc, " bus types 0x%b\n", sc->ciss_cfg->bus_types,
1240 "\20\1ultra2\2ultra3\10fibre1\11fibre2\n");
1241 ciss_printf(sc, " server name '%.16s'\n", sc->ciss_cfg->server_name);
1242 ciss_printf(sc, " heartbeat 0x%x\n", sc->ciss_cfg->heartbeat);
1243 ciss_printf(sc, " max logical logical volumes: %d\n", sc->ciss_cfg->max_logical_supported);
1244 ciss_printf(sc, " max physical disks supported: %d\n", sc->ciss_cfg->max_physical_supported);
1245 ciss_printf(sc, " max physical disks per logical volume: %d\n", sc->ciss_cfg->max_physical_per_logical);
1235 }
1236
1237out:
1238 if (error) {
1239 if (sc->ciss_id != NULL) {
1240 free(sc->ciss_id, CISS_MALLOC_CLASS);
1241 sc->ciss_id = NULL;
1242 }

--- 71 unchanged lines hidden (view full) ---

1314 */
1315 ciss_report_request(cr, &command_status, NULL);
1316 switch(command_status) {
1317 case CISS_CMD_STATUS_SUCCESS: /* buffer right size */
1318 case CISS_CMD_STATUS_DATA_UNDERRUN: /* buffer too large, not bad */
1319 break;
1320 case CISS_CMD_STATUS_DATA_OVERRUN:
1321 ciss_printf(sc, "WARNING: more units than driver limit (%d)\n",
1246 }
1247
1248out:
1249 if (error) {
1250 if (sc->ciss_id != NULL) {
1251 free(sc->ciss_id, CISS_MALLOC_CLASS);
1252 sc->ciss_id = NULL;
1253 }

--- 71 unchanged lines hidden (view full) ---

1325 */
1326 ciss_report_request(cr, &command_status, NULL);
1327 switch(command_status) {
1328 case CISS_CMD_STATUS_SUCCESS: /* buffer right size */
1329 case CISS_CMD_STATUS_DATA_UNDERRUN: /* buffer too large, not bad */
1330 break;
1331 case CISS_CMD_STATUS_DATA_OVERRUN:
1332 ciss_printf(sc, "WARNING: more units than driver limit (%d)\n",
1322 CISS_MAX_LOGICAL);
1333 sc->ciss_cfg->max_logical_supported);
1323 break;
1324 default:
1325 ciss_printf(sc, "error detecting logical drive configuration (%s)\n",
1326 ciss_name_command_status(command_status));
1327 error = EIO;
1328 goto out;
1329 }
1330 ciss_release_request(cr);

--- 17 unchanged lines hidden (view full) ---

1348{
1349 struct ciss_lun_report *cll;
1350 int error = 0, i, j;
1351 int ndrives;
1352
1353 debug_called(1);
1354
1355 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_LOGICAL_LUNS,
1334 break;
1335 default:
1336 ciss_printf(sc, "error detecting logical drive configuration (%s)\n",
1337 ciss_name_command_status(command_status));
1338 error = EIO;
1339 goto out;
1340 }
1341 ciss_release_request(cr);

--- 17 unchanged lines hidden (view full) ---

1359{
1360 struct ciss_lun_report *cll;
1361 int error = 0, i, j;
1362 int ndrives;
1363
1364 debug_called(1);
1365
1366 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_LOGICAL_LUNS,
1356 CISS_MAX_LOGICAL);
1367 sc->ciss_cfg->max_logical_supported);
1357 if (cll == NULL) {
1358 error = ENXIO;
1359 goto out;
1360 }
1361
1362 /* sanity-check reply */
1363 ndrives = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
1368 if (cll == NULL) {
1369 error = ENXIO;
1370 goto out;
1371 }
1372
1373 /* sanity-check reply */
1374 ndrives = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
1364 if ((ndrives < 0) || (ndrives > CISS_MAX_LOGICAL)) {
1375 if ((ndrives < 0) || (ndrives > sc->ciss_cfg->max_logical_supported)) {
1365 ciss_printf(sc, "adapter claims to report absurd number of logical drives (%d > %d)\n",
1376 ciss_printf(sc, "adapter claims to report absurd number of logical drives (%d > %d)\n",
1366 ndrives, CISS_MAX_LOGICAL);
1377 ndrives, sc->ciss_cfg->max_logical_supported);
1367 error = ENXIO;
1368 goto out;
1369 }
1370
1371 /*
1372 * Save logical drive information.
1373 */
1374 if (bootverbose) {

--- 6 unchanged lines hidden (view full) ---

1381 CISS_MALLOC_CLASS, M_NOWAIT | M_ZERO);
1382 if (sc->ciss_logical == NULL) {
1383 error = ENXIO;
1384 goto out;
1385 }
1386
1387 for (i = 0; i <= sc->ciss_max_logical_bus; i++) {
1388 sc->ciss_logical[i] =
1378 error = ENXIO;
1379 goto out;
1380 }
1381
1382 /*
1383 * Save logical drive information.
1384 */
1385 if (bootverbose) {

--- 6 unchanged lines hidden (view full) ---

1392 CISS_MALLOC_CLASS, M_NOWAIT | M_ZERO);
1393 if (sc->ciss_logical == NULL) {
1394 error = ENXIO;
1395 goto out;
1396 }
1397
1398 for (i = 0; i <= sc->ciss_max_logical_bus; i++) {
1399 sc->ciss_logical[i] =
1389 malloc(CISS_MAX_LOGICAL * sizeof(struct ciss_ldrive),
1400 malloc(sc->ciss_cfg->max_logical_supported *
1401 sizeof(struct ciss_ldrive),
1390 CISS_MALLOC_CLASS, M_NOWAIT | M_ZERO);
1391 if (sc->ciss_logical[i] == NULL) {
1392 error = ENXIO;
1393 goto out;
1394 }
1395
1402 CISS_MALLOC_CLASS, M_NOWAIT | M_ZERO);
1403 if (sc->ciss_logical[i] == NULL) {
1404 error = ENXIO;
1405 goto out;
1406 }
1407
1396 for (j = 0; j < CISS_MAX_LOGICAL; j++)
1408 for (j = 0; j < sc->ciss_cfg->max_logical_supported; j++)
1397 sc->ciss_logical[i][j].cl_status = CISS_LD_NONEXISTENT;
1398 }
1399
1400
1409 sc->ciss_logical[i][j].cl_status = CISS_LD_NONEXISTENT;
1410 }
1411
1412
1401 for (i = 0; i < CISS_MAX_LOGICAL; i++) {
1413 for (i = 0; i < sc->ciss_cfg->max_logical_supported; i++) {
1402 if (i < ndrives) {
1403 struct ciss_ldrive *ld;
1404 int bus, target;
1405
1406 bus = CISS_LUN_TO_BUS(cll->lun[i].logical.lun);
1407 target = CISS_LUN_TO_TARGET(cll->lun[i].logical.lun);
1408 ld = &sc->ciss_logical[bus][target];
1409

--- 25 unchanged lines hidden (view full) ---

1435 int bus, target;
1436
1437 debug_called(1);
1438
1439 bus = 0;
1440 target = 0;
1441
1442 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_PHYSICAL_LUNS,
1414 if (i < ndrives) {
1415 struct ciss_ldrive *ld;
1416 int bus, target;
1417
1418 bus = CISS_LUN_TO_BUS(cll->lun[i].logical.lun);
1419 target = CISS_LUN_TO_TARGET(cll->lun[i].logical.lun);
1420 ld = &sc->ciss_logical[bus][target];
1421

--- 25 unchanged lines hidden (view full) ---

1447 int bus, target;
1448
1449 debug_called(1);
1450
1451 bus = 0;
1452 target = 0;
1453
1454 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_PHYSICAL_LUNS,
1443 CISS_MAX_PHYSICAL);
1455 sc->ciss_cfg->max_physical_supported);
1444 if (cll == NULL) {
1445 error = ENXIO;
1446 goto out;
1447 }
1448
1449 nphys = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
1450
1451 if (bootverbose) {

--- 526 unchanged lines hidden (view full) ---

1978 if (sc->ciss_reply_dmat)
1979 bus_dma_tag_destroy(sc->ciss_reply_dmat);
1980
1981 /* destroy DMA tags */
1982 if (sc->ciss_parent_dmat)
1983 bus_dma_tag_destroy(sc->ciss_parent_dmat);
1984 if (sc->ciss_logical) {
1985 for (i = 0; i <= sc->ciss_max_logical_bus; i++) {
1456 if (cll == NULL) {
1457 error = ENXIO;
1458 goto out;
1459 }
1460
1461 nphys = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
1462
1463 if (bootverbose) {

--- 526 unchanged lines hidden (view full) ---

1990 if (sc->ciss_reply_dmat)
1991 bus_dma_tag_destroy(sc->ciss_reply_dmat);
1992
1993 /* destroy DMA tags */
1994 if (sc->ciss_parent_dmat)
1995 bus_dma_tag_destroy(sc->ciss_parent_dmat);
1996 if (sc->ciss_logical) {
1997 for (i = 0; i <= sc->ciss_max_logical_bus; i++) {
1986 for (j = 0; j < CISS_MAX_LOGICAL; j++) {
1998 for (j = 0; j < sc->ciss_cfg->max_logical_supported; j++) {
1987 if (sc->ciss_logical[i][j].cl_ldrive)
1988 free(sc->ciss_logical[i][j].cl_ldrive, CISS_MALLOC_CLASS);
1989 if (sc->ciss_logical[i][j].cl_lstatus)
1990 free(sc->ciss_logical[i][j].cl_lstatus, CISS_MALLOC_CLASS);
1991 }
1992 free(sc->ciss_logical[i], CISS_MALLOC_CLASS);
1993 }
1994 free(sc->ciss_logical, CISS_MALLOC_CLASS);

--- 966 unchanged lines hidden (view full) ---

2961 struct ccb_pathinq *cpi = &ccb->cpi;
2962
2963 debug(1, "XPT_PATH_INQ %d:%d:%d", cam_sim_bus(sim), ccb->ccb_h.target_id, ccb->ccb_h.target_lun);
2964
2965 cpi->version_num = 1;
2966 cpi->hba_inquiry = PI_TAG_ABLE; /* XXX is this correct? */
2967 cpi->target_sprt = 0;
2968 cpi->hba_misc = 0;
1999 if (sc->ciss_logical[i][j].cl_ldrive)
2000 free(sc->ciss_logical[i][j].cl_ldrive, CISS_MALLOC_CLASS);
2001 if (sc->ciss_logical[i][j].cl_lstatus)
2002 free(sc->ciss_logical[i][j].cl_lstatus, CISS_MALLOC_CLASS);
2003 }
2004 free(sc->ciss_logical[i], CISS_MALLOC_CLASS);
2005 }
2006 free(sc->ciss_logical, CISS_MALLOC_CLASS);

--- 966 unchanged lines hidden (view full) ---

2973 struct ccb_pathinq *cpi = &ccb->cpi;
2974
2975 debug(1, "XPT_PATH_INQ %d:%d:%d", cam_sim_bus(sim), ccb->ccb_h.target_id, ccb->ccb_h.target_lun);
2976
2977 cpi->version_num = 1;
2978 cpi->hba_inquiry = PI_TAG_ABLE; /* XXX is this correct? */
2979 cpi->target_sprt = 0;
2980 cpi->hba_misc = 0;
2969 cpi->max_target = CISS_MAX_LOGICAL;
2981 cpi->max_target = sc->ciss_cfg->max_logical_supported;
2970 cpi->max_lun = 0; /* 'logical drive' channel only */
2982 cpi->max_lun = 0; /* 'logical drive' channel only */
2971 cpi->initiator_id = CISS_MAX_LOGICAL;
2983 cpi->initiator_id = sc->ciss_cfg->max_logical_supported;
2972 strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN);
2973 strncpy(cpi->hba_vid, "msmith@freebsd.org", HBA_IDLEN);
2974 strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
2975 cpi->unit_number = cam_sim_unit(sim);
2976 cpi->bus_id = cam_sim_bus(sim);
2977 cpi->base_transfer_speed = 132 * 1024; /* XXX what to set this to? */
2978 cpi->transport = XPORT_SPI;
2979 cpi->transport_version = 2;

--- 894 unchanged lines hidden (view full) ---

3874 struct ciss_ldrive *ld;
3875 int i, j, ndrives;
3876
3877 /*
3878 * We must rescan all logical volumes to get the right logical
3879 * drive address.
3880 */
3881 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_LOGICAL_LUNS,
2984 strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN);
2985 strncpy(cpi->hba_vid, "msmith@freebsd.org", HBA_IDLEN);
2986 strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
2987 cpi->unit_number = cam_sim_unit(sim);
2988 cpi->bus_id = cam_sim_bus(sim);
2989 cpi->base_transfer_speed = 132 * 1024; /* XXX what to set this to? */
2990 cpi->transport = XPORT_SPI;
2991 cpi->transport_version = 2;

--- 894 unchanged lines hidden (view full) ---

3886 struct ciss_ldrive *ld;
3887 int i, j, ndrives;
3888
3889 /*
3890 * We must rescan all logical volumes to get the right logical
3891 * drive address.
3892 */
3893 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_LOGICAL_LUNS,
3882 CISS_MAX_LOGICAL);
3894 sc->ciss_cfg->max_logical_supported);
3883 if (cll == NULL)
3884 return;
3885
3886 ndrives = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
3887
3888 /*
3889 * Delete any of the drives which were destroyed by the
3890 * firmware.
3891 */
3892 for (i = 0; i < sc->ciss_max_logical_bus; i++) {
3895 if (cll == NULL)
3896 return;
3897
3898 ndrives = (ntohl(cll->list_size) / sizeof(union ciss_device_address));
3899
3900 /*
3901 * Delete any of the drives which were destroyed by the
3902 * firmware.
3903 */
3904 for (i = 0; i < sc->ciss_max_logical_bus; i++) {
3893 for (j = 0; j < CISS_MAX_LOGICAL; j++) {
3905 for (j = 0; j < sc->ciss_cfg->max_logical_supported; j++) {
3894 ld = &sc->ciss_logical[i][j];
3895
3896 if (ld->cl_update == 0)
3897 continue;
3898
3899 if (ld->cl_status != CISS_LD_ONLINE) {
3900 ciss_cam_rescan_target(sc, i, j);
3901 ld->cl_update = 0;

--- 152 unchanged lines hidden (view full) ---

4054 */
4055 if ((bus >= 0) && (target >= 0))
4056 sc->ciss_physical[bus][target].cp_online = 0;
4057 } else {
4058 /*
4059 * Rescan the physical lun list for new items
4060 */
4061 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_PHYSICAL_LUNS,
3906 ld = &sc->ciss_logical[i][j];
3907
3908 if (ld->cl_update == 0)
3909 continue;
3910
3911 if (ld->cl_status != CISS_LD_ONLINE) {
3912 ciss_cam_rescan_target(sc, i, j);
3913 ld->cl_update = 0;

--- 152 unchanged lines hidden (view full) ---

4066 */
4067 if ((bus >= 0) && (target >= 0))
4068 sc->ciss_physical[bus][target].cp_online = 0;
4069 } else {
4070 /*
4071 * Rescan the physical lun list for new items
4072 */
4073 cll = ciss_report_luns(sc, CISS_OPCODE_REPORT_PHYSICAL_LUNS,
4062 CISS_MAX_PHYSICAL);
4074 sc->ciss_cfg->max_physical_supported);
4063 if (cll == NULL) {
4064 ciss_printf(sc, "Warning, cannot get physical lun list\n");
4065 break;
4066 }
4067 ciss_filter_physical(sc, cll);
4068 }
4069 break;
4070

--- 231 unchanged lines hidden (view full) ---

4302 sc->ciss_qstat[i].q_length,
4303 sc->ciss_qstat[i].q_max);
4304 }
4305 ciss_printf(sc, "max_requests %d\n", sc->ciss_max_requests);
4306 ciss_printf(sc, "flags %b\n", sc->ciss_flags,
4307 "\20\1notify_ok\2control_open\3aborting\4running\21fake_synch\22bmic_abort\n");
4308
4309 for (i = 0; i < sc->ciss_max_logical_bus; i++) {
4075 if (cll == NULL) {
4076 ciss_printf(sc, "Warning, cannot get physical lun list\n");
4077 break;
4078 }
4079 ciss_filter_physical(sc, cll);
4080 }
4081 break;
4082

--- 231 unchanged lines hidden (view full) ---

4314 sc->ciss_qstat[i].q_length,
4315 sc->ciss_qstat[i].q_max);
4316 }
4317 ciss_printf(sc, "max_requests %d\n", sc->ciss_max_requests);
4318 ciss_printf(sc, "flags %b\n", sc->ciss_flags,
4319 "\20\1notify_ok\2control_open\3aborting\4running\21fake_synch\22bmic_abort\n");
4320
4321 for (i = 0; i < sc->ciss_max_logical_bus; i++) {
4310 for (j = 0; j < CISS_MAX_LOGICAL; j++) {
4322 for (j = 0; j < sc->ciss_cfg->max_logical_supported; j++) {
4311 ciss_printf(sc, "LOGICAL DRIVE %d: ", i);
4312 ciss_print_ldrive(sc, &sc->ciss_logical[i][j]);
4313 }
4314 }
4315
4316 /* XXX Should physical drives be printed out here? */
4317
4318 for (i = 1; i < sc->ciss_max_requests; i++)

--- 341 unchanged lines hidden ---
4323 ciss_printf(sc, "LOGICAL DRIVE %d: ", i);
4324 ciss_print_ldrive(sc, &sc->ciss_logical[i][j]);
4325 }
4326 }
4327
4328 /* XXX Should physical drives be printed out here? */
4329
4330 for (i = 1; i < sc->ciss_max_requests; i++)

--- 341 unchanged lines hidden ---