diff options
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx.h | 1 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.c | 18 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic7xxx_osm.h | 31 |
3 files changed, 3 insertions, 47 deletions
diff --git a/drivers/scsi/aic7xxx/aic7xxx.h b/drivers/scsi/aic7xxx/aic7xxx.h index d094e7371734..0948d50ae75c 100644 --- a/drivers/scsi/aic7xxx/aic7xxx.h +++ b/drivers/scsi/aic7xxx/aic7xxx.h | |||
@@ -346,7 +346,6 @@ typedef enum { | |||
346 | * controller. | 346 | * controller. |
347 | */ | 347 | */ |
348 | AHC_NEWEEPROM_FMT = 0x4000, | 348 | AHC_NEWEEPROM_FMT = 0x4000, |
349 | AHC_RESOURCE_SHORTAGE = 0x8000, | ||
350 | AHC_TQINFIFO_BLOCKED = 0x10000, /* Blocked waiting for ATIOs */ | 349 | AHC_TQINFIFO_BLOCKED = 0x10000, /* Blocked waiting for ATIOs */ |
351 | AHC_INT50_SPEEDFLEX = 0x20000, /* | 350 | AHC_INT50_SPEEDFLEX = 0x20000, /* |
352 | * Internal 50pin connector | 351 | * Internal 50pin connector |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index 34e486aba46b..3287f8df1801 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -501,17 +501,6 @@ ahc_linux_detect(struct scsi_host_template *template) | |||
501 | int found = 0; | 501 | int found = 0; |
502 | 502 | ||
503 | /* | 503 | /* |
504 | * Sanity checking of Linux SCSI data structures so | ||
505 | * that some of our hacks^H^H^H^H^Hassumptions aren't | ||
506 | * violated. | ||
507 | */ | ||
508 | if (offsetof(struct ahc_cmd_internal, end) | ||
509 | > offsetof(struct scsi_cmnd, host_scribble)) { | ||
510 | printf("ahc_linux_detect: SCSI data structures changed.\n"); | ||
511 | printf("ahc_linux_detect: Unable to attach\n"); | ||
512 | return (0); | ||
513 | } | ||
514 | /* | ||
515 | * If we've been passed any parameters, process them now. | 504 | * If we've been passed any parameters, process them now. |
516 | */ | 505 | */ |
517 | if (aic7xxx) | 506 | if (aic7xxx) |
@@ -1587,10 +1576,9 @@ ahc_linux_run_command(struct ahc_softc *ahc, struct ahc_linux_device *dev, | |||
1587 | /* | 1576 | /* |
1588 | * Get an scb to use. | 1577 | * Get an scb to use. |
1589 | */ | 1578 | */ |
1590 | if ((scb = ahc_get_scb(ahc)) == NULL) { | 1579 | scb = ahc_get_scb(ahc); |
1591 | ahc->flags |= AHC_RESOURCE_SHORTAGE; | 1580 | if (!scb) |
1592 | return SCSI_MLQUEUE_HOST_BUSY; | 1581 | return SCSI_MLQUEUE_HOST_BUSY; |
1593 | } | ||
1594 | 1582 | ||
1595 | scb->io_ctx = cmd; | 1583 | scb->io_ctx = cmd; |
1596 | scb->platform_data->dev = dev; | 1584 | scb->platform_data->dev = dev; |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h index 46c3a796e6b1..b97f718dfe54 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.h +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.h | |||
@@ -268,35 +268,6 @@ ahc_scb_timer_reset(struct scb *scb, u_int usec) | |||
268 | 268 | ||
269 | #define AIC7XXX_DRIVER_VERSION "6.2.36" | 269 | #define AIC7XXX_DRIVER_VERSION "6.2.36" |
270 | 270 | ||
271 | /**************************** Front End Queues ********************************/ | ||
272 | /* | ||
273 | * Data structure used to cast the Linux struct scsi_cmnd to something | ||
274 | * that allows us to use the queue macros. The linux structure has | ||
275 | * plenty of space to hold the links fields as required by the queue | ||
276 | * macros, but the queue macors require them to have the correct type. | ||
277 | */ | ||
278 | struct ahc_cmd_internal { | ||
279 | /* Area owned by the Linux scsi layer. */ | ||
280 | uint8_t private[offsetof(struct scsi_cmnd, SCp.Status)]; | ||
281 | union { | ||
282 | STAILQ_ENTRY(ahc_cmd) ste; | ||
283 | LIST_ENTRY(ahc_cmd) le; | ||
284 | TAILQ_ENTRY(ahc_cmd) tqe; | ||
285 | } links; | ||
286 | uint32_t end; | ||
287 | }; | ||
288 | |||
289 | struct ahc_cmd { | ||
290 | union { | ||
291 | struct ahc_cmd_internal icmd; | ||
292 | struct scsi_cmnd scsi_cmd; | ||
293 | } un; | ||
294 | }; | ||
295 | |||
296 | #define acmd_icmd(cmd) ((cmd)->un.icmd) | ||
297 | #define acmd_scsi_cmd(cmd) ((cmd)->un.scsi_cmd) | ||
298 | #define acmd_links un.icmd.links | ||
299 | |||
300 | /*************************** Device Data Structures ***************************/ | 271 | /*************************** Device Data Structures ***************************/ |
301 | /* | 272 | /* |
302 | * A per probed device structure used to deal with some error recovery | 273 | * A per probed device structure used to deal with some error recovery |
@@ -305,7 +276,6 @@ struct ahc_cmd { | |||
305 | * after a successfully completed inquiry command to the target when | 276 | * after a successfully completed inquiry command to the target when |
306 | * that inquiry data indicates a lun is present. | 277 | * that inquiry data indicates a lun is present. |
307 | */ | 278 | */ |
308 | TAILQ_HEAD(ahc_busyq, ahc_cmd); | ||
309 | typedef enum { | 279 | typedef enum { |
310 | AHC_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */ | 280 | AHC_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */ |
311 | AHC_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */ | 281 | AHC_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */ |
@@ -900,7 +870,6 @@ ahc_notify_xfer_settings_change(struct ahc_softc *ahc, | |||
900 | static __inline void | 870 | static __inline void |
901 | ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb) | 871 | ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb) |
902 | { | 872 | { |
903 | ahc->flags &= ~AHC_RESOURCE_SHORTAGE; | ||
904 | } | 873 | } |
905 | 874 | ||
906 | int ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg); | 875 | int ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg); |