lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090405051342.GB4189@liondog.tnic>
Date:	Sun, 5 Apr 2009 07:13:42 +0200
From:	Borislav Petkov <petkovbb@...glemail.com>
To:	Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
Cc:	linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/5] ide-cd: respect REQ_QUIET for fs requests in
	cdrom_decode_status()

On Fri, Apr 03, 2009 at 09:57:57PM +0200, Bartlomiej Zolnierkiewicz wrote:
> From: Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
> Subject: [PATCH] ide-cd: respect REQ_QUIET for fs requests in cdrom_decode_status()
> 
> Cc: Borislav Petkov <petkovbb@...il.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
> ---
>  drivers/ide/ide-cd.c |   15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> Index: b/drivers/ide/ide-cd.c
> ===================================================================
> --- a/drivers/ide/ide-cd.c
> +++ b/drivers/ide/ide-cd.c
> @@ -382,7 +382,8 @@ static int cdrom_decode_status(ide_drive
>  				cdrom_saw_media_change(drive);
>  
>  				/* fail the request */
> -				printk(KERN_ERR PFX "%s: tray open\n",
> +				if ((rq->cmd_flags & REQ_QUIET) == 0)
> +					printk(KERN_ERR PFX "%s: tray open\n",
>  						drive->name);
>  			} else {
>  				if (ide_cd_breathe(drive, rq))
> @@ -405,19 +406,23 @@ static int cdrom_decode_status(ide_drive
>  			 * No point in retrying after an illegal request or data
>  			 * protect error.
>  			 */
> -			ide_dump_status(drive, "command error", stat);
> +			if ((rq->cmd_flags & REQ_QUIET) == 0)
> +				ide_dump_status(drive, "command error", stat);
>  			do_end_request = 1;
>  		} else if (sense_key == MEDIUM_ERROR) {
>  			/*
>  			 * No point in re-trying a zillion times on a bad
>  			 * sector. If we got here the error is not correctable.
>  			 */
> -			ide_dump_status(drive, "media error (bad sector)",
> -					stat);
> +			if ((rq->cmd_flags & REQ_QUIET) == 0)
> +				ide_dump_status(drive, "media error "
> +						"(bad sector)", stat);
>  			do_end_request = 1;
>  		} else if (sense_key == BLANK_CHECK) {
>  			/* disk appears blank ?? */
> -			ide_dump_status(drive, "media error (blank)", stat);
> +			if ((rq->cmd_flags & REQ_QUIET) == 0)
> +				ide_dump_status(drive, "media error (blank)",
> +						stat);
>  			do_end_request = 1;
>  		} else if ((err & ~ATA_ABORTED) != 0) {
>  			/* go to the default handler for other errors */


Let's cache the REQ_QUIET value instead, for slightly better readability:

---
From: Borislav Petkov <petkovbb@...il.com>
Date: Sun, 5 Apr 2009 06:40:50 +0200
Subject: [PATCH] ide-cd: respect REQ_QUIET for fs requests in cdrom_decode_status()

There should be no functional change resulting from this patch.

Suggested-by: Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
Signed-off-by: Borislav Petkov <petkovbb@...il.com>
---
 drivers/ide/ide-cd.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index a4afd90..6cf2916 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -276,6 +276,7 @@ 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;
+	u8 quiet = rq->cmd_flags & REQ_QUIET;
 
 	/* get the IDE error register */
 	err = ide_read_error(drive);
@@ -318,7 +319,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
 			 * drive doesn't have that capability.
 			 * cdrom_log_sense() knows this!
 			 */
-		} else if (!(rq->cmd_flags & REQ_QUIET)) {
+		} else if (!quiet) {
 			/* otherwise, print an error */
 			ide_dump_status(drive, "packet command error", stat);
 		}
@@ -346,7 +347,8 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
 				cdrom_saw_media_change(drive);
 
 				/* fail the request */
-				printk(KERN_ERR PFX "%s: tray open\n",
+				if (!quiet)
+					printk(KERN_ERR PFX "%s: tray open\n",
 						drive->name);
 				do_end_request = 1;
 			} else {
@@ -394,19 +396,23 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
 			 * No point in retrying after an illegal request or data
 			 * protect error.
 			 */
-			ide_dump_status(drive, "command error", stat);
+			if (!quiet)
+				ide_dump_status(drive, "command error", stat);
 			do_end_request = 1;
 		} else if (sense_key == MEDIUM_ERROR) {
 			/*
 			 * No point in re-trying a zillion times on a bad
 			 * sector. If we got here the error is not correctable.
 			 */
-			ide_dump_status(drive, "media error (bad sector)",
-					stat);
+			if (!quiet)
+				ide_dump_status(drive, "media error "
+						"(bad sector)",	stat);
 			do_end_request = 1;
 		} else if (sense_key == BLANK_CHECK) {
 			/* disk appears blank ?? */
-			ide_dump_status(drive, "media error (blank)", stat);
+			if (!quiet)
+				ide_dump_status(drive, "media error (blank)",
+						stat);
 			do_end_request = 1;
 		} else if ((err & ~ATA_ABORTED) != 0) {
 			/* go to the default handler for other errors */
-- 
1.6.2.1


-- 
Regards/Gruss,
    Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ