From patchwork Wed Apr 29 20:55:48 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Helge Deller X-Patchwork-Id: 20811 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n3TKtrqc007475 for ; Wed, 29 Apr 2009 20:55:53 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751538AbZD2Uzu (ORCPT ); Wed, 29 Apr 2009 16:55:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752191AbZD2Uzu (ORCPT ); Wed, 29 Apr 2009 16:55:50 -0400 Received: from mail.gmx.net ([213.165.64.20]:38935 "HELO mail.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751538AbZD2Uzu (ORCPT ); Wed, 29 Apr 2009 16:55:50 -0400 Received: (qmail invoked by alias); 29 Apr 2009 20:55:49 -0000 Received: from mnhm-590e0036.pool.einsundeins.de (EHLO [192.168.178.60]) [89.14.0.54] by mail.gmx.net (mp033) with SMTP; 29 Apr 2009 22:55:49 +0200 X-Authenticated: #1045983 X-Provags-ID: V01U2FsdGVkX18I4slseIAITj9aBRlVBQcy57EA79i4XQvQYdJtCV WXcqRQJO5gLe4E Message-ID: <49F8BED4.7000509@gmx.de> Date: Wed, 29 Apr 2009 22:55:48 +0200 From: Helge Deller User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: linux-parisc Subject: [Fwd: [PATCH] ide-cd: fix REQ_QUIET tests in cdrom_decode_status] X-Enigmail-Version: 0.95.7 X-Y-GMX-Trusted: 0 X-FuHaFi: 0.39 Sender: linux-parisc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-parisc@vger.kernel.org Forwarded to linux-parisc list for reference: This patch is needed for 2.6.30 to make the IDE CDROM working on c3k and similiar machines. Helge -------- Original Message -------- Subject: [PATCH] ide-cd: fix REQ_QUIET tests in cdrom_decode_status Date: Tue, 28 Apr 2009 23:38:14 +0200 From: Borislav Petkov Reply-To: petkovbb@gmail.com To: linux-ide@vger.kernel.org CC: Bartlomiej Zolnierkiewicz , Helge Deller , Jens Axboe , Sergei Shtylyov References: <49F6DC50.7000106@ru.mvista.com> Here's a non-wrapped version, Sergei thanks for catching that. --- From: Borislav Petkov Date: Mon, 27 Apr 2009 14:11:32 +0200 Subject: [PATCH] ide-cd: fix REQ_QUIET tests in cdrom_decode_status Original patch (dfa4411cc3a690011cab90e9a536938795366cf9) was buggy. This is a more proper fix which introduces blk_rq_quiet() macro alleviating the need for dumb, too short caching variables. Thanks to Helge Deller and Bart for debugging this. Signed-off-by: Borislav Petkov --- drivers/ide/ide-cd.c | 9 ++++----- include/linux/blkdev.h | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 07fb9e4..e4df578 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -282,7 +282,6 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat) ide_hwif_t *hwif = drive->hwif; struct request *rq = hwif->rq; int err, sense_key, do_end_request = 0; - u8 quiet = rq->cmd_flags & REQ_QUIET; /* get the IDE error register */ err = ide_read_error(drive); @@ -317,7 +316,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat) } else { cdrom_saw_media_change(drive); - if (blk_fs_request(rq) && !quiet) + if (blk_fs_request(rq) && !blk_rq_quiet(rq)) printk(KERN_ERR PFX "%s: tray open\n", drive->name); } @@ -352,7 +351,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat) * No point in retrying after an illegal request or data * protect error. */ - if (!quiet) + if (!blk_rq_quiet(rq)) ide_dump_status(drive, "command error", stat); do_end_request = 1; break; @@ -361,14 +360,14 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat) * No point in re-trying a zillion times on a bad sector. * If we got here the error is not correctable. */ - if (!quiet) + if (!blk_rq_quiet(rq)) ide_dump_status(drive, "media error " "(bad sector)", stat); do_end_request = 1; break; case BLANK_CHECK: /* disk appears blank? */ - if (!quiet) + if (!blk_rq_quiet(rq)) ide_dump_status(drive, "media error (blank)", stat); do_end_request = 1; diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ba54c83..6f841fb 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -598,6 +598,7 @@ enum { blk_failfast_transport(rq) || \ blk_failfast_driver(rq)) #define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED) +#define blk_rq_quiet(rq) ((rq)->cmd_flags & REQ_QUIET) #define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq)))