lkml.org 
[lkml]   [2005]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
DateMon, 05 Sep 2005 20:37:44 +1200
FromReuben Farrelly <>
SubjectRe: 2.6.13-mm1: hangs during boot ...
Hi,

On 5/09/2005 4:32 a.m., James Bottomley wrote:
> On Sun, 2005-09-04 at 01:24 +1200, Reuben Farrelly wrote:
>> I am seeing it fill up my messages log as it is logging 1 or so messages each
>> minute. I've emailed the SCSI maintainer James Bottomley twice about it but
>> had no response either time.
>
> OK, can you try this ... it should confirm the theory if the messages go
> away.
>
> Thanks,
>
> 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
> @@ -315,7 +315,7 @@ int scsi_execute(struct scsi_device *sde
> req->sense = sense;
> req->sense_len = 0;
> req->timeout = timeout;
> - req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL;
> + req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET;
>
> /*
> * head injection *required* here otherwise quiesce won't work
> @@ -927,17 +927,20 @@ void scsi_io_completion(struct scsi_cmnd
> scsi_requeue_command(q, cmd);
> return;
> }
> - printk(KERN_INFO "Device %s not ready.\n",
> - req->rq_disk ? req->rq_disk->disk_name : "");
> + if (!(req->flags & REQ_QUIET))
> + dev_printk(KERN_INFO,
> + &cmd->device->sdev_gendev,
> + "Device not ready.\n");
> cmd = scsi_end_request(cmd, 0, this_count, 1);
> return;
> case VOLUME_OVERFLOW:
> - printk(KERN_INFO "Volume overflow <%d %d %d %d> CDB: ",
> - cmd->device->host->host_no,
> - (int)cmd->device->channel,
> - (int)cmd->device->id, (int)cmd->device->lun);
> - __scsi_print_command(cmd->data_cmnd);
> - scsi_print_sense("", cmd);
> + if (!(req->flags & REQ_QUIET)) {
> + dev_printk(KERN_INFO,
> + &cmd->device->sdev_gendev,
> + "Volume overflow, CDB: ");
> + __scsi_print_command(cmd->data_cmnd);
> + scsi_print_sense("", cmd);
> + }
> cmd = scsi_end_request(cmd, 0, block_bytes, 1);
> return;
> default:
> @@ -954,15 +957,13 @@ void scsi_io_completion(struct scsi_cmnd
> return;
> }
> if (result) {
> - if (!(req->flags & REQ_SPECIAL))
> - printk(KERN_INFO "SCSI error : <%d %d %d %d> return code "
> - "= 0x%x\n", cmd->device->host->host_no,
> - cmd->device->channel,
> - cmd->device->id,
> - cmd->device->lun, result);
> + if (!(req->flags & REQ_QUIET)) {
> + dev_printk(KERN_INFO, &cmd->device->sdev_gendev,
> + "SCSI error: return code = 0x%x\n", result);
>
> - if (driver_byte(result) & DRIVER_SENSE)
> - scsi_print_sense("", cmd);
> + if (driver_byte(result) & DRIVER_SENSE)
> + scsi_print_sense("", cmd);
> + }
> /*
> * Mark a single buffer as not uptodate. Queue the remainder.
> * We sometimes get this cruft in the event that a medium error

This patch fixes it, and there was no message during boot about not being
ready, nor after the machine had fully booted. Great ;-)

However, I did get an oops when warm booting the kernel, I suspect this may be
the oops that I get every now and then when warm rebooting, with no real
pattern, and possibly isn't related to the patch. As my serial console wasn't
set up at the time, I took a photo instead, at
http://www.reub.net/kernel/scsi-oops.jpg

Thanks
reuben

-
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/

\
 
 \ /
  Last update: 2005-09-05 10:40    [from the cache]
©2003-2010