aic7xxx: Remove slave_destroy
Subsystems (2)
PATCH 3/4 aic7xxx: Remove slave_destroy
Hi all,
We've already removed that one from aic79xx. No reason why we shouldn't do it here, too.
Cheers,
Hannes
Signature · 4 lines
Dr. Hannes Reinecke [email protected] SuSE Linux Products GmbH S390 & zSeries Maxfeldstraße 5 +49 911 74053 688 90409 Nürnberg http://www.suse.de
From: Hannes Reinecke <[email protected]>
Date: Mon Oct 23 11:41:23 2006 +0200
Subject: aic7xxx: Remove slave_destroy
This is a cross-port from aic79xx; we still hit the occasional BUG_ON in slave_destroy. And again we don't really need the slave_destroy callback nor the ahc_linux_target structure at all.
Signed-off-by Hannes Reinecke <[email protected]>
---
drivers/scsi/aic7xxx/aic7xxx.h | 1 + drivers/scsi/aic7xxx/aic7xxx_core.c | 22 ++++++------ drivers/scsi/aic7xxx/aic7xxx_osm.c | 65 ++++++----------------------------- drivers/scsi/aic7xxx/aic7xxx_osm.h | 11 +----- drivers/scsi/aic7xxx/aic7xxx_proc.c | 10 ++--- 5 files changed, 31 insertions(+), 78 deletions(-)
71d32a1e8d0fc4eb7004a9b1edb7d65fb068b403
drivers/scsi/aic7xxx/aic7xxx.h +1 -0
@@ -1289,6 +1289,7 @@ typedef enum { } ahc_queue_alg;void ahc_set_tags (struct ahc_softc *ahc, +struct scsi_cmnd *cmd,struct ahc_devinfo *devinfo,ahc_queue_alg alg);
drivers/scsi/aic7xxx/aic7xxx_core.c +12 -10
@@ -1986,7 +1986,7 @@ ahc_set_syncrate(struct ahc_softc *ahc, tinfo->curr.ppr_options = ppr_options;ahc_send_async (ahc, devinfo->channel, devinfo->target, -CAM_LUN_WILDCARD ,AC_TRANSFER_NEG ,NULL ); +CAM_LUN_WILDCARD ,AC_TRANSFER_NEG );if (bootverbose) {if (offset !=0 ) { printf("%s: target %d synchronous at %sMHz%s, "
@@ -2056,7 +2056,7 @@ ahc_set_width(struct ahc_softc *ahc, str tinfo->curr.width = width;ahc_send_async (ahc, devinfo->channel, devinfo->target, -CAM_LUN_WILDCARD ,AC_TRANSFER_NEG ,NULL ); +CAM_LUN_WILDCARD ,AC_TRANSFER_NEG );if (bootverbose) { printf("%s: target %d using %dbit transfers\n", ahc_name(ahc), devinfo->target,
@@ -2074,12 +2074,14 @@ ahc_set_width(struct ahc_softc *ahc, str* Update the current state of tagged queuing for a given target. */ void -ahc_set_tags (struct ahc_softc *ahc,struct ahc_devinfo *devinfo, -ahc_queue_alg alg) +ahc_set_tags (struct ahc_softc *ahc,struct scsi_cmnd *cmd, +struct ahc_devinfo *devinfo,ahc_queue_alg alg) { -ahc_platform_set_tags (ahc, devinfo, alg); +struct scsi_device *sdev = cmd->device; + +ahc_platform_set_tags (ahc, sdev, devinfo, alg);ahc_send_async (ahc, devinfo->channel, devinfo->target, - devinfo->lun,AC_TRANSFER_NEG , &alg); + devinfo->lun,AC_TRANSFER_NEG ); }/*
@@ -3489,7 +3491,7 @@ ahc_handle_msg_reject(struct ahc_softc *printf ("(%s:%c:%d:%d): refuses tagged commands. " "Performing non-tagged I/O\n" ,ahc_name (ahc), devinfo->channel, devinfo->target, devinfo->lun); -ahc_set_tags (ahc, devinfo,AHC_QUEUE_NONE ); +ahc_set_tags (ahc, scb->io_ctx, devinfo,AHC_QUEUE_NONE ); mask = ~0x23 ; }else { printf("(%s:%c:%d:%d): refuses %s tagged commands. "
@@ -3497,7 +3499,7 @@ ahc_handle_msg_reject(struct ahc_softc *ahc_name (ahc), devinfo->channel, devinfo->target, devinfo->lun, tag_type ==MSG_ORDERED_TASK ? "ordered" : "head of queue"); -ahc_set_tags (ahc, devinfo,AHC_QUEUE_BASIC ); +ahc_set_tags (ahc, scb->io_ctx, devinfo,AHC_QUEUE_BASIC ); mask = ~0x03 ; }
@@ -3763,7 +3765,7 @@ #endifif (status !=CAM_SEL_TIMEOUT )ahc_send_async (ahc, devinfo->channel, devinfo->target, -CAM_LUN_WILDCARD ,AC_SENT_BDR ,NULL ); +CAM_LUN_WILDCARD ,AC_SENT_BDR );if (message !=NULL && (verbose_level <= bootverbose))
@@ -6018,7 +6020,7 @@ #ifdef AHC_TARGET_MODE#endif /* Notify the XPT that a bus reset occurred */ ahc_send_async (ahc, devinfo.channel,CAM_TARGET_WILDCARD , -CAM_LUN_WILDCARD ,AC_BUS_RESET ,NULL ); +CAM_LUN_WILDCARD ,AC_BUS_RESET );/* * Revert to async/narrow transfers until we renegotiate.
drivers/scsi/aic7xxx/aic7xxx_osm.c +12 -53
162 lines not on this page · raw message
drivers/scsi/aic7xxx/aic7xxx_osm.h +2 -9
@@ -256,7 +256,6 @@ typedef enum {AHC_DEV_PERIODIC_OTAG =0x40 ,/* Send OTAG to prevent starvation */ } ahc_linux_dev_flags; -struct ahc_linux_target ; struct ahc_linux_device {/* * The number of transactions currently
@@ -329,12 +328,6 @@ #define AHC_LOCK_TAGS_COUNT 50#define AHC_OTAG_THRESH 500 }; -struct ahc_linux_target { -struct scsi_device *sdev[AHC_NUM_LUNS ]; -struct ahc_transinfo last_tinfo; -struct ahc_softc *ahc; -}; -/********************* Definitions Required by the Core ***********************/ /* * Number of SG segments we require. So long as the S/G segments for
@@ -824,7 +817,7 @@ ahc_freeze_scb(struct scb *scb) } } -void ahc_platform_set_tags (struct ahc_softc *ahc, +void ahc_platform_set_tags (struct ahc_softc *ahc,struct scsi_device *sdev,struct ahc_devinfo *devinfo,ahc_queue_alg ); int ahc_platform_abort_scbs(struct ahc_softc *ahc, int target, char channel, int lun, u_int tag,
@@ -834,7 +827,7 @@ irqreturn_tvoid ahc_platform_flushwork (struct ahc_softc *ahc);void ahc_done (struct ahc_softc *,struct scb *);void ahc_send_async (struct ahc_softc *,char channel, -u_int target,u_int lun,ac_code ,void *); +u_int target,u_int lun,ac_code );void ahc_print_path (struct ahc_softc *,struct scb *);void ahc_platform_dump_card_state (struct ahc_softc *ahc);
drivers/scsi/aic7xxx/aic7xxx_proc.c +4 -6
@@ -182,7 +182,6 @@ ahc_dump_target_state(struct ahc_softc * u_int our_id, char channel, u_int target_id, u_int target_offset) { - struct ahc_linux_target *targ; struct scsi_target *starget;struct ahc_initiator_tinfo *tinfo;struct ahc_tmode_tstate *tstate;
@@ -198,7 +197,6 @@ ahc_dump_target_state(struct ahc_softc * starget = ahc->platform_data->starget[target_offset];if (!starget)return ; - targ =scsi_transport_target_data (starget);copy_info (info,"\tGoal: " );ahc_format_transinfo (info, &tinfo->goal);
@@ -208,7 +206,7 @@ ahc_dump_target_state(struct ahc_softc *for (lun =0 ; lun <AHC_NUM_LUNS ; lun++) {struct scsi_device *sdev; - sdev = targ->sdev[lun]; + sdev =scsi_device_lookup_by_target (starget, lun);if (sdev ==NULL )continue ;
@@ -383,11 +381,11 @@ ahc_linux_proc_info(struct Scsi_Host *sh }copy_info (&info,"\n" ); - max_targ =15 ; + max_targ =16 ;if ((ahc->features & (AHC_WIDE |AHC_TWIN )) ==0 ) - max_targ =7 ; + max_targ =8 ; -for (i =0 ; i <= max_targ; i++) { +for (i =0 ; i < max_targ; i++) {u_int our_id;u_int target_id;char channel;
Signature · 1 line
1.3.1