From 2e1529ad45e63c693e6c0d9d9bc3d1473ec4d884 Mon Sep 17 00:00:00 2001 From: Andrea Righi Date: Mon, 28 Jun 2010 16:56:45 +0200 Subject: [PATCH] --- yaml --- r: 208001 b: refs/heads/master c: 4307a28eb0128417d9a2b9d858d2bce70ee5b383 h: refs/heads/master i: 207999: 681fdc8a6c79578ecc6580fe15d5b3e208a4b3c9 v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hcd.c | 5 +++++ trunk/drivers/usb/host/ehci-hcd.c | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cfb2c223e1d2..6773bfc87e6b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e10fa4787f1fb9c8738dff955c272f30b7b63134 +refs/heads/master: 4307a28eb0128417d9a2b9d858d2bce70ee5b383 diff --git a/trunk/drivers/usb/core/hcd.c b/trunk/drivers/usb/core/hcd.c index 0358c05e6e8a..c5753c797735 100644 --- a/trunk/drivers/usb/core/hcd.c +++ b/trunk/drivers/usb/core/hcd.c @@ -1218,6 +1218,11 @@ static int hcd_alloc_coherent(struct usb_bus *bus, { unsigned char *vaddr; + if (*vaddr_handle == NULL) { + WARN_ON_ONCE(1); + return -EFAULT; + } + vaddr = hcd_buffer_alloc(bus, size + sizeof(vaddr), mem_flags, dma_handle); if (!vaddr) diff --git a/trunk/drivers/usb/host/ehci-hcd.c b/trunk/drivers/usb/host/ehci-hcd.c index 2a19336c9824..2e704fa3cedf 100644 --- a/trunk/drivers/usb/host/ehci-hcd.c +++ b/trunk/drivers/usb/host/ehci-hcd.c @@ -629,7 +629,8 @@ static int ehci_init(struct usb_hcd *hcd) ehci->command = temp; /* Accept arbitrarily long scatter-gather lists */ - hcd->self.sg_tablesize = ~0; + if (!(hcd->driver->flags & HCD_LOCAL_MEM)) + hcd->self.sg_tablesize = ~0; return 0; }