lkml.org 
[lkml]   [2005]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
From
Subject[PATCH] ide-floppy adjustments
(Note: Patch also attached because the inline version is certain to get
line wrapped.)

Fix a build problem when IDEFLOPPY_DEBUG_BUGS is turned off, and eliminate
an access to memory that is no longer allocated (causing systems to fail
booting when CONFIG_DEBUG_PAGEALLOC is turned on).

Signed-off-by: Jan Beulich <jbeulich@novell.com>

diff -Npru linux-2.6.12-rc4.base/drivers/ide/ide-floppy.c linux-2.6.12-rc4/drivers/ide/ide-floppy.c
--- linux-2.6.12-rc4.base/drivers/ide/ide-floppy.c 2005-05-11 17:27:57.385469928 +0200
+++ linux-2.6.12-rc4/drivers/ide/ide-floppy.c 2005-05-11 17:50:36.267888400 +0200
@@ -661,10 +661,12 @@ static void idefloppy_output_buffers (id

idefloppy_do_end_request(drive, 1, done >> 9);

+#if IDEFLOPPY_DEBUG_BUGS
if (bcount) {
printk(KERN_ERR "%s: leftover data in idefloppy_output_buffers, bcount == %d\n", drive->name, bcount);
idefloppy_write_zeros(drive, bcount);
}
+#endif
}

static void idefloppy_update_buffers (ide_drive_t *drive, idefloppy_pc_t *pc)
@@ -1048,6 +1050,9 @@ static ide_startstop_t idefloppy_issue_p
atapi_bcount_t bcount;
ide_handler_t *pkt_xfer_routine;

+#if 0 /* Accessing floppy->pc is not valid here, the previous pc may be gone
+ and have lived on another thread's stack; that stack may have become
+ unmapped meanwhile (CONFIG_DEBUG_PAGEALLOC). */
#if IDEFLOPPY_DEBUG_BUGS
if (floppy->pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD &&
pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD) {
@@ -1055,6 +1060,7 @@ static ide_startstop_t idefloppy_issue_p
"Two request sense in serial were issued\n");
}
#endif /* IDEFLOPPY_DEBUG_BUGS */
+#endif

if (floppy->failed_pc == NULL &&
pc->c[0] != IDEFLOPPY_REQUEST_SENSE_CMD)

(Note: Patch also attached because the inline version is certain to get
line wrapped.)

Fix a build problem when IDEFLOPPY_DEBUG_BUGS is turned off, and eliminate
an access to memory that is no longer allocated (causing systems to fail
booting when CONFIG_DEBUG_PAGEALLOC is turned on).

Signed-off-by: Jan Beulich <jbeulich@novell.com>

diff -Npru linux-2.6.12-rc4.base/drivers/ide/ide-floppy.c linux-2.6.12-rc4/drivers/ide/ide-floppy.c
--- linux-2.6.12-rc4.base/drivers/ide/ide-floppy.c 2005-05-11 17:27:57.385469928 +0200
+++ linux-2.6.12-rc4/drivers/ide/ide-floppy.c 2005-05-11 17:50:36.267888400 +0200
@@ -661,10 +661,12 @@ static void idefloppy_output_buffers (id

idefloppy_do_end_request(drive, 1, done >> 9);

+#if IDEFLOPPY_DEBUG_BUGS
if (bcount) {
printk(KERN_ERR "%s: leftover data in idefloppy_output_buffers, bcount == %d\n", drive->name, bcount);
idefloppy_write_zeros(drive, bcount);
}
+#endif
}

static void idefloppy_update_buffers (ide_drive_t *drive, idefloppy_pc_t *pc)
@@ -1048,6 +1050,9 @@ static ide_startstop_t idefloppy_issue_p
atapi_bcount_t bcount;
ide_handler_t *pkt_xfer_routine;

+#if 0 /* Accessing floppy->pc is not valid here, the previous pc may be gone
+ and have lived on another thread's stack; that stack may have become
+ unmapped meanwhile (CONFIG_DEBUG_PAGEALLOC). */
#if IDEFLOPPY_DEBUG_BUGS
if (floppy->pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD &&
pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD) {
@@ -1055,6 +1060,7 @@ static ide_startstop_t idefloppy_issue_p
"Two request sense in serial were issued\n");
}
#endif /* IDEFLOPPY_DEBUG_BUGS */
+#endif

if (floppy->failed_pc == NULL &&
pc->c[0] != IDEFLOPPY_REQUEST_SENSE_CMD)
\
 
 \ /
  Last update: 2005-05-12 10:39    [W:1.594 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site