On Tue, 2010-08-03 at 21:26 +0200, Ferenc Wagner wrote: > Package: linux-2.6 > Version: 2.6.32-17 > Severity: normal > > Hi, > > I reported this in February to LKML without much reaction, see > http://lkml.org/lkml/2010/2/2/208 > It also happened with the latest sid kernel, so reporting here. > > Now it didn't happen during system bootup, but after an uptime of > several days. The message, as received by our log server: [...]
Please try building and installing a kernel package with the attached patches applied. Follow the instructions at <http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official>. You may also need to rebuild the linux-base package. To do that, run 'fakeroot make -f debian/rules.real install-linux-base' after following those instructions. Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
From 6c71dcb28ff9b63b814a0b76a256f5dae08d3e0d Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Wed, 2 Dec 2009 14:28:48 -0600 Subject: [PATCH 1/2] [SCSI] scsi_dh_emc: fix mode select request setup This patch fixes the request setup code for mode selects. I got the fixes from Hannes Reinecke while trying to hunt down some problems and merged it into one patch. I am sending it because Hannes is busy with other things. The patch fixes: - setting of the length for mode selects. - setting of the data direction for mode select 10. Signed-off-by: Hannes Reinecke <h...@suse.de> Signed-off-by: Mike Christie <micha...@cs.wisc.edu> Signed-off-by: James Bottomley <james.bottom...@suse.de> --- drivers/scsi/device_handler/scsi_dh_emc.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c index 6196675..63032ec 100644 --- a/drivers/scsi/device_handler/scsi_dh_emc.c +++ b/drivers/scsi/device_handler/scsi_dh_emc.c @@ -272,7 +272,7 @@ static struct request *get_req(struct scsi_device *sdev, int cmd, int len = 0; rq = blk_get_request(sdev->request_queue, - (cmd == MODE_SELECT) ? WRITE : READ, GFP_NOIO); + (cmd != INQUIRY) ? WRITE : READ, GFP_NOIO); if (!rq) { sdev_printk(KERN_INFO, sdev, "get_req: blk_get_request failed"); return NULL; @@ -286,14 +286,17 @@ static struct request *get_req(struct scsi_device *sdev, int cmd, len = sizeof(short_trespass); rq->cmd_flags |= REQ_RW; rq->cmd[1] = 0x10; + rq->cmd[4] = len; break; case MODE_SELECT_10: len = sizeof(long_trespass); rq->cmd_flags |= REQ_RW; rq->cmd[1] = 0x10; + rq->cmd[8] = len; break; case INQUIRY: len = CLARIION_BUFFER_SIZE; + rq->cmd[4] = len; memset(buffer, 0, len); break; default: @@ -301,7 +304,6 @@ static struct request *get_req(struct scsi_device *sdev, int cmd, break; } - rq->cmd[4] = len; rq->cmd_type = REQ_TYPE_BLOCK_PC; rq->cmd_flags |= REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER; -- 1.7.1
From 5738d4449c1baf05e8345684d12371f76296473d Mon Sep 17 00:00:00 2001 From: Mike Christie <micha...@cs.wisc.edu> Date: Fri, 9 Apr 2010 22:07:37 -0500 Subject: [PATCH 2/2] [SCSI] scsi_dh_emc: request flag cleanup blk_get_request sets the cmd_flags, so we should not and do not need to set them. If we did set them to a different value then it can cause a oops in the elevator code. Signed-off-by: Mike Christie <micha...@cs.wisc.edu> Signed-off-by: James Bottomley <james.bottom...@suse.de> --- drivers/scsi/device_handler/scsi_dh_emc.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c index e8a0bc3..6faf472 100644 --- a/drivers/scsi/device_handler/scsi_dh_emc.c +++ b/drivers/scsi/device_handler/scsi_dh_emc.c @@ -285,13 +285,11 @@ static struct request *get_req(struct scsi_device *sdev, int cmd, switch (cmd) { case MODE_SELECT: len = sizeof(short_trespass); - rq->cmd_flags |= REQ_RW; rq->cmd[1] = 0x10; rq->cmd[4] = len; break; case MODE_SELECT_10: len = sizeof(long_trespass); - rq->cmd_flags |= REQ_RW; rq->cmd[1] = 0x10; rq->cmd[8] = len; break; -- 1.7.1
signature.asc
Description: This is a digitally signed message part