diff options
author | Jan Beulich <JBeulich@novell.com> | 2005-06-23 03:09:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 12:45:28 -0400 |
commit | c7ea4b31fd962b4baadb42c0b8d7c6851c584102 (patch) | |
tree | be097db5341cd09a4cf640a2bc3c5a189e989f0c /drivers/ide/ide-floppy.c | |
parent | ef3daeda7b58f046f94b26637d500354038d39f4 (diff) |
[PATCH] ide-floppy adjustments
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>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ide/ide-floppy.c')
-rw-r--r-- | drivers/ide/ide-floppy.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index c949e98df4b6..9eab6426148e 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
@@ -661,10 +661,12 @@ static void idefloppy_output_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, un | |||
661 | 661 | ||
662 | idefloppy_do_end_request(drive, 1, done >> 9); | 662 | idefloppy_do_end_request(drive, 1, done >> 9); |
663 | 663 | ||
664 | #if IDEFLOPPY_DEBUG_BUGS | ||
664 | if (bcount) { | 665 | if (bcount) { |
665 | printk(KERN_ERR "%s: leftover data in idefloppy_output_buffers, bcount == %d\n", drive->name, bcount); | 666 | printk(KERN_ERR "%s: leftover data in idefloppy_output_buffers, bcount == %d\n", drive->name, bcount); |
666 | idefloppy_write_zeros(drive, bcount); | 667 | idefloppy_write_zeros(drive, bcount); |
667 | } | 668 | } |
669 | #endif | ||
668 | } | 670 | } |
669 | 671 | ||
670 | static void idefloppy_update_buffers (ide_drive_t *drive, idefloppy_pc_t *pc) | 672 | static void idefloppy_update_buffers (ide_drive_t *drive, idefloppy_pc_t *pc) |
@@ -1048,6 +1050,9 @@ static ide_startstop_t idefloppy_issue_pc (ide_drive_t *drive, idefloppy_pc_t *p | |||
1048 | atapi_bcount_t bcount; | 1050 | atapi_bcount_t bcount; |
1049 | ide_handler_t *pkt_xfer_routine; | 1051 | ide_handler_t *pkt_xfer_routine; |
1050 | 1052 | ||
1053 | #if 0 /* Accessing floppy->pc is not valid here, the previous pc may be gone | ||
1054 | and have lived on another thread's stack; that stack may have become | ||
1055 | unmapped meanwhile (CONFIG_DEBUG_PAGEALLOC). */ | ||
1051 | #if IDEFLOPPY_DEBUG_BUGS | 1056 | #if IDEFLOPPY_DEBUG_BUGS |
1052 | if (floppy->pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD && | 1057 | if (floppy->pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD && |
1053 | pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD) { | 1058 | pc->c[0] == IDEFLOPPY_REQUEST_SENSE_CMD) { |
@@ -1055,6 +1060,7 @@ static ide_startstop_t idefloppy_issue_pc (ide_drive_t *drive, idefloppy_pc_t *p | |||
1055 | "Two request sense in serial were issued\n"); | 1060 | "Two request sense in serial were issued\n"); |
1056 | } | 1061 | } |
1057 | #endif /* IDEFLOPPY_DEBUG_BUGS */ | 1062 | #endif /* IDEFLOPPY_DEBUG_BUGS */ |
1063 | #endif | ||
1058 | 1064 | ||
1059 | if (floppy->failed_pc == NULL && | 1065 | if (floppy->failed_pc == NULL && |
1060 | pc->c[0] != IDEFLOPPY_REQUEST_SENSE_CMD) | 1066 | pc->c[0] != IDEFLOPPY_REQUEST_SENSE_CMD) |