usb_drv: Make EHCI-queue header non-cachable

Fixes #758
This commit is contained in:
Sebastian Sumpf 2014-06-17 11:22:42 +02:00 committed by Norman Feske
parent cc8bf82300
commit cf73ae2c20
2 changed files with 162 additions and 130 deletions

View File

@ -1,7 +1,8 @@
diff -r 477429e02fe0 drivers/hid/usbhid/hid-core.c
--- a/drivers/hid/usbhid/hid-core.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/hid/usbhid/hid-core.c Tue Aug 13 14:58:40 2013 +0200
@@ -895,7 +895,7 @@
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 8e0c4bf..21ff40f 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -895,7 +895,7 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid)
&usbhid->inbuf_dma);
usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->outbuf_dma);
@ -10,7 +11,7 @@ diff -r 477429e02fe0 drivers/hid/usbhid/hid-core.c
usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->ctrlbuf_dma);
if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr ||
@@ -1053,7 +1053,7 @@
@@ -1053,7 +1053,7 @@ static int usbhid_parse(struct hid_device *hid)
return -EINVAL;
}
@ -19,10 +20,11 @@ diff -r 477429e02fe0 drivers/hid/usbhid/hid-core.c
dbg_hid("couldn't allocate rdesc memory\n");
return -ENOMEM;
}
diff -r 477429e02fe0 drivers/net/usb/usbnet.c
--- a/drivers/net/usb/usbnet.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/net/usb/usbnet.c Tue Aug 13 14:58:40 2013 +0200
@@ -253,7 +253,7 @@
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 7c646f7..1d60393 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -253,7 +253,7 @@ static int init_status (struct usbnet *dev, struct usb_interface *intf)
period = max ((int) dev->status->desc.bInterval,
(dev->udev->speed == USB_SPEED_HIGH) ? 7 : 3);
@ -31,7 +33,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (buf) {
dev->interrupt = usb_alloc_urb (0, GFP_KERNEL);
if (!dev->interrupt) {
@@ -1606,7 +1606,7 @@
@@ -1606,7 +1606,7 @@ int usbnet_resume (struct usb_interface *intf)
if (!--dev->suspend_count) {
/* resume interrupt URBs */
if (dev->interrupt && test_bit(EVENT_DEV_OPEN, &dev->flags))
@ -40,7 +42,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
spin_lock_irq(&dev->txq.lock);
while ((res = usb_get_from_anchor(&dev->deferred))) {
@@ -1633,7 +1633,7 @@
@@ -1633,7 +1633,7 @@ int usbnet_resume (struct usb_interface *intf)
netif_device_present(dev->net) &&
!timer_pending(&dev->delay) &&
!test_bit(EVENT_RX_HALT, &dev->flags))
@ -49,7 +51,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (!(dev->txq.qlen >= TX_QLEN(dev)))
netif_tx_wake_all_queues(dev->net);
@@ -1684,7 +1684,7 @@
@@ -1684,7 +1684,7 @@ static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
@ -58,7 +60,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (!buf)
goto out;
}
@@ -1711,7 +1711,7 @@
@@ -1711,7 +1711,7 @@ static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
@ -67,7 +69,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (!buf)
goto out;
}
@@ -1823,7 +1823,7 @@
@@ -1823,7 +1823,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
if (data) {
@ -76,7 +78,7 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (!buf) {
netdev_err(dev->net, "Error allocating buffer"
" in %s!\n", __func__);
@@ -1831,7 +1831,7 @@
@@ -1831,7 +1831,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
}
@ -85,10 +87,11 @@ diff -r 477429e02fe0 drivers/net/usb/usbnet.c
if (!req)
goto fail_free_buf;
diff -r 477429e02fe0 drivers/usb/core/config.c
--- a/drivers/usb/core/config.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/core/config.c Tue Aug 13 14:58:40 2013 +0200
@@ -689,7 +689,7 @@
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 7199adc..8e173b7 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -689,7 +689,7 @@ int usb_get_configuration(struct usb_device *dev)
if (!dev->rawdescriptors)
goto err2;
@ -97,7 +100,7 @@ diff -r 477429e02fe0 drivers/usb/core/config.c
if (!desc)
goto err2;
@@ -718,7 +718,7 @@
@@ -718,7 +718,7 @@ int usb_get_configuration(struct usb_device *dev)
USB_DT_CONFIG_SIZE);
/* Now that we know the length, get the whole thing */
@ -106,7 +109,7 @@ diff -r 477429e02fe0 drivers/usb/core/config.c
if (!bigbuffer) {
result = -ENOMEM;
goto err;
@@ -777,7 +777,7 @@
@@ -777,7 +777,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
int length, total_len, num, i;
int ret;
@ -115,7 +118,7 @@ diff -r 477429e02fe0 drivers/usb/core/config.c
if (!bos)
return -ENOMEM;
@@ -803,7 +803,7 @@
@@ -803,7 +803,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
return -ENOMEM;
/* Now let's get the whole BOS descriptor set */
@ -124,10 +127,11 @@ diff -r 477429e02fe0 drivers/usb/core/config.c
if (!buffer) {
ret = -ENOMEM;
goto err;
diff -r 477429e02fe0 drivers/usb/core/devices.c
--- a/drivers/usb/core/devices.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/core/devices.c Tue Aug 13 14:58:40 2013 +0200
@@ -513,7 +513,7 @@
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
index 2a3bbdf..c78eedd 100644
--- a/drivers/usb/core/devices.c
+++ b/drivers/usb/core/devices.c
@@ -513,7 +513,7 @@ static ssize_t usb_device_dump(char __user **buffer, size_t *nbytes,
return 0;
/* allocate 2^1 pages = 8K (on i386);
* should be more than enough for one device */
@ -136,10 +140,11 @@ diff -r 477429e02fe0 drivers/usb/core/devices.c
if (!pages_start)
return -ENOMEM;
diff -r 477429e02fe0 drivers/usb/core/hub.c
--- a/drivers/usb/core/hub.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/core/hub.c Tue Aug 13 14:58:40 2013 +0200
@@ -1049,7 +1049,7 @@
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 5480352..512b358 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1049,7 +1049,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
hcd = bus_to_hcd(hdev->bus);
if (hcd->driver->update_hub_device) {
ret = hcd->driver->update_hub_device(hcd, hdev,
@ -148,7 +153,7 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (ret < 0) {
dev_err(hub->intfdev, "Host not "
"accepting hub info "
@@ -1195,7 +1195,7 @@
@@ -1195,7 +1195,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
init3:
hub->quiescing = 0;
@ -157,7 +162,7 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (status < 0)
dev_err(hub->intfdev, "activate --> %d\n", status);
if (hub->has_indicators && blinkenlights)
@@ -1286,20 +1286,20 @@
@@ -1286,20 +1286,20 @@ static int hub_configure(struct usb_hub *hub,
unsigned unit_load;
unsigned full_load;
@ -181,7 +186,7 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (!hub->descriptor) {
ret = -ENOMEM;
goto fail;
@@ -3444,9 +3444,9 @@
@@ -3444,9 +3444,9 @@ static int usb_req_set_sel(struct usb_device *udev, enum usb3_link_state state)
/*
* usb_enable_lpm() can be called as part of a failed device reset,
* which may be initiated by an error path of a mass storage driver.
@ -193,7 +198,7 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (!sel_values)
return -ENOMEM;
@@ -4224,7 +4224,7 @@
@@ -4224,7 +4224,7 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1)
struct usb_qualifier_descriptor *qual;
int status;
@ -202,7 +207,7 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (qual == NULL)
return;
@@ -4942,7 +4942,7 @@
@@ -4942,7 +4942,7 @@ static int descriptors_changed(struct usb_device *udev,
len = max(len, old_length);
}
@ -211,10 +216,11 @@ diff -r 477429e02fe0 drivers/usb/core/hub.c
if (buf == NULL) {
dev_err(&udev->dev, "no mem to re-read configs after reset\n");
/* assume the worst */
diff -r 477429e02fe0 drivers/usb/core/message.c
--- a/drivers/usb/core/message.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/core/message.c Tue Aug 13 14:58:40 2013 +0200
@@ -50,7 +50,7 @@
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 444d30e..739c6a6 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -50,7 +50,7 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length)
init_completion(&ctx.done);
urb->context = &ctx;
urb->actual_length = 0;
@ -223,7 +229,7 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (unlikely(retval))
goto out;
@@ -87,7 +87,7 @@
@@ -87,7 +87,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
int retv;
int length;
@ -232,7 +238,7 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (!urb)
return -ENOMEM;
@@ -865,11 +865,11 @@
@@ -865,11 +865,11 @@ char *usb_cache_string(struct usb_device *udev, int index)
if (index <= 0)
return NULL;
@ -246,7 +252,7 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (!smallbuf)
return buf;
memcpy(smallbuf, buf, len);
@@ -940,7 +940,7 @@
@@ -940,7 +940,7 @@ int usb_get_device_descriptor(struct usb_device *dev, unsigned int size)
int usb_get_status(struct usb_device *dev, int type, int target, void *data)
{
int ret;
@ -255,7 +261,7 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (!status)
return -ENOMEM;
@@ -1730,7 +1730,7 @@
@@ -1730,7 +1730,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
if (cp) {
nintf = cp->desc.bNumInterfaces;
new_interfaces = kmalloc(nintf * sizeof(*new_interfaces),
@ -264,7 +270,7 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (!new_interfaces) {
dev_err(&dev->dev, "Out of memory\n");
return -ENOMEM;
@@ -1739,7 +1739,7 @@
@@ -1739,7 +1739,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
for (; n < nintf; ++n) {
new_interfaces[n] = kzalloc(
sizeof(struct usb_interface),
@ -273,10 +279,24 @@ diff -r 477429e02fe0 drivers/usb/core/message.c
if (!new_interfaces[n]) {
dev_err(&dev->dev, "Out of memory\n");
ret = -ENOMEM;
diff -r 477429e02fe0 drivers/usb/host/xhci-hub.c
--- a/drivers/usb/host/xhci-hub.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/host/xhci-hub.c Tue Aug 13 14:58:40 2013 +0200
@@ -275,7 +275,7 @@
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index ef2c3a1..d6cb79c 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -82,7 +82,7 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags)
struct ehci_qh *qh;
dma_addr_t dma;
- qh = kzalloc(sizeof *qh, GFP_ATOMIC);
+ qh = kzalloc(sizeof *qh, GFP_NOIO);
if (!qh)
goto done;
qh->hw = (struct ehci_qh_hw *)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 6891442..0aa4cbe 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -275,7 +275,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend)
ret = 0;
virt_dev = xhci->devs[slot_id];
@ -285,10 +305,11 @@ diff -r 477429e02fe0 drivers/usb/host/xhci-hub.c
if (!cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
diff -r 477429e02fe0 drivers/usb/host/xhci.c
--- a/drivers/usb/host/xhci.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/host/xhci.c Tue Aug 13 14:58:40 2013 +0200
@@ -1277,7 +1277,7 @@
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index aa74d15..5cc8fe2 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1277,7 +1277,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
size = 1;
urb_priv = kzalloc(sizeof(struct urb_priv) +
@ -297,7 +318,7 @@ diff -r 477429e02fe0 drivers/usb/host/xhci.c
if (!urb_priv)
return -ENOMEM;
@@ -1706,7 +1706,7 @@
@@ -1706,7 +1706,7 @@ int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
* process context, not interrupt context (or so documenation
* for usb_set_interface() and usb_set_configuration() claim).
*/
@ -306,7 +327,7 @@ diff -r 477429e02fe0 drivers/usb/host/xhci.c
dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n",
__func__, ep->desc.bEndpointAddress);
return -ENOMEM;
@@ -3363,10 +3363,10 @@
@@ -3363,10 +3363,10 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev)
/* Allocate the command structure that holds the struct completion.
* Assume we're in process context, since the normal device reset
* process has to wait for the device anyway. Storage devices are
@ -319,7 +340,7 @@ diff -r 477429e02fe0 drivers/usb/host/xhci.c
if (!reset_device_cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
@@ -3610,11 +3610,11 @@
@@ -3610,11 +3610,11 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev)
}
spin_unlock_irqrestore(&xhci->lock, flags);
}
@ -333,10 +354,11 @@ diff -r 477429e02fe0 drivers/usb/host/xhci.c
xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n");
goto disable_slot;
}
diff -r 477429e02fe0 drivers/usb/storage/alauda.c
--- a/drivers/usb/storage/alauda.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/alauda.c Tue Aug 13 14:58:40 2013 +0200
@@ -448,8 +448,8 @@
diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
index be5564c..4fc7560 100644
--- a/drivers/usb/storage/alauda.c
+++ b/drivers/usb/storage/alauda.c
@@ -448,8 +448,8 @@ static int alauda_init_media(struct us_data *us)
num_zones = MEDIA_INFO(us).capacity >> (MEDIA_INFO(us).zoneshift
+ MEDIA_INFO(us).blockshift + MEDIA_INFO(us).pageshift);
@ -347,7 +369,7 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (alauda_reset_media(us) != USB_STOR_XFER_GOOD)
return USB_STOR_TRANSPORT_ERROR;
@@ -577,8 +577,8 @@
@@ -577,8 +577,8 @@ static int alauda_read_map(struct us_data *us, unsigned int zone)
unsigned int lba_offset, lba_real, blocknum;
unsigned int zone_base_lba = zone * uzonesize;
unsigned int zone_base_pba = zone * zonesize;
@ -358,7 +380,7 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (lba_to_pba == NULL || pba_to_lba == NULL) {
result = USB_STOR_TRANSPORT_ERROR;
goto error;
@@ -940,7 +940,7 @@
@@ -940,7 +940,7 @@ static int alauda_read_data(struct us_data *us, unsigned long address,
*/
len = min(sectors, blocksize) * (pagesize + 64);
@ -367,7 +389,7 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (buffer == NULL) {
printk(KERN_WARNING "alauda_read_data: Out of memory\n");
return USB_STOR_TRANSPORT_ERROR;
@@ -1033,7 +1033,7 @@
@@ -1033,7 +1033,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address,
*/
len = min(sectors, blocksize) * pagesize;
@ -376,7 +398,7 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (buffer == NULL) {
printk(KERN_WARNING "alauda_write_data: Out of memory\n");
return USB_STOR_TRANSPORT_ERROR;
@@ -1043,7 +1043,7 @@
@@ -1043,7 +1043,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address,
* We also need a temporary block buffer, where we read in the old data,
* overwrite parts with the new data, and manipulate the redundancy data
*/
@ -385,7 +407,7 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (blockbuffer == NULL) {
printk(KERN_WARNING "alauda_write_data: Out of memory\n");
kfree(buffer);
@@ -1121,7 +1121,7 @@
@@ -1121,7 +1121,7 @@ static int init_alauda(struct us_data *us)
struct usb_host_interface *altsetting = us->pusb_intf->cur_altsetting;
nand_init_ecc();
@ -394,10 +416,11 @@ diff -r 477429e02fe0 drivers/usb/storage/alauda.c
if (!us->extra) {
US_DEBUGP("init_alauda: Gah! Can't allocate storage for"
"alauda info struct!\n");
diff -r 477429e02fe0 drivers/usb/storage/datafab.c
--- a/drivers/usb/storage/datafab.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/datafab.c Tue Aug 13 14:58:40 2013 +0200
@@ -174,7 +174,7 @@
diff --git a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c
index 494fee5..f340137 100644
--- a/drivers/usb/storage/datafab.c
+++ b/drivers/usb/storage/datafab.c
@@ -174,7 +174,7 @@ static int datafab_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
@ -406,7 +429,7 @@ diff -r 477429e02fe0 drivers/usb/storage/datafab.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -258,7 +258,7 @@
@@ -258,7 +258,7 @@ static int datafab_write_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
@ -415,7 +438,7 @@ diff -r 477429e02fe0 drivers/usb/storage/datafab.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -338,7 +338,7 @@
@@ -338,7 +338,7 @@ static int datafab_determine_lun(struct us_data *us,
return USB_STOR_TRANSPORT_ERROR;
memcpy(command, scommand, 8);
@ -424,7 +447,7 @@ diff -r 477429e02fe0 drivers/usb/storage/datafab.c
if (!buf)
return USB_STOR_TRANSPORT_ERROR;
@@ -409,7 +409,7 @@
@@ -409,7 +409,7 @@ static int datafab_id_device(struct us_data *us,
}
memcpy(command, scommand, 8);
@ -433,7 +456,7 @@ diff -r 477429e02fe0 drivers/usb/storage/datafab.c
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -565,7 +565,7 @@
@@ -565,7 +565,7 @@ static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
@ -442,10 +465,11 @@ diff -r 477429e02fe0 drivers/usb/storage/datafab.c
if (!us->extra) {
US_DEBUGP("datafab_transport: Gah! "
"Can't allocate storage for Datafab info struct!\n");
diff -r 477429e02fe0 drivers/usb/storage/jumpshot.c
--- a/drivers/usb/storage/jumpshot.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/jumpshot.c Tue Aug 13 14:58:40 2013 +0200
@@ -188,7 +188,7 @@
diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c
index ddc7878..a3d2435 100644
--- a/drivers/usb/storage/jumpshot.c
+++ b/drivers/usb/storage/jumpshot.c
@@ -188,7 +188,7 @@ static int jumpshot_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
@ -454,7 +478,7 @@ diff -r 477429e02fe0 drivers/usb/storage/jumpshot.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -265,7 +265,7 @@
@@ -265,7 +265,7 @@ static int jumpshot_write_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
@ -463,7 +487,7 @@ diff -r 477429e02fe0 drivers/usb/storage/jumpshot.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -340,7 +340,7 @@
@@ -340,7 +340,7 @@ static int jumpshot_id_device(struct us_data *us,
command[0] = 0xE0;
command[1] = 0xEC;
@ -472,7 +496,7 @@ diff -r 477429e02fe0 drivers/usb/storage/jumpshot.c
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -493,7 +493,7 @@
@@ -493,7 +493,7 @@ static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
@ -481,10 +505,11 @@ diff -r 477429e02fe0 drivers/usb/storage/jumpshot.c
if (!us->extra) {
US_DEBUGP("jumpshot_transport: Gah! Can't allocate storage for jumpshot info struct!\n");
return USB_STOR_TRANSPORT_ERROR;
diff -r 477429e02fe0 drivers/usb/storage/karma.c
--- a/drivers/usb/storage/karma.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/karma.c Tue Aug 13 14:58:40 2013 +0200
@@ -182,11 +182,11 @@
diff --git a/drivers/usb/storage/karma.c b/drivers/usb/storage/karma.c
index f085ffb..aade7e4 100644
--- a/drivers/usb/storage/karma.c
+++ b/drivers/usb/storage/karma.c
@@ -182,11 +182,11 @@ static void rio_karma_destructor(void *extra)
static int rio_karma_init(struct us_data *us)
{
int ret = 0;
@ -498,10 +523,11 @@ diff -r 477429e02fe0 drivers/usb/storage/karma.c
if (!data->recv) {
kfree(data);
goto out;
diff -r 477429e02fe0 drivers/usb/storage/onetouch.c
--- a/drivers/usb/storage/onetouch.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/onetouch.c Tue Aug 13 14:58:40 2013 +0200
@@ -163,7 +163,7 @@
diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c
index cb79de6..9dba9fe 100644
--- a/drivers/usb/storage/onetouch.c
+++ b/drivers/usb/storage/onetouch.c
@@ -163,7 +163,7 @@ static void usb_onetouch_pm_hook(struct us_data *us, int action)
usb_kill_urb(onetouch->irq);
break;
case US_RESUME:
@ -510,10 +536,11 @@ diff -r 477429e02fe0 drivers/usb/storage/onetouch.c
dev_err(&onetouch->irq->dev->dev,
"usb_submit_urb failed\n");
break;
diff -r 477429e02fe0 drivers/usb/storage/realtek_cr.c
--- a/drivers/usb/storage/realtek_cr.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/realtek_cr.c Tue Aug 13 14:58:40 2013 +0200
@@ -367,7 +367,7 @@
diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
index 6c3586a..02e8f6b 100644
--- a/drivers/usb/storage/realtek_cr.c
+++ b/drivers/usb/storage/realtek_cr.c
@@ -367,7 +367,7 @@ static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
u8 cmnd[12] = { 0 };
u8 *buf;
@ -522,7 +549,7 @@ diff -r 477429e02fe0 drivers/usb/storage/realtek_cr.c
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -398,7 +398,7 @@
@@ -398,7 +398,7 @@ static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
u8 cmnd[12] = { 0 };
u8 *buf;
@ -531,7 +558,7 @@ diff -r 477429e02fe0 drivers/usb/storage/realtek_cr.c
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -427,7 +427,7 @@
@@ -427,7 +427,7 @@ static int rts51x_read_status(struct us_data *us,
u8 cmnd[12] = { 0 };
u8 *buf;
@ -540,7 +567,7 @@ diff -r 477429e02fe0 drivers/usb/storage/realtek_cr.c
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -511,7 +511,7 @@
@@ -511,7 +511,7 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len)
US_DEBUGP("%s, addr = 0xfe47, len = %d\n", __FUNCTION__, len);
@ -549,10 +576,11 @@ diff -r 477429e02fe0 drivers/usb/storage/realtek_cr.c
if (!buf)
return USB_STOR_TRANSPORT_ERROR;
diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
--- a/drivers/usb/storage/sddr09.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/sddr09.c Tue Aug 13 14:58:40 2013 +0200
@@ -692,7 +692,7 @@
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c
index 7bd54e0..fea6ded 100644
--- a/drivers/usb/storage/sddr09.c
+++ b/drivers/usb/storage/sddr09.c
@@ -692,7 +692,7 @@ sddr09_read_sg_test_only(struct us_data *us) {
return result;
}
@ -561,7 +589,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (!buf)
return -ENOMEM;
@@ -768,7 +768,7 @@
@@ -768,7 +768,7 @@ sddr09_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
len = min(sectors, (unsigned int) info->blocksize) * info->pagesize;
@ -570,7 +598,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_read_data: Out of memory\n");
return -ENOMEM;
@@ -1000,7 +1000,7 @@
@@ -1000,7 +1000,7 @@ sddr09_write_data(struct us_data *us,
pagelen = (1 << info->pageshift) + (1 << CONTROL_SHIFT);
blocklen = (pagelen << info->blockshift);
@ -579,7 +607,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (!blockbuffer) {
printk(KERN_WARNING "sddr09_write_data: Out of memory\n");
return -ENOMEM;
@@ -1011,7 +1011,7 @@
@@ -1011,7 +1011,7 @@ sddr09_write_data(struct us_data *us,
// at a time between the bounce buffer and the actual transfer buffer.
len = min(sectors, (unsigned int) info->blocksize) * info->pagesize;
@ -588,7 +616,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_write_data: Out of memory\n");
kfree(blockbuffer);
@@ -1230,7 +1230,7 @@
@@ -1230,7 +1230,7 @@ sddr09_read_map(struct us_data *us) {
alloc_blocks = min(numblocks, SDDR09_READ_MAP_BUFSZ >> CONTROL_SHIFT);
alloc_len = (alloc_blocks << CONTROL_SHIFT);
@ -597,7 +625,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_read_map: out of memory\n");
result = -1;
@@ -1242,8 +1242,8 @@
@@ -1242,8 +1242,8 @@ sddr09_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
@ -608,7 +636,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
printk(KERN_WARNING "sddr09_read_map: out of memory\n");
@@ -1438,7 +1438,7 @@
@@ -1438,7 +1438,7 @@ sddr09_common_init(struct us_data *us) {
return -EINVAL;
}
@ -617,10 +645,11 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr09.c
if (!us->extra)
return -ENOMEM;
us->extra_destructor = sddr09_card_info_destructor;
diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
--- a/drivers/usb/storage/sddr55.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/sddr55.c Tue Aug 13 14:58:40 2013 +0200
@@ -216,7 +216,7 @@
diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c
index d278c5a..bbe7da7 100644
--- a/drivers/usb/storage/sddr55.c
+++ b/drivers/usb/storage/sddr55.c
@@ -216,7 +216,7 @@ static int sddr55_read_data(struct us_data *us,
len = min((unsigned int) sectors, (unsigned int) info->blocksize >>
info->smallpageshift) * PAGESIZE;
@ -629,7 +658,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR; /* out of memory */
offset = 0;
@@ -344,7 +344,7 @@
@@ -344,7 +344,7 @@ static int sddr55_write_data(struct us_data *us,
len = min((unsigned int) sectors, (unsigned int) info->blocksize >>
info->smallpageshift) * PAGESIZE;
@ -638,7 +667,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
offset = 0;
@@ -661,7 +661,7 @@
@@ -661,7 +661,7 @@ static int sddr55_read_map(struct us_data *us) {
numblocks = info->capacity >> (info->blockshift + info->pageshift);
@ -647,7 +676,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
if (!buffer)
return -1;
@@ -694,8 +694,8 @@
@@ -694,8 +694,8 @@ static int sddr55_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
@ -658,7 +687,7 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
kfree(info->lba_to_pba);
@@ -799,7 +799,7 @@
@@ -799,7 +799,7 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us)
if (!us->extra) {
us->extra = kzalloc(
@ -667,10 +696,11 @@ diff -r 477429e02fe0 drivers/usb/storage/sddr55.c
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
us->extra_destructor = sddr55_card_info_destructor;
diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
--- a/drivers/usb/storage/shuttle_usbat.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/shuttle_usbat.c Tue Aug 13 14:58:40 2013 +0200
@@ -1068,7 +1068,7 @@
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c
index daf2fc5..b723518 100644
--- a/drivers/usb/storage/shuttle_usbat.c
+++ b/drivers/usb/storage/shuttle_usbat.c
@@ -1068,7 +1068,7 @@ static int usbat_flash_get_sector_count(struct us_data *us,
if (!us || !info)
return USB_STOR_TRANSPORT_ERROR;
@ -679,7 +709,7 @@ diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -1153,7 +1153,7 @@
@@ -1153,7 +1153,7 @@ static int usbat_flash_read_data(struct us_data *us,
*/
alloclen = min(totallen, 65536u);
@ -688,7 +718,7 @@ diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -1244,7 +1244,7 @@
@@ -1244,7 +1244,7 @@ static int usbat_flash_write_data(struct us_data *us,
*/
alloclen = min(totallen, 65536u);
@ -697,7 +727,7 @@ diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -1348,7 +1348,7 @@
@@ -1348,7 +1348,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us,
len = (65535/srb->transfersize) * srb->transfersize;
US_DEBUGP("Max read is %d bytes\n", len);
len = min(len, scsi_bufflen(srb));
@ -706,7 +736,7 @@ diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
if (buffer == NULL) /* bloody hell! */
return USB_STOR_TRANSPORT_FAILED;
sector = short_pack(data[7+3], data[7+2]);
@@ -1459,7 +1459,7 @@
@@ -1459,7 +1459,7 @@ static int init_usbat(struct us_data *us, int devicetype)
unsigned char subcountL = USBAT_ATA_LBA_ME;
unsigned char *status = us->iobuf;
@ -715,10 +745,11 @@ diff -r 477429e02fe0 drivers/usb/storage/shuttle_usbat.c
if (!us->extra) {
US_DEBUGP("init_usbat: Gah! Can't allocate storage for usbat info struct!\n");
return 1;
diff -r 477429e02fe0 drivers/usb/storage/transport.c
--- a/drivers/usb/storage/transport.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/transport.c Tue Aug 13 14:58:40 2013 +0200
@@ -151,7 +151,7 @@
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index c0543c8..3819a3f 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -151,7 +151,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
us->current_urb->transfer_dma = us->iobuf_dma;
/* submit the URB */
@ -727,7 +758,7 @@ diff -r 477429e02fe0 drivers/usb/storage/transport.c
if (status) {
/* something went wrong */
return status;
@@ -429,7 +429,7 @@
@@ -429,7 +429,7 @@ static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe,
US_DEBUGP("%s: xfer %u bytes, %d entries\n", __func__,
length, num_sg);
result = usb_sg_init(&us->current_sg, us->pusb_dev, pipe, 0,
@ -736,10 +767,11 @@ diff -r 477429e02fe0 drivers/usb/storage/transport.c
if (result) {
US_DEBUGP("usb_sg_init returned %d\n", result);
return USB_STOR_XFER_ERROR;
diff -r 477429e02fe0 drivers/usb/storage/usb.c
--- a/drivers/usb/storage/usb.c Tue Aug 13 14:57:26 2013 +0200
+++ b/drivers/usb/storage/usb.c Tue Aug 13 14:58:40 2013 +0200
@@ -453,7 +453,7 @@
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index d6bee40..d122a89 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -453,7 +453,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf)
usb_set_intfdata(intf, us);
/* Allocate the control/setup and DMA-mapped buffers */

View File

@ -1 +1 @@
7833d3cf1b2c376dca206cc5677c562998bad61e
b396829fbc0af030d9ad632d79ad3f53389d43f2