From 4fa2da54f4012c75309508b1e596e8029ba14c94 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 1 Sep 2005 16:43:04 +0200 Subject: [PATCH] [PATCH] Fix oops on starting trace on stacked devices (such as md, dm, etc) --- CHANGELOG | 1 + ...-2.6.13-mm1-B0 => blk-trace-2.6.13-mm1-B1} | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) rename kernel/{blk-trace-2.6.13-mm1-B0 => blk-trace-2.6.13-mm1-B1} (94%) diff --git a/CHANGELOG b/CHANGELOG index 8c1fd61..caa066c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,7 @@ - Update kernel patch - Added seconds.nanosecond output format for time - Converted to comply with time stamps comparable on each CPU + - Fix oops on tracing dm/md and other stacked devices 20050830: - Added argument parsing - Added action mask set up diff --git a/kernel/blk-trace-2.6.13-mm1-B0 b/kernel/blk-trace-2.6.13-mm1-B1 similarity index 94% rename from kernel/blk-trace-2.6.13-mm1-B0 rename to kernel/blk-trace-2.6.13-mm1-B1 index 4d00ba7..0a40a23 100644 --- a/kernel/blk-trace-2.6.13-mm1-B0 +++ b/kernel/blk-trace-2.6.13-mm1-B1 @@ -1,7 +1,7 @@ diff -urpN -X linux-2.6.13-mm1/Documentation/dontdiff /opt/kernel/linux-2.6.13-mm1/drivers/block/blktrace.c linux-2.6.13-mm1/drivers/block/blktrace.c --- /opt/kernel/linux-2.6.13-mm1/drivers/block/blktrace.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.13-mm1/drivers/block/blktrace.c 2005-09-01 14:54:51.000000000 +0200 -@@ -0,0 +1,173 @@ ++++ linux-2.6.13-mm1/drivers/block/blktrace.c 2005-09-01 16:39:34.000000000 +0200 +@@ -0,0 +1,169 @@ +#include +#include +#include @@ -68,13 +68,11 @@ diff -urpN -X linux-2.6.13-mm1/Documentation/dontdiff /opt/kernel/linux-2.6.13-m + + down(&bdev->bd_sem); + -+ spin_lock_irq(q->queue_lock); + if (q->blk_trace) { + bt = q->blk_trace; + q->blk_trace = NULL; + ret = 0; + } -+ spin_unlock_irq(q->queue_lock); + + up(&bdev->bd_sem); + @@ -130,9 +128,7 @@ diff -urpN -X linux-2.6.13-mm1/Documentation/dontdiff /opt/kernel/linux-2.6.13-m + if (!bt->act_mask) + bt->act_mask = (u16) -1; + -+ spin_lock_irq(q->queue_lock); + q->blk_trace = bt; -+ spin_unlock_irq(q->queue_lock); + ret = 0; +err: + up(&bdev->bd_sem); @@ -524,3 +520,15 @@ diff -urpN -X linux-2.6.13-mm1/Documentation/dontdiff /opt/kernel/linux-2.6.13-m #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ #define FIBMAP _IO(0x00,1) /* bmap access */ +diff -urpN -X linux-2.6.13-mm1/Documentation/dontdiff /opt/kernel/linux-2.6.13-mm1/include/linux/libata.h linux-2.6.13-mm1/include/linux/libata.h +--- /opt/kernel/linux-2.6.13-mm1/include/linux/libata.h 2005-09-01 13:07:53.000000000 +0200 ++++ linux-2.6.13-mm1/include/linux/libata.h 2005-09-01 13:53:16.000000000 +0200 +@@ -40,7 +40,7 @@ + #undef ATA_VERBOSE_DEBUG /* yet more debugging output */ + #undef ATA_IRQ_TRAP /* define to ack screaming irqs */ + #undef ATA_NDEBUG /* define to disable quick runtime checks */ +-#undef ATA_ENABLE_ATAPI /* define to enable ATAPI support */ ++#define ATA_ENABLE_ATAPI /* define to enable ATAPI support */ + #undef ATA_ENABLE_PATA /* define to enable PATA support in some + * low-level drivers */ + #undef ATAPI_ENABLE_DMADIR /* enables ATAPI DMADIR bridge support */ -- 2.25.1