From: Mike Miller Date: Mon, 18 Dec 2006 10:00:14 +0000 (+0100) Subject: [PATCH] cciss: fix XFER_READ/XFER_WRITE in do_cciss_request X-Git-Tag: v2.6.20-rc2~79^2~7 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a52de245ef0b6217a56fb2472ff65c3a196cafd5;p=linux-2.6 [PATCH] cciss: fix XFER_READ/XFER_WRITE in do_cciss_request This patch fixes a stupid bug. Sometime during the 2tb enhancement I ended up replacing the macros XFER_READ and XFER_WRITE with h->cciss_read and h->cciss_write respectively. It seemed to work somehow at least on x86_64 and ia64. I don't know how. But people started complaining about command timeouts on older controllers like the 64xx series and only on ia32. This resolves the issue reproduced in our lab. Please consider this for inclusion. Thanks, mikem Signed-off-by: Mike Miller Signed-off-by: Jens Axboe --- diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 67a6d4a934..9d2ddb2093 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -2492,7 +2492,7 @@ static void do_cciss_request(request_queue_t *q) c->Request.Type.Type = TYPE_CMD; // It is a command. c->Request.Type.Attribute = ATTR_SIMPLE; c->Request.Type.Direction = - (rq_data_dir(creq) == READ) ? h->cciss_read : h->cciss_write; + (rq_data_dir(creq) == READ) ? XFER_READ : XFER_WRITE; c->Request.Timeout = 0; // Don't time out c->Request.CDB[0] = (rq_data_dir(creq) == READ) ? h->cciss_read : h->cciss_write;