linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: jejb@linux.ibm.com, Lee Jones <lee.jones@linaro.org>
Cc: martin.petersen@oracle.com, linux-kernel@vger.kernel.org,
	linux-scsi@vger.kernel.org, Hannes Reinecke <hare@suse.com>
Subject: Re: [PATCH v2 24/24] scsi: aic7xxx: aic79xx_osm: Remove set but unused variabes 'saved_scsiid' and 'saved_modes'
Date: Tue, 21 Jul 2020 08:38:51 +0200	[thread overview]
Message-ID: <6cc1f2fe-ae61-2a54-89df-35d994dc388b@suse.de> (raw)
In-Reply-To: <1594767794.14804.21.camel@linux.ibm.com>

On 7/15/20 1:03 AM, James Bottomley wrote:
> On Tue, 2020-07-14 at 22:39 +0100, Lee Jones wrote:
>> On Tue, 14 Jul 2020, James Bottomley wrote:
>>
>>> On Tue, 2020-07-14 at 09:46 +0200, Hannes Reinecke wrote:
>>>> On 7/13/20 10:00 AM, Lee Jones wrote:
>>>>> Haven't been used since 2006.
>>>>>
>>>>> Fixes the following W=1 kernel build warning(s):
>>>>>
>>>>>   drivers/scsi/aic7xxx/aic79xx_osm.c: In function
>>>>> ‘ahd_linux_queue_abort_cmd’:
>>>>>   drivers/scsi/aic7xxx/aic79xx_osm.c:2155:17: warning: variable
>>>>> ‘saved_modes’ set but not used [-Wunused-but-set-variable]
>>>>>   drivers/scsi/aic7xxx/aic79xx_osm.c:2148:9: warning: variable
>>>>> ‘saved_scsiid’ set but not used [-Wunused-but-set-variable]
>>>>>
>>>>> Cc: Hannes Reinecke <hare@suse.com>
>>>>> Signed-off-by: Lee Jones <lee.jones@linaro.org>
>>>>> ---
>>>>>   drivers/scsi/aic7xxx/aic79xx_osm.c | 4 ----
>>>>>   1 file changed, 4 deletions(-)
>>>>>
>>>>> diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c
>>>>> b/drivers/scsi/aic7xxx/aic79xx_osm.c
>>>>> index 3782a20d58885..140c4e74ddd7e 100644
>>>>> --- a/drivers/scsi/aic7xxx/aic79xx_osm.c
>>>>> +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
>>>>> @@ -2141,14 +2141,12 @@ ahd_linux_queue_abort_cmd(struct
>>>>> scsi_cmnd
>>>>> *cmd)
>>>>>   	u_int  saved_scbptr;
>>>>>   	u_int  active_scbptr;
>>>>>   	u_int  last_phase;
>>>>> -	u_int  saved_scsiid;
>>>>>   	u_int  cdb_byte;
>>>>>   	int    retval;
>>>>>   	int    was_paused;
>>>>>   	int    paused;
>>>>>   	int    wait;
>>>>>   	int    disconnected;
>>>>> -	ahd_mode_state saved_modes;
>>>>>   	unsigned long flags;
>>>>>   
>>>>>   	pending_scb = NULL;
>>>>> @@ -2239,7 +2237,6 @@ ahd_linux_queue_abort_cmd(struct
>>>>> scsi_cmnd
>>>>> *cmd)
>>>>>   		goto done;
>>>>>   	}
>>>>>   
>>>>> -	saved_modes = ahd_save_modes(ahd);
>>>>>   	ahd_set_modes(ahd, AHD_MODE_SCSI, AHD_MODE_SCSI);
>>>>>   	last_phase = ahd_inb(ahd, LASTPHASE);
>>>>>   	saved_scbptr = ahd_get_scbptr(ahd);
>>>>> @@ -2257,7 +2254,6 @@ ahd_linux_queue_abort_cmd(struct
>>>>> scsi_cmnd
>>>>> *cmd)
>>>>>   	 * passed in command.  That command is currently
>>>>> active on
>>>>> the
>>>>>   	 * bus or is in the disconnected state.
>>>>>   	 */
>>>>> -	saved_scsiid = ahd_inb(ahd, SAVED_SCSIID);
>>>>>   	if (last_phase != P_BUSFREE
>>>>>   	    && SCB_GET_TAG(pending_scb) == active_scbptr) {
>>>>>   
>>>>>
>>>>
>>>> Reviewed-by: Hannes Reinecke <hare@suse.de>
>>>
>>> Hey, you don't get to do that ... I asked you to figure out why
>>> we're missing an ahd_restore_modes().  Removing the
>>> ahd_save_modes() is cosmetic: it gets rid of a warning but doesn't
>>> fix the problem.  I'd rather keep the warning until the problem is
>>> fixed and the problem is we need a mode save/restore around the
>>> ahd_set_modes() which is only partially implemented in this
>>> function.
>>
>> I had a look.  Traced it back to the dawn of time (time == Git), then
>> delved even further back by downloading and trawling through ~10-15
>> tarballs.  It looks as though drivers/scsi/aic7xxx/aic79xx_osm.c was
>> upstreamed in v2.5.60, nearly 20 years ago.  'saved_modes' has been
>> unused since at least then.  If no one has complained in 2 decades,
>> I'd say it probably isn't an issue worth perusing.
> 
> Well, we have what looks like a fix now.  The reason it matters is that
>   if the bus is not in AHD_MODE_SCSI when the routine is called, it ends
> up being in a wrong state when the routine exits, so you abort one
> command and screw up another.  Ultimately I bet escalation to bus reset
> fixes it, so everything appears to work, but it might have worked a lot
> better if the original mode were restored.
> 
> This is error handling code, so most installations run just fine
> without ever invoking it.
> 
And since you mention it, it might also explain why every time this 
routine got invoked it failed to fixup anything and got escalated to bus 
reset.
(And yes, I _did_ have some customer issues with aic79xx EH escalations 
over the years).

Testing will be tricky, though, as you'd have to inject timeouts onto 
the parallel bus or device.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke            Teamlead Storage & Networking
hare@suse.de                               +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer

  parent reply	other threads:[~2020-07-21  6:38 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-13  7:59 [PATCH v2 00/24] Set 3: Fix another set of SCSI related W=1 warnings Lee Jones
2020-07-13  7:59 ` [PATCH v2 01/24] scsi: aacraid: aachba: Repair two kerneldoc headers Lee Jones
2020-07-13  7:59 ` [PATCH v2 02/24] scsi: aacraid: commctrl: Fix a few kerneldoc issues Lee Jones
2020-07-13  7:59 ` [PATCH v2 03/24] scsi: aacraid: dpcsup: Fix logical bug when !DBG Lee Jones
2020-07-13  7:59 ` [PATCH v2 04/24] scsi: aacraid: dpcsup: Remove unused variable 'status' Lee Jones
2020-07-13  7:59 ` [PATCH v2 05/24] scsi: aacraid: dpcsup: Demote partially documented function header Lee Jones
2020-07-13  7:59 ` [PATCH v2 06/24] scsi: aic94xx: aic94xx_seq: Document 'lseq' and repair asd_update_port_links() header Lee Jones
2020-07-13  7:59 ` [PATCH v2 07/24] scsi: aacraid: commsup: Fix a bunch of function header issues Lee Jones
2020-07-13  7:59 ` [PATCH v2 08/24] scsi: aic94xx: aic94xx_scb: Fix a couple of formatting and bitrot issues Lee Jones
2020-07-13  7:59 ` [PATCH v2 09/24] scsi: aacraid: rx: Fill in the very parameter descriptions for rx_sync_cmd() Lee Jones
2020-07-13  7:59 ` [PATCH v2 10/24] scsi: pm8001: pm8001_ctl: Provide descriptions for the many undocumented 'attr's Lee Jones
2020-07-13  8:18   ` Jinpu Wang
2020-07-13  7:59 ` [PATCH v2 11/24] scsi: ipr: Fix a mountain of kerneldoc misdemeanours Lee Jones
2020-07-13  7:59 ` [PATCH v2 12/24] scsi: virtio_scsi: Demote seemingly unintentional kerneldoc header Lee Jones
2020-07-13 11:23   ` Michael S. Tsirkin
2020-07-13 11:53     ` Lee Jones
2020-07-13  7:59 ` [PATCH v2 13/24] scsi: ipr: Remove a bunch of set but checked variables Lee Jones
2020-07-13  7:59 ` [PATCH v2 14/24] scsi: ipr: Fix struct packed-not-aligned issues Lee Jones
2020-07-13  7:59 ` [PATCH v2 15/24] scsi: myrs: Demote obvious misuse of kerneldoc to standard comment blocks Lee Jones
2020-07-14  7:45   ` Hannes Reinecke
2020-07-14  8:49     ` Lee Jones
2020-07-13  7:59 ` [PATCH v2 16/24] scsi: megaraid: Fix a whole bunch of function header formatting issues Lee Jones
2020-07-13  7:59 ` [PATCH v2 17/24] scsi: be2iscsi: be_iscsi: Fix API/documentation slip Lee Jones
2020-07-13  7:59 ` [PATCH v2 18/24] scsi: be2iscsi: be_main: Fix misdocumentation of 'pcontext' Lee Jones
2020-07-13  7:59 ` [PATCH v2 19/24] scsi: be2iscsi: be_mgmt: Add missing function parameter description Lee Jones
2020-07-13  7:59 ` [PATCH v2 20/24] scsi: lpfc: lpfc_nvme: Correct some pretty obvious misdocumentation Lee Jones
2020-07-13  7:59 ` [PATCH v2 21/24] scsi: aic7xxx: aic79xx_osm: Remove unused variable 'ahd' Lee Jones
2020-07-14  7:47   ` Hannes Reinecke
2020-07-13  7:59 ` [PATCH v2 22/24] scsi: aic7xxx: aic79xx_osm: Remove unused variables 'wait' and 'paused' Lee Jones
2020-07-14  7:47   ` Hannes Reinecke
2020-07-13  8:00 ` [PATCH v2 23/24] scsi: aic7xxx: aic79xx_osm: Fix 'amount_xferred' set but not used issue Lee Jones
2020-07-14  7:47   ` Hannes Reinecke
2020-07-13  8:00 ` [PATCH v2 24/24] scsi: aic7xxx: aic79xx_osm: Remove set but unused variabes 'saved_scsiid' and 'saved_modes' Lee Jones
2020-07-14  7:46   ` Hannes Reinecke
2020-07-14 15:43     ` James Bottomley
2020-07-14 21:39       ` Lee Jones
2020-07-14 23:03         ` James Bottomley
2020-07-15  6:29           ` Lee Jones
2020-07-21  6:38           ` Hannes Reinecke [this message]
2020-07-15  5:58         ` Hannes Reinecke
2020-07-15  6:30           ` Lee Jones
2020-07-15 22:14 ` [PATCH v2 00/24] Set 3: Fix another set of SCSI related W=1 warnings Martin K. Petersen
2020-07-16  7:14   ` Lee Jones
2020-07-16  7:16   ` Lee Jones
2020-07-16  8:00     ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6cc1f2fe-ae61-2a54-89df-35d994dc388b@suse.de \
    --to=hare@suse.de \
    --cc=hare@suse.com \
    --cc=jejb@linux.ibm.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).