]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.35 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 15 Sep 2010 19:05:11 +0000 (12:05 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 15 Sep 2010 19:05:11 +0000 (12:05 -0700)
queue-2.6.35/series
queue-2.6.35/staging-hv-fix-missing-functions-for-net_device_ops.patch [new file with mode: 0644]
queue-2.6.35/staging-hv-fixed-bounce-kmap-problem-by-using-correct-index.patch [new file with mode: 0644]
queue-2.6.35/staging-hv-fixed-lockup-problem-with-bounce_buffer-scatter-list.patch [new file with mode: 0644]
queue-2.6.35/staging-hv-fixed-the-value-of-the-64bit-hole-inside-ring-buffer.patch [new file with mode: 0644]
queue-2.6.35/staging-hv-increased-storvsc-ringbuffer-and-max_io_requests.patch [new file with mode: 0644]
queue-2.6.35/staging-rt2870sta-add-more-device-ids-from-vendor-drivers.patch [new file with mode: 0644]

index 1b82ea18907c6a550b9892b3fa48a11639536fcb..e72e52c76bcca03782c6cf3d0a42ae4473adb4ad 100644 (file)
@@ -19,3 +19,9 @@ pci-msi-restore-read_msi_msg_desc-add-get_cached_msi_msg_desc.patch
 direct-io-move-aio_complete-into-end_io.patch
 ext4-move-aio-completion-after-unwritten-extent-conversion.patch
 xfs-move-aio-completion-after-unwritten-extent-conversion.patch
+staging-rt2870sta-add-more-device-ids-from-vendor-drivers.patch
+staging-hv-fix-missing-functions-for-net_device_ops.patch
+staging-hv-fixed-bounce-kmap-problem-by-using-correct-index.patch
+staging-hv-fixed-the-value-of-the-64bit-hole-inside-ring-buffer.patch
+staging-hv-increased-storvsc-ringbuffer-and-max_io_requests.patch
+staging-hv-fixed-lockup-problem-with-bounce_buffer-scatter-list.patch
diff --git a/queue-2.6.35/staging-hv-fix-missing-functions-for-net_device_ops.patch b/queue-2.6.35/staging-hv-fix-missing-functions-for-net_device_ops.patch
new file mode 100644 (file)
index 0000000..be684f7
--- /dev/null
@@ -0,0 +1,39 @@
+From b681b5886bb5d1f5b6750a0ed7c62846da7ccea4 Mon Sep 17 00:00:00 2001
+From: Haiyang Zhang <haiyangz@microsoft.com>
+Date: Tue, 3 Aug 2010 19:15:31 +0000
+Subject: staging: hv: Fix missing functions for net_device_ops
+
+From: Haiyang Zhang <haiyangz@microsoft.com>
+
+commit b681b5886bb5d1f5b6750a0ed7c62846da7ccea4 upstream.
+
+Fix missing functions for net_device_ops.
+It's a bug when porting the drivers from 2.6.27 to 2.6.32. In 2.6.27,
+the default functions for Ethernet, like eth_change_mtu(), were assigned
+by ether_setup(). But in 2.6.32, these function pointers moved to
+net_device_ops structure and no longer be assigned in ether_setup(). So
+we need to set these functions in our driver code. It will ensure the
+MTU won't be set beyond 1500. Otherwise, this can cause an error on the
+server side, because the HyperV linux driver doesn't support jumbo frame
+yet.
+
+Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/netvsc_drv.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/staging/hv/netvsc_drv.c
++++ b/drivers/staging/hv/netvsc_drv.c
+@@ -348,6 +348,9 @@ static const struct net_device_ops devic
+       .ndo_stop =                     netvsc_close,
+       .ndo_start_xmit =               netvsc_start_xmit,
+       .ndo_set_multicast_list =       netvsc_set_multicast_list,
++      .ndo_change_mtu =               eth_change_mtu,
++      .ndo_validate_addr =            eth_validate_addr,
++      .ndo_set_mac_address =          eth_mac_addr,
+ };
+ static int netvsc_probe(struct device *device)
diff --git a/queue-2.6.35/staging-hv-fixed-bounce-kmap-problem-by-using-correct-index.patch b/queue-2.6.35/staging-hv-fixed-bounce-kmap-problem-by-using-correct-index.patch
new file mode 100644 (file)
index 0000000..f4868ad
--- /dev/null
@@ -0,0 +1,42 @@
+From 0c47a70a9a8a6d1ec37a53d2f9cb82f8b8ef8aa2 Mon Sep 17 00:00:00 2001
+From: Hank Janssen <hjanssen@microsoft.com>
+Date: Thu, 5 Aug 2010 19:29:44 +0000
+Subject: staging: hv: Fixed bounce kmap problem by using correct index
+
+From: Hank Janssen <hjanssen@microsoft.com>
+
+commit 0c47a70a9a8a6d1ec37a53d2f9cb82f8b8ef8aa2 upstream.
+
+Fixed bounce offset kmap problem by using correct index.
+The symptom of the problem is that in some NAS appliances this problem
+represents Itself by a unresponsive VM under a load with many clients writing
+small files.
+
+Signed-off-by:Hank Janssen <hjanssen@microsoft.com>
+Signed-off-by:Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/storvsc_drv.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/hv/storvsc_drv.c
++++ b/drivers/staging/hv/storvsc_drv.c
+@@ -526,7 +526,7 @@ static unsigned int copy_to_bounce_buffe
+               /* ASSERT(orig_sgl[i].offset + orig_sgl[i].length <= PAGE_SIZE); */
+-              if (j == 0)
++              if (bounce_addr == 0)
+                       bounce_addr = (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), KM_IRQ0);
+               while (srclen) {
+@@ -587,7 +587,7 @@ static unsigned int copy_from_bounce_buf
+               destlen = orig_sgl[i].length;
+               /* ASSERT(orig_sgl[i].offset + orig_sgl[i].length <= PAGE_SIZE); */
+-              if (j == 0)
++              if (bounce_addr == 0)
+                       bounce_addr = (unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])), KM_IRQ0);
+               while (destlen) {
diff --git a/queue-2.6.35/staging-hv-fixed-lockup-problem-with-bounce_buffer-scatter-list.patch b/queue-2.6.35/staging-hv-fixed-lockup-problem-with-bounce_buffer-scatter-list.patch
new file mode 100644 (file)
index 0000000..d325199
--- /dev/null
@@ -0,0 +1,61 @@
+From 77c5ceaff31645ea049c6706b99e699eae81fb88 Mon Sep 17 00:00:00 2001
+From: Hank Janssen <hjanssen@microsoft.com>
+Date: Wed, 1 Sep 2010 11:10:41 -0700
+Subject: staging: hv: Fixed lockup problem with bounce_buffer scatter list
+
+From: Hank Janssen <hjanssen@microsoft.com>
+
+commit 77c5ceaff31645ea049c6706b99e699eae81fb88 upstream.
+
+Fixed lockup problem with bounce_buffer scatter list which caused
+crashes in heavy loads. And minor code indentation cleanup in effected
+area.
+
+Removed whitespace and noted minor indentation changes in description as
+pointed out by Joe Perches. (Thanks for reviewing Joe)
+
+Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
+Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/storvsc_drv.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/hv/storvsc_drv.c
++++ b/drivers/staging/hv/storvsc_drv.c
+@@ -646,6 +646,7 @@ static int storvsc_queuecommand(struct s
+       unsigned int request_size = 0;
+       int i;
+       struct scatterlist *sgl;
++      unsigned int sg_count = 0;
+       DPRINT_ENTER(STORVSC_DRV);
+@@ -730,6 +731,7 @@ static int storvsc_queuecommand(struct s
+       request->DataBuffer.Length = scsi_bufflen(scmnd);
+       if (scsi_sg_count(scmnd)) {
+               sgl = (struct scatterlist *)scsi_sglist(scmnd);
++              sg_count = scsi_sg_count(scmnd);
+               /* check if we need to bounce the sgl */
+               if (do_bounce_buffer(sgl, scsi_sg_count(scmnd)) != -1) {
+@@ -764,15 +766,16 @@ static int storvsc_queuecommand(struct s
+                                             scsi_sg_count(scmnd));
+                       sgl = cmd_request->bounce_sgl;
++                      sg_count = cmd_request->bounce_sgl_count;
+               }
+               request->DataBuffer.Offset = sgl[0].offset;
+-              for (i = 0; i < scsi_sg_count(scmnd); i++) {
++              for (i = 0; i < sg_count; i++) {
+                       DPRINT_DBG(STORVSC_DRV, "sgl[%d] len %d offset %d\n",
+                                  i, sgl[i].length, sgl[i].offset);
+                       request->DataBuffer.PfnArray[i] =
+-                                      page_to_pfn(sg_page((&sgl[i])));
++                              page_to_pfn(sg_page((&sgl[i])));
+               }
+       } else if (scsi_sglist(scmnd)) {
+               /* ASSERT(scsi_bufflen(scmnd) <= PAGE_SIZE); */
diff --git a/queue-2.6.35/staging-hv-fixed-the-value-of-the-64bit-hole-inside-ring-buffer.patch b/queue-2.6.35/staging-hv-fixed-the-value-of-the-64bit-hole-inside-ring-buffer.patch
new file mode 100644 (file)
index 0000000..34e85c0
--- /dev/null
@@ -0,0 +1,41 @@
+From e5fa721d1c2a54261a37eb59686e18dee34b6af6 Mon Sep 17 00:00:00 2001
+From: Haiyang Zhang <haiyangz@microsoft.com>
+Date: Thu, 5 Aug 2010 19:30:01 +0000
+Subject: staging: hv: Fixed the value of the 64bit-hole inside ring buffer
+
+From: Haiyang Zhang <haiyangz@microsoft.com>
+
+commit e5fa721d1c2a54261a37eb59686e18dee34b6af6 upstream.
+
+Fixed the value of the 64bit-hole inside ring buffer, this
+caused a problem on Hyper-V when running checked Windows builds.
+
+Checked builds of Windows are used internally and given to external
+system integrators at times. They are builds that for example that all
+elements in a structure follow the definition of that Structure. The bug
+this fixed was for a field that we did not fill in at all (Because we do
+Not use it on the Linux side), and the checked build of windows gives
+errors on it internally to the Windows logs.
+
+This fixes that error.
+
+Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
+Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/ring_buffer.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/staging/hv/ring_buffer.c
++++ b/drivers/staging/hv/ring_buffer.c
+@@ -192,8 +192,7 @@ Description:
+ static inline u64
+ GetRingBufferIndices(RING_BUFFER_INFO *RingInfo)
+ {
+-      return ((u64)RingInfo->RingBuffer->WriteIndex << 32)
+-      || RingInfo->RingBuffer->ReadIndex;
++      return (u64)RingInfo->RingBuffer->WriteIndex << 32;
+ }
diff --git a/queue-2.6.35/staging-hv-increased-storvsc-ringbuffer-and-max_io_requests.patch b/queue-2.6.35/staging-hv-increased-storvsc-ringbuffer-and-max_io_requests.patch
new file mode 100644 (file)
index 0000000..81edc06
--- /dev/null
@@ -0,0 +1,46 @@
+From 15dd1c9f53b31cdc84b8072a88c23fa09527c596 Mon Sep 17 00:00:00 2001
+From: Hank Janssen <hjanssen@microsoft.com>
+Date: Thu, 5 Aug 2010 19:30:31 +0000
+Subject: staging: hv: Increased storvsc ringbuffer and max_io_requests
+
+From: Hank Janssen <hjanssen@microsoft.com>
+
+commit 15dd1c9f53b31cdc84b8072a88c23fa09527c596 upstream.
+
+Increased storvsc ringbuffer and max_io_requests. This now more
+closely mimics the numbers on Hyper-V. And will allow more IO requests
+to take place for the SCSI driver.
+
+Max_IO is set to double from what it was before, Hyper-V allows it and
+we have had appliance builder requests to see if it was a problem to
+increase the number.
+
+Ringbuffer size for storvsc is now increased because I have seen A few buffer
+problems on extremely busy systems. They were Set pretty low before.
+And since max_io_requests is increased I Really needed to increase the buffer
+as well.
+
+
+Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
+Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/hv/storvsc_api.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/hv/storvsc_api.h
++++ b/drivers/staging/hv/storvsc_api.h
+@@ -28,10 +28,10 @@
+ #include "vmbus_api.h"
+ /* Defines */
+-#define STORVSC_RING_BUFFER_SIZE                      (10*PAGE_SIZE)
++#define STORVSC_RING_BUFFER_SIZE                      (20*PAGE_SIZE)
+ #define BLKVSC_RING_BUFFER_SIZE                               (20*PAGE_SIZE)
+-#define STORVSC_MAX_IO_REQUESTS                               64
++#define STORVSC_MAX_IO_REQUESTS                               128
+ /*
+  * In Hyper-V, each port/path/target maps to 1 scsi host adapter.  In
diff --git a/queue-2.6.35/staging-rt2870sta-add-more-device-ids-from-vendor-drivers.patch b/queue-2.6.35/staging-rt2870sta-add-more-device-ids-from-vendor-drivers.patch
new file mode 100644 (file)
index 0000000..0f8b097
--- /dev/null
@@ -0,0 +1,112 @@
+From 9e693e4375689cb1cd1529aba011de0044f74ef5 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Sun, 29 Aug 2010 02:13:11 +0100
+Subject: Staging: rt2870sta: Add more device IDs from vendor drivers
+
+From: Ben Hutchings <ben@decadent.org.uk>
+
+commit 9e693e4375689cb1cd1529aba011de0044f74ef5 upstream.
+
+Taken from DPO_RT3070_LinuxSTA_V2.3.0.4_20100604.tar.bz2 and
+2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2, with duplicates removed.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/rt2860/usb_main_dev.c |   41 ++++++++++++++++++++++++++++++++--
+ 1 file changed, 39 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/rt2860/usb_main_dev.c
++++ b/drivers/staging/rt2860/usb_main_dev.c
+@@ -44,6 +44,7 @@ struct usb_device_id rtusb_usb_id[] = {
+       {USB_DEVICE(0x07B8, 0x2870)},   /* AboCom */
+       {USB_DEVICE(0x07B8, 0x2770)},   /* AboCom */
+       {USB_DEVICE(0x0DF6, 0x0039)},   /* Sitecom 2770 */
++      {USB_DEVICE(0x0DF6, 0x003F)},   /* Sitecom 2770 */
+       {USB_DEVICE(0x083A, 0x7512)},   /* Arcadyan 2770 */
+       {USB_DEVICE(0x0789, 0x0162)},   /* Logitec 2870 */
+       {USB_DEVICE(0x0789, 0x0163)},   /* Logitec 2870 */
+@@ -95,7 +96,8 @@ struct usb_device_id rtusb_usb_id[] = {
+       {USB_DEVICE(0x050d, 0x815c)},
+       {USB_DEVICE(0x1482, 0x3C09)},   /* Abocom */
+       {USB_DEVICE(0x14B2, 0x3C09)},   /* Alpha */
+-      {USB_DEVICE(0x04E8, 0x2018)},   /* samsung */
++      {USB_DEVICE(0x04E8, 0x2018)},   /* samsung linkstick2 */
++      {USB_DEVICE(0x1690, 0x0740)},   /* Askey */
+       {USB_DEVICE(0x5A57, 0x0280)},   /* Zinwell */
+       {USB_DEVICE(0x5A57, 0x0282)},   /* Zinwell */
+       {USB_DEVICE(0x7392, 0x7718)},
+@@ -105,21 +107,34 @@ struct usb_device_id rtusb_usb_id[] = {
+       {USB_DEVICE(0x1737, 0x0071)},   /* Linksys WUSB600N */
+       {USB_DEVICE(0x0411, 0x00e8)},   /* Buffalo WLI-UC-G300N */
+       {USB_DEVICE(0x050d, 0x815c)},   /* Belkin F5D8053 */
++      {USB_DEVICE(0x100D, 0x9031)},   /* Motorola 2770 */
+ #endif /* RT2870 // */
+ #ifdef RT3070
+       {USB_DEVICE(0x148F, 0x3070)},   /* Ralink 3070 */
+       {USB_DEVICE(0x148F, 0x3071)},   /* Ralink 3071 */
+       {USB_DEVICE(0x148F, 0x3072)},   /* Ralink 3072 */
+       {USB_DEVICE(0x0DB0, 0x3820)},   /* Ralink 3070 */
++      {USB_DEVICE(0x0DB0, 0x871C)},   /* Ralink 3070 */
++      {USB_DEVICE(0x0DB0, 0x822C)},   /* Ralink 3070 */
++      {USB_DEVICE(0x0DB0, 0x871B)},   /* Ralink 3070 */
++      {USB_DEVICE(0x0DB0, 0x822B)},   /* Ralink 3070 */
+       {USB_DEVICE(0x0DF6, 0x003E)},   /* Sitecom 3070 */
+       {USB_DEVICE(0x0DF6, 0x0042)},   /* Sitecom 3072 */
++      {USB_DEVICE(0x0DF6, 0x0048)},   /* Sitecom 3070 */
++      {USB_DEVICE(0x0DF6, 0x0047)},   /* Sitecom 3071 */
+       {USB_DEVICE(0x14B2, 0x3C12)},   /* AL 3070 */
+       {USB_DEVICE(0x18C5, 0x0012)},   /* Corega 3070 */
+       {USB_DEVICE(0x083A, 0x7511)},   /* Arcadyan 3070 */
++      {USB_DEVICE(0x083A, 0xA701)},   /* SMC 3070 */
++      {USB_DEVICE(0x083A, 0xA702)},   /* SMC 3072 */
+       {USB_DEVICE(0x1740, 0x9703)},   /* EnGenius 3070 */
+       {USB_DEVICE(0x1740, 0x9705)},   /* EnGenius 3071 */
+       {USB_DEVICE(0x1740, 0x9706)},   /* EnGenius 3072 */
++      {USB_DEVICE(0x1740, 0x9707)},   /* EnGenius 3070 */
++      {USB_DEVICE(0x1740, 0x9708)},   /* EnGenius 3071 */
++      {USB_DEVICE(0x1740, 0x9709)},   /* EnGenius 3072 */
+       {USB_DEVICE(0x13D3, 0x3273)},   /* AzureWave 3070 */
++      {USB_DEVICE(0x13D3, 0x3305)},   /* AzureWave 3070*/
+       {USB_DEVICE(0x1044, 0x800D)},   /* Gigabyte GN-WB32L 3070 */
+       {USB_DEVICE(0x2019, 0xAB25)},   /* Planex Communications, Inc. RT3070 */
+       {USB_DEVICE(0x07B8, 0x3070)},   /* AboCom 3070 */
+@@ -132,14 +147,36 @@ struct usb_device_id rtusb_usb_id[] = {
+       {USB_DEVICE(0x07D1, 0x3C0D)},   /* D-Link 3070 */
+       {USB_DEVICE(0x07D1, 0x3C0E)},   /* D-Link 3070 */
+       {USB_DEVICE(0x07D1, 0x3C0F)},   /* D-Link 3070 */
++      {USB_DEVICE(0x07D1, 0x3C16)},   /* D-Link 3070 */
++      {USB_DEVICE(0x07D1, 0x3C17)},   /* D-Link 8070 */
+       {USB_DEVICE(0x1D4D, 0x000C)},   /* Pegatron Corporation 3070 */
+       {USB_DEVICE(0x1D4D, 0x000E)},   /* Pegatron Corporation 3070 */
+       {USB_DEVICE(0x5A57, 0x5257)},   /* Zinwell 3070 */
+       {USB_DEVICE(0x5A57, 0x0283)},   /* Zinwell 3072 */
+       {USB_DEVICE(0x04BB, 0x0945)},   /* I-O DATA 3072 */
++      {USB_DEVICE(0x04BB, 0x0947)},   /* I-O DATA 3070 */
++      {USB_DEVICE(0x04BB, 0x0948)},   /* I-O DATA 3072 */
+       {USB_DEVICE(0x203D, 0x1480)},   /* Encore 3070 */
++      {USB_DEVICE(0x20B8, 0x8888)},   /* PARA INDUSTRIAL 3070 */
++      {USB_DEVICE(0x0B05, 0x1784)},   /* Asus 3072 */
++      {USB_DEVICE(0x203D, 0x14A9)},   /* Encore 3070*/
++      {USB_DEVICE(0x0DB0, 0x899A)},   /* MSI 3070*/
++      {USB_DEVICE(0x0DB0, 0x3870)},   /* MSI 3070*/
++      {USB_DEVICE(0x0DB0, 0x870A)},   /* MSI 3070*/
++      {USB_DEVICE(0x0DB0, 0x6899)},   /* MSI 3070 */
++      {USB_DEVICE(0x0DB0, 0x3822)},   /* MSI 3070 */
++      {USB_DEVICE(0x0DB0, 0x3871)},   /* MSI 3070 */
++      {USB_DEVICE(0x0DB0, 0x871A)},   /* MSI 3070 */
++      {USB_DEVICE(0x0DB0, 0x822A)},   /* MSI 3070 */
++      {USB_DEVICE(0x0DB0, 0x3821)},   /* Ralink 3070 */
++      {USB_DEVICE(0x0DB0, 0x821A)},   /* Ralink 3070 */
++      {USB_DEVICE(0x083A, 0xA703)},   /* IO-MAGIC */
++      {USB_DEVICE(0x13D3, 0x3307)},   /* Azurewave */
++      {USB_DEVICE(0x13D3, 0x3321)},   /* Azurewave */
++      {USB_DEVICE(0x07FA, 0x7712)},   /* Edimax */
++      {USB_DEVICE(0x0789, 0x0166)},   /* Edimax */
++      {USB_DEVICE(0x148F, 0x2070)},   /* Edimax */
+ #endif /* RT3070 // */
+-      {USB_DEVICE(0x0DF6, 0x003F)},   /* Sitecom WL-608 */
+       {USB_DEVICE(0x1737, 0x0077)},   /* Linksys WUSB54GC-EU v3 */
+       {USB_DEVICE(0x2001, 0x3C09)},   /* D-Link */
+       {USB_DEVICE(0x2001, 0x3C0A)},   /* D-Link 3072 */