Re: Arrr! Linux v2.6.14-rc2

From: Martin J. Bligh (mbligh_at_mbligh.org)
Date: 09/21/05

  • Next message: Andrew Morton: "Re: [patch] intel_cacheinfo: remove MAX_CACHE_LEAVES limit"
    Date:	Tue, 20 Sep 2005 16:03:20 -0700
    To: Linus Torvalds <torvalds@osdl.org>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
    
    

    > Ahoy landlubbers!
    >
    > Here be t' Linux-2.6.14-rc2 release.
    >
    > Not a whole lot o' excitement, ye scurvy dogs, but it has t' ALSA, LSM,
    > audit and watchdog merges that be missed from -rc1, and a merge series
    > with Andrew. But on t' whole pretty reasonable - you can see t' details in
    > the shortlog (appended).
    >
    > Arrr!

    SCSI is broken in several cases by a lack of the patch below, which means
    some of the regular test boxes can't - James, any chance of getting that
    one upstream? (it's cut and pasted, but then you wouldn't want to apply
    it anyway without correct "flow" ;-)).

    Thanks,

    M.

    On Wed, 2005-09-14 at 18:06 +1000, Anton Blanchard wrote:
    > And in particular it looks like the scsi_unprep_request in
    > scsi_queue_insert is causing it. The following patch fixes the boot
    > problems on the vscsi machine:

    OK, my fault. Your fix is almost correct .. I was going to do this
    eventually, honest, because there's no need to unprep and reprep a
    command that comes in through scsi_queue_insert().

    However, I decided to leave it in to exercise the scsi_unprep_request()
    path just to make sure it was working. What's happening, I think, is
    that we also use this path for retries. Since we kill and reget the
    command each time, the retries decrement is never seen, so we're
    retrying forever.

    This should be the correct reversal.

    James
    diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
    --- a/drivers/scsi/scsi_lib.c
    +++ b/drivers/scsi/scsi_lib.c
    @@ -140,14 +140,12 @@ static void scsi_unprep_request(struct r
      * commands.
      * Notes: This could be called either from an interrupt context or a
      * normal process context.
    - * Notes: Upon return, cmd is a stale pointer.
      */
     int scsi_queue_insert(struct scsi_cmnd *cmd, int reason)
     {
             struct Scsi_Host *host = cmd->device->host;
             struct scsi_device *device = cmd->device;
             struct request_queue *q = device->request_queue;
    - struct request *req = cmd->request;
             unsigned long flags;
     
             SCSI_LOG_MLQUEUE(1,
    @@ -188,9 +186,8 @@ int scsi_queue_insert(struct scsi_cmnd *
              * function. The SCSI request function detects the blocked condition
              * and plugs the queue appropriately.
              */
    - scsi_unprep_request(req);
             spin_lock_irqsave(q->queue_lock, flags);
    - blk_requeue_request(q, req);
    + blk_requeue_request(q, cmd->request);
             spin_unlock_irqrestore(q->queue_lock, flags);
     
             scsi_run_queue(q);
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Andrew Morton: "Re: [patch] intel_cacheinfo: remove MAX_CACHE_LEAVES limit"

    Relevant Pages

    • Re: [2.6.14-rc1] sym scsi boot hang
      ... command that comes in through scsi_queue_insert. ... command each time, the retries decrement is never seen, so we're ... int scsi_queue_insert(struct scsi_cmnd *cmd, int reason) ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [RFC] ethtool semantics
      ... I find the c) feature very convenient. ... the configuration of the switch, something which is usually (pick your ... Command line parameters of the bcm5700 driver do implement c) (among ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: silent semantic changes with reiser4
      ... multiple-data-streams from non-MDS aware apps is the runat shell ... attribute directory and then runs a command. ... I don't like "at" because the API changes don't have anything to do with ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: [PATCH] implement nice support across physical cpus on SMP
      ... PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: 2.6.0-test6 -- Huh???
      ... | internal details of the Linux kernel. ... Given that my truck is not ... command, I suspect something on your system might have an unhappy script ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)