[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] blktap: bugfix and support extended device numbers
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1214579276 -3600 # Node ID b29a06ba7a5ff8c85054d56a4135ac38925422c0 # Parent 65faf5fc61a1cadb20885dc2e926efe1722956fd blktap: bugfix and support extended device numbers This simple patch puts two fixes into the blktap backend. The first is a change of busid from an unsigned short to a u32 so we can accommodate the new expanded format (which doesn't fit into 16-bits). The second is a minor fix to signal_tapdisk(); while developing, if the tools happen to set up the tapfds wrong, you can get into a situation where the idx passed to signal_tapdisk() is NULL, causing a kernel OOPS. The fix for signal_tapdisk() just returns if the idx is negative, preventing the crash. Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx> --- drivers/xen/blktap/blktap.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletion(-) diff -r 65faf5fc61a1 -r b29a06ba7a5f drivers/xen/blktap/blktap.c --- a/drivers/xen/blktap/blktap.c Fri Jun 27 16:06:41 2008 +0100 +++ b/drivers/xen/blktap/blktap.c Fri Jun 27 16:07:56 2008 +0100 @@ -89,7 +89,7 @@ static int mmap_pages = MMAP_PAGES; /*Data struct handed back to userspace for tapdisk device to VBD mapping*/ typedef struct domid_translate { unsigned short domid; - unsigned short busid; + u32 busid; } domid_translate_t ; /*Data struct associated with each of the tapdisk devices*/ @@ -508,6 +508,13 @@ void signal_tapdisk(int idx) tap_blkif_t *info; struct task_struct *ptask; + /* + * if the userland tools set things up wrong, this could be negative; + * just don't try to signal in this case + */ + if (idx < 0) + return; + info = tapfds[idx]; if ((idx < 0) || (idx > MAX_TAP_DEV) || !info) return; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |