: Blktap backend fixes
PATCH 2/5 : Blktap backend fixes
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 <[email protected]>
drivers/xen/blktap/blktap.c +8 -1
@@ -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*/
@@ -507,6 +507,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)
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel