From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Lalancette Subject: [PATCH 2/4]: Blktap backend fixes Date: Mon, 23 Jun 2008 20:28:13 +0200 Message-ID: <485FEB3D.6040909@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010001010804050501080307" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------010001010804050501080307 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit (please ignore my [PATCH 2/5]; this is just a resend of the same thing, with a proper subject) 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 --------------010001010804050501080307 Content-Type: text/x-patch; name="xen-unstable-greater-16-vbd-kernel-blktap-fixes.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename*0="xen-unstable-greater-16-vbd-kernel-blktap-fixes.patch" diff -r 5201a184f513 drivers/xen/blktap/blktap.c --- a/drivers/xen/blktap/blktap.c Fri Jun 20 17:43:16 2008 +0100 +++ b/drivers/xen/blktap/blktap.c Mon Jun 23 17:50:28 2008 +0200 @@ -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) --------------010001010804050501080307 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------010001010804050501080307--