aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide-floppy.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 5c32d0cda4ac..416719c1718b 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -737,18 +737,20 @@ static ide_startstop_t idefloppy_transfer_pc1 (ide_drive_t *drive)
737 return ide_started; 737 return ide_started;
738} 738}
739 739
740/** 740static void ide_floppy_report_error(idefloppy_floppy_t *floppy,
741 * idefloppy_should_report_error() 741 idefloppy_pc_t *pc)
742 *
743 * Supresses error messages resulting from Medium not present
744 */
745static inline int idefloppy_should_report_error(idefloppy_floppy_t *floppy)
746{ 742{
743 /* supress error messages resulting from Medium not present */
747 if (floppy->sense_key == 0x02 && 744 if (floppy->sense_key == 0x02 &&
748 floppy->asc == 0x3a && 745 floppy->asc == 0x3a &&
749 floppy->ascq == 0x00) 746 floppy->ascq == 0x00)
750 return 0; 747 return;
751 return 1; 748
749 printk(KERN_ERR "ide-floppy: %s: I/O error, pc = %2x, key = %2x, "
750 "asc = %2x, ascq = %2x\n",
751 floppy->drive->name, pc->c[0], floppy->sense_key,
752 floppy->asc, floppy->ascq);
753
752} 754}
753 755
754/* 756/*
@@ -775,15 +777,8 @@ static ide_startstop_t idefloppy_issue_pc (ide_drive_t *drive, idefloppy_pc_t *p
775 * a legitimate error code was received. 777 * a legitimate error code was received.
776 */ 778 */
777 if (!test_bit(PC_ABORT, &pc->flags)) { 779 if (!test_bit(PC_ABORT, &pc->flags)) {
778 if (!test_bit(PC_SUPPRESS_ERROR, &pc->flags)) { 780 if (!test_bit(PC_SUPPRESS_ERROR, &pc->flags))
779 if (idefloppy_should_report_error(floppy)) 781 ide_floppy_report_error(floppy, pc);
780 printk(KERN_ERR "ide-floppy: %s: I/O error, "
781 "pc = %2x, key = %2x, "
782 "asc = %2x, ascq = %2x\n",
783 drive->name, pc->c[0],
784 floppy->sense_key,
785 floppy->asc, floppy->ascq);
786 }
787 /* Giving up */ 782 /* Giving up */
788 pc->error = IDEFLOPPY_ERROR_GENERAL; 783 pc->error = IDEFLOPPY_ERROR_GENERAL;
789 } 784 }
@@ -993,13 +988,8 @@ static ide_startstop_t idefloppy_do_request (ide_drive_t *drive, struct request
993 rq->nr_sectors, rq->current_nr_sectors); 988 rq->nr_sectors, rq->current_nr_sectors);
994 989
995 if (rq->errors >= ERROR_MAX) { 990 if (rq->errors >= ERROR_MAX) {
996 if (floppy->failed_pc != NULL) { 991 if (floppy->failed_pc)
997 if (idefloppy_should_report_error(floppy)) 992 ide_floppy_report_error(floppy, floppy->failed_pc);
998 printk(KERN_ERR "ide-floppy: %s: I/O error, pc = %2x,"
999 " key = %2x, asc = %2x, ascq = %2x\n",
1000 drive->name, floppy->failed_pc->c[0],
1001 floppy->sense_key, floppy->asc, floppy->ascq);
1002 }
1003 else 993 else
1004 printk(KERN_ERR "ide-floppy: %s: I/O error\n", 994 printk(KERN_ERR "ide-floppy: %s: I/O error\n",
1005 drive->name); 995 drive->name);