mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-05-08 12:30:16 +00:00
linux-ti335x-psp 3.2: update to v3.2.11
Also add script used to generate patches and SRC_URI Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
This commit is contained in:
committed by
Denys Dmytriyenko
parent
0d0e2c1e27
commit
ebbeb55561
+3
-3
@@ -1,4 +1,4 @@
|
||||
From d1fe421bb81064477843db98b4804fec79eae30e Mon Sep 17 00:00:00 2001
|
||||
From b794efe1ee39a3987a8957553c9b195f2efb701f Mon Sep 17 00:00:00 2001
|
||||
From: Joe Perches <joe@perches.com>
|
||||
Date: Fri, 9 Dec 2011 13:54:34 -0800
|
||||
Subject: [PATCH 01/49] MAINTAINERS: stable: Update address
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Joe Perches <joe@perches.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
MAINTAINERS | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index 62f1cd3..f986e7d 100644
|
||||
@@ -27,5 +27,5 @@ index 62f1cd3..f986e7d 100644
|
||||
|
||||
STAGING SUBSYSTEM
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 3dc851fe5a59ee0eb306b3a29819ee040ba69a24 Mon Sep 17 00:00:00 2001
|
||||
From 154964fb738a03a11e805252423a902b9c481c0f Mon Sep 17 00:00:00 2001
|
||||
From: Joe Perches <joe@perches.com>
|
||||
Date: Fri, 9 Dec 2011 14:12:00 -0800
|
||||
Subject: [PATCH 02/49] Documentation: Update stable address
|
||||
@@ -52,5 +52,5 @@ index 903a254..8a48c9b 100644
|
||||
When selecting recipients for a patch, it is good to have an idea of who
|
||||
you think will eventually accept the patch and get it merged. While it
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 9fa97016831ab21d14565a478dc462f35dfb7d2b Mon Sep 17 00:00:00 2001
|
||||
From 27d332636f77fe598e435682ced1dfd589ffd0e6 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Horman <nhorman@tuxdriver.com>
|
||||
Date: Mon, 2 Jan 2012 15:31:23 -0500
|
||||
Subject: [PATCH 03/49] firmware: Fix an oops on reading fw_priv->fw in sysfs
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/base/firmware_class.c | 14 +++++++-------
|
||||
1 files changed, 7 insertions(+), 7 deletions(-)
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
|
||||
index 06ed6b4..3719c94 100644
|
||||
@@ -77,5 +77,5 @@ index 06ed6b4..3719c94 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From c64f87400ad7f27c043d969e695b3b2384e8a246 Mon Sep 17 00:00:00 2001
|
||||
From 13b85c61c69eec7cfd6dde8ce87540ca0760fb49 Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 27 Dec 2011 12:22:51 -0600
|
||||
Subject: [PATCH 04/49] rt2800usb: Move ID out of unknown
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/rt2x00/rt2800usb.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
|
||||
index 3778763..3265b34 100644
|
||||
@@ -39,5 +39,5 @@ index 3778763..3265b34 100644
|
||||
/* Logitec */
|
||||
{ USB_DEVICE(0x0789, 0x0168) },
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 698d2012f8540d1cedc1f49013ba320e382cd1d9 Mon Sep 17 00:00:00 2001
|
||||
From 7cfe5244ace9d57f46d8928552a885b084e04170 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Date: Wed, 28 Dec 2011 00:10:16 +0000
|
||||
Subject: [PATCH 05/49] offb: Fix setting of the pseudo-palette for >8bpp
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/video/offb.c | 50 +++++++++++++++++++++++---------------------------
|
||||
1 files changed, 23 insertions(+), 27 deletions(-)
|
||||
1 file changed, 23 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/offb.c b/drivers/video/offb.c
|
||||
index cb163a5..24e1fc6 100644
|
||||
@@ -88,5 +88,5 @@ index cb163a5..24e1fc6 100644
|
||||
green >>= 8;
|
||||
blue >>= 8;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 37c7c45ec59ce80eaedb2b8edc4b797e4ad0ef03 Mon Sep 17 00:00:00 2001
|
||||
From fa2fd2a2567605b97f702458ad603c502d680b8e Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Date: Tue, 3 Jan 2012 12:09:15 +1100
|
||||
Subject: [PATCH 06/49] offb: Fix bug in calculating requested vram size
|
||||
@@ -12,7 +12,7 @@ Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/video/offb.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/video/offb.c b/drivers/video/offb.c
|
||||
index 24e1fc6..3251a02 100644
|
||||
@@ -28,5 +28,5 @@ index 24e1fc6..3251a02 100644
|
||||
unsigned long res_start = address;
|
||||
struct fb_fix_screeninfo *fix;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 3184baa0e69e6ad327808b91e0d915090c59b99b Mon Sep 17 00:00:00 2001
|
||||
From e6b88766bba2a356fba01665ddf133de1bb35051 Mon Sep 17 00:00:00 2001
|
||||
From: Andres Salomon <dilinger@queued.net>
|
||||
Date: Mon, 19 Dec 2011 12:22:58 -0800
|
||||
Subject: [PATCH 07/49] libertas: clean up scan thread handling
|
||||
@@ -46,7 +46,7 @@ Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/libertas/cfg.c | 10 ++++++----
|
||||
1 files changed, 6 insertions(+), 4 deletions(-)
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
|
||||
index a7f1ab2..db64ef1 100644
|
||||
@@ -82,5 +82,5 @@ index a7f1ab2..db64ef1 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 84c0b10f18c54e0f669f9ac81872db6aff1e59b4 Mon Sep 17 00:00:00 2001
|
||||
From 5799429729ba8ad2cc0854682b106df29cdf2c7f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
|
||||
Date: Fri, 9 Dec 2011 22:16:07 +0100
|
||||
Subject: [PATCH 08/49] bcma: support for suspend and resume
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
drivers/bcma/bcma_private.h | 3 +++
|
||||
drivers/bcma/host_pci.c | 37 +++++++++++++++++++++++++++++++++++++
|
||||
drivers/bcma/main.c | 16 ++++++++++++++++
|
||||
3 files changed, 56 insertions(+), 0 deletions(-)
|
||||
3 files changed, 56 insertions(+)
|
||||
|
||||
diff --git a/drivers/bcma/bcma_private.h b/drivers/bcma/bcma_private.h
|
||||
index 30a3085..fda56bd 100644
|
||||
@@ -116,5 +116,5 @@ index 70c84b9..10f92b3 100644
|
||||
{
|
||||
drv->drv.name = drv->name;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From aa9c7fd565d04120156ef720235e9a759638606a Mon Sep 17 00:00:00 2001
|
||||
From b230ef10214deadf20f4851b9f339333aa91b384 Mon Sep 17 00:00:00 2001
|
||||
From: Pontus Fuchs <pontus.fuchs@gmail.com>
|
||||
Date: Tue, 18 Oct 2011 09:23:41 +0200
|
||||
Subject: [PATCH 09/49] wl12xx: Validate FEM index from ini file and FW
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/wl12xx/cmd.c | 22 ++++++++++++++++++++++
|
||||
1 files changed, 22 insertions(+), 0 deletions(-)
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
|
||||
index a52299e..54a0d66 100644
|
||||
@@ -71,5 +71,5 @@ index a52299e..54a0d66 100644
|
||||
answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer);
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From bcd7880977c293b60ae6dbae4264d6c47be08fb9 Mon Sep 17 00:00:00 2001
|
||||
From 1fae8f9be678520727414fa8f16417e17ccd4088 Mon Sep 17 00:00:00 2001
|
||||
From: Pontus Fuchs <pontus.fuchs@gmail.com>
|
||||
Date: Tue, 18 Oct 2011 09:23:42 +0200
|
||||
Subject: [PATCH 10/49] wl12xx: Check buffer bound when processing nvs data
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/wl12xx/boot.c | 14 ++++++++++++++
|
||||
1 files changed, 14 insertions(+), 0 deletions(-)
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/wl12xx/boot.c b/drivers/net/wireless/wl12xx/boot.c
|
||||
index 6813379..a7b327d 100644
|
||||
@@ -64,5 +64,5 @@ index 6813379..a7b327d 100644
|
||||
|
||||
static void wl1271_boot_enable_interrupts(struct wl1271 *wl)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 78848b4805314cdbf6c342b8315cdf7db2a1d09e Mon Sep 17 00:00:00 2001
|
||||
From 99a27ec9ad08dc0ab97efb62c424215911e2a580 Mon Sep 17 00:00:00 2001
|
||||
From: Pontus Fuchs <pontus.fuchs@gmail.com>
|
||||
Date: Thu, 1 Dec 2011 12:13:44 +0100
|
||||
Subject: [PATCH 11/49] wl12xx: Restore testmode ABI
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Luciano Coelho <coelho@ti.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/wl12xx/testmode.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/wl12xx/testmode.c b/drivers/net/wireless/wl12xx/testmode.c
|
||||
index 4ae8eff..abfb120 100644
|
||||
@@ -28,5 +28,5 @@ index 4ae8eff..abfb120 100644
|
||||
WL1271_TM_CMD_RECOVER,
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 9c146884a6b099ed8892c056e26eae85019bc2c9 Mon Sep 17 00:00:00 2001
|
||||
From 9964209638e47771c184f5eb8ea393e852dcb87e Mon Sep 17 00:00:00 2001
|
||||
From: Anton Blanchard <anton@samba.org>
|
||||
Date: Wed, 23 Nov 2011 20:07:17 +0000
|
||||
Subject: [PATCH 12/49] powerpc/time: Handle wrapping of decrementer
|
||||
@@ -89,5 +89,5 @@ index 522bb1d..5db163c 100644
|
||||
struct clock_event_device *dev)
|
||||
{
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 78f337d172aafe8577dab8044f26326850b6c5d0 Mon Sep 17 00:00:00 2001
|
||||
From a5053ab063ae0b2fd8a4d77225570b93db184fd5 Mon Sep 17 00:00:00 2001
|
||||
From: Li Zhong <zhong@linux.vnet.ibm.com>
|
||||
Date: Sun, 18 Dec 2011 16:03:04 +0000
|
||||
Subject: [PATCH 13/49] powerpc: Fix unpaired probe_hcall_entry and
|
||||
@@ -81,5 +81,5 @@ index 27a4950..dc36ea6 100644
|
||||
|
||||
out:
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 838487db8eb68ce5fa5417e9ea1333795f172523 Mon Sep 17 00:00:00 2001
|
||||
From 1792dc9565d7aac9b9696ea760d807faaddb3346 Mon Sep 17 00:00:00 2001
|
||||
From: Ram Vepa <ram.vepa@qlogic.com>
|
||||
Date: Fri, 23 Dec 2011 08:01:43 -0500
|
||||
Subject: [PATCH 14/49] IB/qib: Fix a possible data corruption when receiving
|
||||
@@ -74,5 +74,5 @@ index 1d58959..5a070e8 100644
|
||||
|
||||
static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From a2beea13ae4c2ffcaa7f0ddf94fde1246e2e6fc1 Mon Sep 17 00:00:00 2001
|
||||
From a2128de6bb92885e31935d6c2e55f710cc4450da Mon Sep 17 00:00:00 2001
|
||||
From: Eli Cohen <eli@dev.mellanox.co.il>
|
||||
Date: Tue, 3 Jan 2012 20:36:48 -0800
|
||||
Subject: [PATCH 15/49] IB/uverbs: Protect QP multicast list
|
||||
@@ -24,7 +24,7 @@ Signed-off-by: Roland Dreier <roland@purestorage.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/infiniband/core/uverbs_cmd.c | 21 +++++++++++++++++----
|
||||
1 files changed, 17 insertions(+), 4 deletions(-)
|
||||
1 file changed, 17 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
|
||||
index 254f164..e3db8ef 100644
|
||||
@@ -92,5 +92,5 @@ index 254f164..e3db8ef 100644
|
||||
return ret ? ret : in_len;
|
||||
}
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From 274a64cd739d2b5e33e6e2112f78c896b18849a9 Mon Sep 17 00:00:00 2001
|
||||
From 0ecc365ca1e7a92c8fbad58d6a3bac8788be34cc Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 2 Dec 2011 12:22:54 -0800
|
||||
Subject: [PATCH 16/49] iwlagn: fix TID use bug
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-commands.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
|
||||
index 69d5f85..8b9ff28 100644
|
||||
@@ -46,5 +46,5 @@ index 69d5f85..8b9ff28 100644
|
||||
#define STA_FLG_TX_RATE_MSK cpu_to_le32(1 << 2)
|
||||
#define STA_FLG_PWR_SAVE_MSK cpu_to_le32(1 << 8)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 8de3e18bbd1ec02914f9bf1517d2c3557c666314 Mon Sep 17 00:00:00 2001
|
||||
From 89901733103c8f695c1d8cd5723f97fb55f53894 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Mon, 19 Dec 2011 14:00:59 -0800
|
||||
Subject: [PATCH 17/49] iwlagn: fix (remove) use of PAGE_SIZE
|
||||
@@ -176,5 +176,5 @@ index 374c68c..1920237 100644
|
||||
iwl_write32(bus(trans), CSR_DRAM_INT_TBL_REG, val);
|
||||
trans_pcie->use_ict = true;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 3d69705bbc0503baa930a277c3570ccdc2b82ac1 Mon Sep 17 00:00:00 2001
|
||||
From 76f1118e4b644be5b3572754925120648c135800 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Rostedt <srostedt@redhat.com>
|
||||
Date: Fri, 4 Nov 2011 16:32:25 -0400
|
||||
Subject: [PATCH 18/49] perf: Fix parsing of __print_flags() in TP_printk()
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
tools/perf/util/trace-event-parse.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
|
||||
index 6c164dc..bf54c48 100644
|
||||
@@ -33,5 +33,5 @@ index 6c164dc..bf54c48 100644
|
||||
goto out_free;
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From b892a813649b593177f4b36c200691ec7b610af7 Mon Sep 17 00:00:00 2001
|
||||
From babc031c2b450518ffb3ffc6a5ae1b02799a7af3 Mon Sep 17 00:00:00 2001
|
||||
From: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Date: Tue, 27 Dec 2011 19:23:36 +0200
|
||||
Subject: [PATCH 19/49] ore: Fix crash in case of an IO error.
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/exofs/ore.c | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
|
||||
index d271ad8..894f3e1 100644
|
||||
@@ -37,5 +37,5 @@ index d271ad8..894f3e1 100644
|
||||
}
|
||||
if (osi.osd_err_pri >= acumulated_osd_err) {
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 3c8f1a35fab7418f9afeda2618992c1fd5504475 Mon Sep 17 00:00:00 2001
|
||||
From 90d604f1ef7df36ed0ccbba9cd74ebd8948486da Mon Sep 17 00:00:00 2001
|
||||
From: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Date: Wed, 28 Dec 2011 19:14:23 +0200
|
||||
Subject: [PATCH 20/49] ore: fix BUG_ON, too few sgs when reading
|
||||
@@ -52,5 +52,5 @@ index 29c47e5..414a2df 100644
|
||||
} else {
|
||||
struct __stripe_pages_2d *sp2d = ios->sp2d;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
From f3db3efc229dac1097a71b9d793d61aefb033ac2 Mon Sep 17 00:00:00 2001
|
||||
From e467d09c0216e2f21f4f27555150fa03850b769d Mon Sep 17 00:00:00 2001
|
||||
From: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Date: Wed, 28 Dec 2011 19:21:45 +0200
|
||||
Subject: [PATCH 21/49] ore: Must support none-PAGE-aligned IO
|
||||
@@ -20,8 +20,8 @@ later Kernels.
|
||||
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/exofs/ore_raid.c | 72 ++++++++++++++++++++++++++++++++++++++++++--------
|
||||
1 files changed, 60 insertions(+), 12 deletions(-)
|
||||
fs/exofs/ore_raid.c | 72 ++++++++++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 60 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/fs/exofs/ore_raid.c b/fs/exofs/ore_raid.c
|
||||
index 414a2df..d222c77 100644
|
||||
@@ -159,5 +159,5 @@ index 414a2df..d222c77 100644
|
||||
first_stripe = div_u64(ios->offset, stripe_size);
|
||||
last_stripe = div_u64(ios->offset + ios->length, stripe_size);
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From db0889eb6584510c3e1d860bfcfc7a85efc6fabe Mon Sep 17 00:00:00 2001
|
||||
From 39dc6fc36180f09295b2361b32e1ded494787507 Mon Sep 17 00:00:00 2001
|
||||
From: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Date: Tue, 29 Nov 2011 15:35:53 -0800
|
||||
Subject: [PATCH 22/49] ore: FIX breakage when MISC_FILESYSTEMS is not set
|
||||
@@ -85,5 +85,5 @@ index 0000000..1ca7fb7
|
||||
+ select ASYNC_XOR
|
||||
+ default SCSI_OSD_ULD
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 914681dc085b7bdeae0de64fba94532a6bcd093e Mon Sep 17 00:00:00 2001
|
||||
From 755af2779e6b0a7bb925b7c362e69f959995e6ca Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Wed, 21 Dec 2011 17:35:34 +0100
|
||||
Subject: [PATCH 23/49] reiserfs: Fix quota mount option parsing
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/reiserfs/super.c | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
|
||||
index 14363b9..f9eaa4a 100644
|
||||
@@ -30,5 +30,5 @@ index 14363b9..f9eaa4a 100644
|
||||
#endif
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 0621050323cd3eef6fe27f168151e8823a6f63dd Mon Sep 17 00:00:00 2001
|
||||
From 2385a06f384672d87f94bbc7ae2d56da961c62a7 Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Mahoney <jeffm@suse.com>
|
||||
Date: Wed, 21 Dec 2011 21:18:43 +0100
|
||||
Subject: [PATCH 24/49] reiserfs: Force inode evictions before umount to avoid
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/reiserfs/super.c | 24 ++++++++++++++----------
|
||||
1 files changed, 14 insertions(+), 10 deletions(-)
|
||||
1 file changed, 14 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
|
||||
index f9eaa4a..5e3527b 100644
|
||||
@@ -66,5 +66,5 @@ index f9eaa4a..5e3527b 100644
|
||||
|
||||
kill_block_super(s);
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From d6bc098d6daabceca79a299bfe95dfe218661423 Mon Sep 17 00:00:00 2001
|
||||
From a7cdfdb846fcba86ea1fa6c3eb0af197957e14c5 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Thu, 22 Dec 2011 16:49:05 +0100
|
||||
Subject: [PATCH 25/49] ext3: Don't warn from writepage when readonly inode is
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/ext3/inode.c | 24 +++++++++++++++++++++---
|
||||
1 files changed, 21 insertions(+), 3 deletions(-)
|
||||
1 file changed, 21 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
|
||||
index 85fe655..5b3f907 100644
|
||||
@@ -69,5 +69,5 @@ index 85fe655..5b3f907 100644
|
||||
if (ext3_journal_current_handle())
|
||||
goto no_write;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From b9e6c637b69ffe81b7f272f433f18e3cd2f58052 Mon Sep 17 00:00:00 2001
|
||||
From dd343a1e4ffe4bfbfa808d2d983eb7f3c05b9649 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Thu, 1 Dec 2011 09:59:34 -0800
|
||||
Subject: [PATCH 26/49] drivers: hv: Don't OOPS when you cannot init vmbus
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/hv/vmbus_drv.c | 16 ++++++++++++++++
|
||||
1 files changed, 16 insertions(+), 0 deletions(-)
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 0c048dd..d3b0b4f 100644
|
||||
@@ -66,5 +66,5 @@ index 0c048dd..d3b0b4f 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 797931db7094985a8aa99b24695192d1773129de Mon Sep 17 00:00:00 2001
|
||||
From 8253be156f369d4015dc311ca6895f655c7ec3b1 Mon Sep 17 00:00:00 2001
|
||||
From: "K. Y. Srinivasan" <kys@microsoft.com>
|
||||
Date: Tue, 27 Dec 2011 13:49:37 -0800
|
||||
Subject: [PATCH 27/49] Drivers:hv: Fix a bug in vmbus_driver_unregister()
|
||||
@@ -17,7 +17,7 @@ Cc: Sasha Levin <levinsasha928@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/hv/vmbus_drv.c | 5 +----
|
||||
1 files changed, 1 insertions(+), 4 deletions(-)
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index d3b0b4f..d2d0a2a 100644
|
||||
@@ -36,5 +36,5 @@ index d3b0b4f..d2d0a2a 100644
|
||||
EXPORT_SYMBOL_GPL(vmbus_driver_unregister);
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From a4d5730e9c4b209e74eab2f7650b23f95417dc71 Mon Sep 17 00:00:00 2001
|
||||
From 4567e036cdbcff4a7859ca92fcc3a86fe84c73d1 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Stern <stern@rowland.harvard.edu>
|
||||
Date: Wed, 4 Jan 2012 16:36:35 -0500
|
||||
Subject: [PATCH 28/49] USB: update documentation for usbmon
|
||||
@@ -15,7 +15,7 @@ CC: Pete Zaitcev <zaitcev@redhat.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
Documentation/usb/usbmon.txt | 14 +++++++++-----
|
||||
1 files changed, 9 insertions(+), 5 deletions(-)
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
|
||||
index a4efa04..5335fa8 100644
|
||||
@@ -50,5 +50,5 @@ index a4efa04..5335fa8 100644
|
||||
3. Start 'cat'
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 6b544616a14b48a670d0c7ce10a5f8de1246cc96 Mon Sep 17 00:00:00 2001
|
||||
From dd26fed234814467b3d7b537485351705545370c Mon Sep 17 00:00:00 2001
|
||||
From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
||||
Date: Fri, 16 Dec 2011 11:26:30 -0800
|
||||
Subject: [PATCH 29/49] usbfs: Fix oops related to user namespace conversion.
|
||||
@@ -104,7 +104,7 @@ Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/core/devio.c | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
|
||||
index e3beaf2..7abf060 100644
|
||||
@@ -121,5 +121,5 @@ index e3beaf2..7abf060 100644
|
||||
kfree(as->urb->setup_packet);
|
||||
usb_free_urb(as->urb);
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 2918b666fe0636d9d90ce6defda2d3ec908231a8 Mon Sep 17 00:00:00 2001
|
||||
From 9f3da92a62f59784ea39eaa38e259f0185bd5d09 Mon Sep 17 00:00:00 2001
|
||||
From: Claudio Scordino <claudio@evidence.eu.com>
|
||||
Date: Fri, 16 Dec 2011 15:08:49 +0100
|
||||
Subject: [PATCH 30/49] atmel_serial: fix spinlock lockup in RS485 code
|
||||
@@ -16,7 +16,7 @@ Acked-by: Alan Cox <alan@linux.intel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/tty/serial/atmel_serial.c | 5 +++--
|
||||
1 files changed, 3 insertions(+), 2 deletions(-)
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
|
||||
index 4c823f3..90c8e3a 100644
|
||||
@@ -43,5 +43,5 @@ index 4c823f3..90c8e3a 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 7e755f9707e34e7de22e2f3b77ab26d1d8de5a4b Mon Sep 17 00:00:00 2001
|
||||
From 99dba4cb547d9eecf9a9958972763934240d26c1 Mon Sep 17 00:00:00 2001
|
||||
From: Li Zefan <lizf@cn.fujitsu.com>
|
||||
Date: Tue, 27 Dec 2011 14:25:55 +0800
|
||||
Subject: [PATCH 31/49] cgroup: fix to allow mounting a hierarchy by name
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Tejun Heo <tj@kernel.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
kernel/cgroup.c | 6 +++---
|
||||
1 files changed, 3 insertions(+), 3 deletions(-)
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
|
||||
index a184470..cdc0354 100644
|
||||
@@ -46,5 +46,5 @@ index a184470..cdc0354 100644
|
||||
struct cgroup_subsys *ss = subsys[i];
|
||||
if (ss == NULL)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From b2b56aa7932508ce3a81187a68e6a558268efc35 Mon Sep 17 00:00:00 2001
|
||||
From 317d33b7d9f1ae588576781c738a4f7e187c4385 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Sat, 10 Dec 2011 02:30:48 +0100
|
||||
Subject: [PATCH 32/49] udf: Fix deadlock when converting file from in-ICB one
|
||||
@@ -126,5 +126,5 @@ index 4fd1d80..e2787d0 100644
|
||||
iinfo->i_lenAlloc = newsize;
|
||||
}
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 2aabf017a2a76405dd9efbca80320965d8361302 Mon Sep 17 00:00:00 2001
|
||||
From acba1185b43fb423f894716d8d856b2ec4b4b57e Mon Sep 17 00:00:00 2001
|
||||
From: Julia Lawall <julia@diku.dk>
|
||||
Date: Fri, 23 Dec 2011 14:02:55 +0100
|
||||
Subject: [PATCH 33/49] drivers/usb/class/cdc-acm.c: clear dangling pointer
|
||||
@@ -16,7 +16,7 @@ Acked-by: Oliver Neukum <oneukum@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/class/cdc-acm.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
|
||||
index a8078d0..ea5e487 100644
|
||||
@@ -41,5 +41,5 @@ index a8078d0..ea5e487 100644
|
||||
}
|
||||
}
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 1d24cdb0797a26e1fb1d3545f6d4b992a5a23e96 Mon Sep 17 00:00:00 2001
|
||||
From 4e09208930ee36458849851891315d3fdd225b11 Mon Sep 17 00:00:00 2001
|
||||
From: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Date: Mon, 5 Dec 2011 14:02:59 -0800
|
||||
Subject: [PATCH 34/49] USB: isight: fix kernel bug when loading firmware
|
||||
@@ -14,7 +14,7 @@ Tested-by: Wouter M. Koolen <wmkoolen@cwi.nl>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/misc/isight_firmware.c | 6 ++++--
|
||||
1 files changed, 4 insertions(+), 2 deletions(-)
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c
|
||||
index fe1d443..8f725f6 100644
|
||||
@@ -43,5 +43,5 @@ index fe1d443..8f725f6 100644
|
||||
printk(KERN_ERR "isight firmware loading completion failed\n");
|
||||
ret = -ENODEV;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 713ad0e8402a7e377bb8b4254b9b522628c9afeb Mon Sep 17 00:00:00 2001
|
||||
From 8190d5a061930631a577541f296dba71b2495791 Mon Sep 17 00:00:00 2001
|
||||
From: Huajun Li <huajun.li.lee@gmail.com>
|
||||
Date: Wed, 4 Jan 2012 19:25:33 +0800
|
||||
Subject: [PATCH 35/49] usb: usb-storage doesn't support dynamic id currently,
|
||||
@@ -102,7 +102,7 @@ Signed-off-by: Huajun Li <huajun.li.lee@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/storage/usb.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
|
||||
index c325e69..9e069ef 100644
|
||||
@@ -117,5 +117,5 @@ index c325e69..9e069ef 100644
|
||||
|
||||
static int __init usb_stor_init(void)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 17e7ea93a7ec7bb64e3bcd6b3cbee1fea5021587 Mon Sep 17 00:00:00 2001
|
||||
From 8325e7fefc03f4e9942f89762d0cf80ad9ae2a3d Mon Sep 17 00:00:00 2001
|
||||
From: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
|
||||
Date: Thu, 8 Dec 2011 10:03:49 +0530
|
||||
Subject: [PATCH 36/49] USB: pxa168: Fix compilation error
|
||||
@@ -22,7 +22,7 @@ Acked-by: Alan Stern <stern@rowland.harvard.edu>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/host/ehci-pxa168.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/host/ehci-pxa168.c b/drivers/usb/host/ehci-pxa168.c
|
||||
index ac0c16e..8d0e7a2 100644
|
||||
@@ -38,5 +38,5 @@ index ac0c16e..8d0e7a2 100644
|
||||
hcd->has_tt = 1;
|
||||
ehci->sbrn = 0x20;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From ae803972522d34f68270782827580ba0d762468c Mon Sep 17 00:00:00 2001
|
||||
From 50e9555941ff61bb9e2ef09033899beaa2e4bbf2 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oliver@neukum.org>
|
||||
Date: Tue, 3 Jan 2012 09:58:54 +0100
|
||||
Subject: [PATCH 37/49] USB: add quirk for another camera
|
||||
@@ -12,7 +12,7 @@ Signed-off-by: Oliver Neukum <oneukum@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/core/quirks.c | 5 ++++-
|
||||
1 files changed, 4 insertions(+), 1 deletions(-)
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
||||
index ecf12e1..4c65eb6 100644
|
||||
@@ -33,5 +33,5 @@ index ecf12e1..4c65eb6 100644
|
||||
{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 4a6a3895c6ffe420a07f90df0f8ad5d7ac5a47a4 Mon Sep 17 00:00:00 2001
|
||||
From a20f87f804897492ceed5fb120ca4dfded6918ed Mon Sep 17 00:00:00 2001
|
||||
From: Johan Hovold <jhovold@gmail.com>
|
||||
Date: Sun, 6 Nov 2011 19:06:21 +0100
|
||||
Subject: [PATCH 38/49] USB: omninet: fix write_room
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Johan Hovold <jhovold@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/serial/omninet.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
|
||||
index 60f38d5..0a8c1e6 100644
|
||||
@@ -30,5 +30,5 @@ index 60f38d5..0a8c1e6 100644
|
||||
|
||||
dbg("%s - returns %d", __func__, room);
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From bd6e892c7f49027eb7d6f5739406142db70fee7e Mon Sep 17 00:00:00 2001
|
||||
From 8a5baaaadedfa3aeba738b93fc50d60e9e21cfd5 Mon Sep 17 00:00:00 2001
|
||||
From: Janne Snabb <snabb@epipe.com>
|
||||
Date: Wed, 28 Dec 2011 19:36:00 +0000
|
||||
Subject: [PATCH 39/49] usb: option: add ZD Incorporated HSPA modem
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Janne Snabb <snabb@epipe.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/serial/option.c | 5 +++++
|
||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
|
||||
index 6dd6453..c96b6b6 100644
|
||||
@@ -49,5 +49,5 @@ index 6dd6453..c96b6b6 100644
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, option_ids);
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From a558d5668e8c66327a1a84f5db8381e94c2b0cd9 Mon Sep 17 00:00:00 2001
|
||||
From 5f3ac99ec102297e3fa6be18ebc03d9ecde65d26 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Malte=20Schr=C3=B6der?= <maltesch@gmx.de>
|
||||
Date: Thu, 5 Jan 2012 20:34:40 +0100
|
||||
Subject: [PATCH 40/49] USB: Add USB-ID for Multiplex RC serial adapter to
|
||||
@@ -17,7 +17,7 @@ Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/serial/cp210x.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
|
||||
index fd67cc5..a1a324b 100644
|
||||
@@ -32,5 +32,5 @@ index fd67cc5..a1a324b 100644
|
||||
{ USB_DEVICE(0x10C4, 0x81AD) }, /* INSYS USB Modem */
|
||||
{ USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From 61ff4bd883cde399d333204fe9878e90b6f87329 Mon Sep 17 00:00:00 2001
|
||||
From 1f1c6efa1c4c5546f68842735a916322705719cc Mon Sep 17 00:00:00 2001
|
||||
From: Clemens Ladisch <clemens@ladisch.de>
|
||||
Date: Sat, 3 Dec 2011 23:41:31 +0100
|
||||
Subject: [PATCH 41/49] usb: fix number of mapped SG DMA entries
|
||||
@@ -151,5 +151,5 @@ index 1cea207..7626e5a 100644
|
||||
u32 transfer_buffer_length; /* (in) data buffer length */
|
||||
u32 actual_length; /* (return) actual transfer length */
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From df0f4624e1225d9b7fb4d8934565418c81b42c04 Mon Sep 17 00:00:00 2001
|
||||
From 0fb23f5a75ba46ec0d828d48dca74bc9c1c1920a Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 4 Jan 2012 23:29:18 +0100
|
||||
Subject: [PATCH 42/49] xhci: Properly handle COMP_2ND_BW_ERR
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/host/xhci.c | 1 +
|
||||
drivers/usb/host/xhci.h | 1 -
|
||||
2 files changed, 1 insertions(+), 1 deletions(-)
|
||||
2 files changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
|
||||
index a1afb7c..36f9dd8 100644
|
||||
@@ -58,5 +58,5 @@ index 3c8fbd2..09eda3a 100644
|
||||
/* Split Transaction Error */
|
||||
#define COMP_SPLIT_ERR 36
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
From db46f35cb2853ffa42157c7222335cae15eda7e0 Mon Sep 17 00:00:00 2001
|
||||
From 88294d7967eb85c2dde19473346a74fc1b324e09 Mon Sep 17 00:00:00 2001
|
||||
From: Felipe Balbi <balbi@ti.com>
|
||||
Date: Mon, 2 Jan 2012 13:35:41 +0200
|
||||
Subject: [PATCH 43/49] usb: ch9: fix up MaxStreams helper
|
||||
@@ -77,5 +77,5 @@ index d5da6c6..61b2905 100644
|
||||
#define USB_SS_MULT(p) (1 + ((p) & 0x3))
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 53876956cbd176ad0da89ca8e066202f6c143ea8 Mon Sep 17 00:00:00 2001
|
||||
From f93baced861192a7ee0ec93708f2611c685abfad Mon Sep 17 00:00:00 2001
|
||||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Mon, 9 Jan 2012 14:06:46 -0800
|
||||
Subject: [PATCH 44/49] igmp: Avoid zero delay when receiving odd mixture of
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv4/igmp.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
|
||||
index b2ca095..c3cc64c 100644
|
||||
@@ -33,5 +33,5 @@ index b2ca095..c3cc64c 100644
|
||||
if (!pskb_may_pull(skb, sizeof(struct igmpv3_query)))
|
||||
return;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From eaa03e7a01f7dd67773c27e82d446a44440843a6 Mon Sep 17 00:00:00 2001
|
||||
From 7765e2cf7fabde891d8916805ffa205da4e24f6e Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Jacobs <aurel@gnuage.org>
|
||||
Date: Sat, 7 Jan 2012 12:15:16 -0800
|
||||
Subject: [PATCH 45/49] asix: fix infinite loop in rx_fixup()
|
||||
@@ -18,7 +18,7 @@ Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/usb/asix.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
|
||||
index e95f0e6..dd2625a 100644
|
||||
@@ -34,5 +34,5 @@ index e95f0e6..dd2625a 100644
|
||||
|
||||
head = (u8 *) skb->data;
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From b40864c73fef3aefced0863fc2b3c3a7716d9f09 Mon Sep 17 00:00:00 2001
|
||||
From d9424820ef21c0dbf35278e9096406685b0dda64 Mon Sep 17 00:00:00 2001
|
||||
From: stephen hemminger <shemminger@vyatta.com>
|
||||
Date: Sat, 31 Dec 2011 13:26:46 +0000
|
||||
Subject: [PATCH 46/49] bonding: fix error handling if slave is busy (v2)
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/net/bonding/bond_main.c | 9 +++++++--
|
||||
1 files changed, 7 insertions(+), 2 deletions(-)
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
|
||||
index 7f87568..e58aa2b 100644
|
||||
@@ -64,5 +64,5 @@ index 7f87568..e58aa2b 100644
|
||||
dev_close(slave_dev);
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 9d3898fe46309ee5688697d1a65975208dc49639 Mon Sep 17 00:00:00 2001
|
||||
From d64db2d8b1a2459f0cdae717c746411531ef5b7f Mon Sep 17 00:00:00 2001
|
||||
From: Thilo-Alexander Ginkel <thilo@ginkel.com>
|
||||
Date: Sat, 17 Dec 2011 10:55:10 +0100
|
||||
Subject: [PATCH 47/49] usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close()
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Thilo-Alexander Ginkel <thilo@ginkel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
drivers/usb/class/cdc-acm.c | 12 ++++++++++--
|
||||
1 files changed, 10 insertions(+), 2 deletions(-)
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
|
||||
index ea5e487..e61d9c4 100644
|
||||
@@ -50,5 +50,5 @@ index ea5e487..e61d9c4 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
From 5af63c5af9a335ff2af8d6b84d512e92ac522995 Mon Sep 17 00:00:00 2001
|
||||
From 1525dee10b60791931bdc64dc0827ab9f23733a2 Mon Sep 17 00:00:00 2001
|
||||
From: Xi Wang <xi.wang@gmail.com>
|
||||
Date: Mon, 12 Dec 2011 21:55:52 +0000
|
||||
Subject: [PATCH 48/49] xfs: fix acl count validation in xfs_acl_from_disk()
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Ben Myers <bpm@sgi.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
---
|
||||
fs/xfs/xfs_acl.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/xfs/xfs_acl.c b/fs/xfs/xfs_acl.c
|
||||
index 76e4266..ac702a6 100644
|
||||
@@ -30,5 +30,5 @@ index 76e4266..ac702a6 100644
|
||||
count = be32_to_cpu(aclp->acl_cnt);
|
||||
if (count > XFS_ACL_MAX_ENTRIES)
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
From 78d772bb92fa633fc41d234887b050dce88542bc Mon Sep 17 00:00:00 2001
|
||||
From ffb4eeef65c83cbcae58925d15f0c6bc5cb59cff Mon Sep 17 00:00:00 2001
|
||||
From: Greg Kroah-Hartman <gregkh@suse.de>
|
||||
Date: Thu, 12 Jan 2012 11:42:45 -0800
|
||||
Subject: [PATCH 49/49] Linux 3.2.1
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index adddd11..c5edffa 100644
|
||||
@@ -20,5 +20,5 @@ index adddd11..c5edffa 100644
|
||||
NAME = Saber-toothed Squirrel
|
||||
|
||||
--
|
||||
1.7.7.4
|
||||
1.7.9.4
|
||||
|
||||
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
From 472122b7b0040118eae3846c9bfbb97225f1ab11 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Kent <raven@themaw.net>
|
||||
Date: Wed, 22 Feb 2012 20:45:44 +0800
|
||||
Subject: [PATCH 01/95] autofs: work around unhappy compat problem on x86-64
|
||||
|
||||
commit a32744d4abae24572eff7269bc17895c41bd0085 upstream.
|
||||
|
||||
When the autofs protocol version 5 packet type was added in commit
|
||||
5c0a32fc2cd0 ("autofs4: add new packet type for v5 communications"), it
|
||||
obvously tried quite hard to be word-size agnostic, and uses explicitly
|
||||
sized fields that are all correctly aligned.
|
||||
|
||||
However, with the final "char name[NAME_MAX+1]" array at the end, the
|
||||
actual size of the structure ends up being not very well defined:
|
||||
because the struct isn't marked 'packed', doing a "sizeof()" on it will
|
||||
align the size of the struct up to the biggest alignment of the members
|
||||
it has.
|
||||
|
||||
And despite all the members being the same, the alignment of them is
|
||||
different: a "__u64" has 4-byte alignment on x86-32, but native 8-byte
|
||||
alignment on x86-64. And while 'NAME_MAX+1' ends up being a nice round
|
||||
number (256), the name[] array starts out a 4-byte aligned.
|
||||
|
||||
End result: the "packed" size of the structure is 300 bytes: 4-byte, but
|
||||
not 8-byte aligned.
|
||||
|
||||
As a result, despite all the fields being in the same place on all
|
||||
architectures, sizeof() will round up that size to 304 bytes on
|
||||
architectures that have 8-byte alignment for u64.
|
||||
|
||||
Note that this is *not* a problem for 32-bit compat mode on POWER, since
|
||||
there __u64 is 8-byte aligned even in 32-bit mode. But on x86, 32-bit
|
||||
and 64-bit alignment is different for 64-bit entities, and as a result
|
||||
the structure that has exactly the same layout has different sizes.
|
||||
|
||||
So on x86-64, but no other architecture, we will just subtract 4 from
|
||||
the size of the structure when running in a compat task. That way we
|
||||
will write the properly sized packet that user mode expects.
|
||||
|
||||
Not pretty. Sadly, this very subtle, and unnecessary, size difference
|
||||
has been encoded in user space that wants to read packets of *exactly*
|
||||
the right size, and will refuse to touch anything else.
|
||||
|
||||
Reported-and-tested-by: Thomas Meyer <thomas@m3y3r.de>
|
||||
Signed-off-by: Ian Kent <raven@themaw.net>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Jonathan Nieder <jrnieder@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
fs/autofs4/autofs_i.h | 1 +
|
||||
fs/autofs4/dev-ioctl.c | 1 +
|
||||
fs/autofs4/inode.c | 2 ++
|
||||
fs/autofs4/waitq.c | 22 +++++++++++++++++++---
|
||||
4 files changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
|
||||
index 326dc08..308a98b 100644
|
||||
--- a/fs/autofs4/autofs_i.h
|
||||
+++ b/fs/autofs4/autofs_i.h
|
||||
@@ -110,6 +110,7 @@ struct autofs_sb_info {
|
||||
int sub_version;
|
||||
int min_proto;
|
||||
int max_proto;
|
||||
+ int compat_daemon;
|
||||
unsigned long exp_timeout;
|
||||
unsigned int type;
|
||||
int reghost_enabled;
|
||||
diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
|
||||
index 509fe1e..56bac70 100644
|
||||
--- a/fs/autofs4/dev-ioctl.c
|
||||
+++ b/fs/autofs4/dev-ioctl.c
|
||||
@@ -385,6 +385,7 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp,
|
||||
sbi->pipefd = pipefd;
|
||||
sbi->pipe = pipe;
|
||||
sbi->catatonic = 0;
|
||||
+ sbi->compat_daemon = is_compat_task();
|
||||
}
|
||||
out:
|
||||
mutex_unlock(&sbi->wq_mutex);
|
||||
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
|
||||
index 8179f1a..98a5695 100644
|
||||
--- a/fs/autofs4/inode.c
|
||||
+++ b/fs/autofs4/inode.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <linux/parser.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/magic.h>
|
||||
+#include <linux/compat.h>
|
||||
#include "autofs_i.h"
|
||||
#include <linux/module.h>
|
||||
|
||||
@@ -224,6 +225,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
|
||||
set_autofs_type_indirect(&sbi->type);
|
||||
sbi->min_proto = 0;
|
||||
sbi->max_proto = 0;
|
||||
+ sbi->compat_daemon = is_compat_task();
|
||||
mutex_init(&sbi->wq_mutex);
|
||||
spin_lock_init(&sbi->fs_lock);
|
||||
sbi->queues = NULL;
|
||||
diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
|
||||
index e1fbdee..6861f61 100644
|
||||
--- a/fs/autofs4/waitq.c
|
||||
+++ b/fs/autofs4/waitq.c
|
||||
@@ -90,7 +90,24 @@ static int autofs4_write(struct file *file, const void *addr, int bytes)
|
||||
|
||||
return (bytes > 0);
|
||||
}
|
||||
-
|
||||
+
|
||||
+/*
|
||||
+ * The autofs_v5 packet was misdesigned.
|
||||
+ *
|
||||
+ * The packets are identical on x86-32 and x86-64, but have different
|
||||
+ * alignment. Which means that 'sizeof()' will give different results.
|
||||
+ * Fix it up for the case of running 32-bit user mode on a 64-bit kernel.
|
||||
+ */
|
||||
+static noinline size_t autofs_v5_packet_size(struct autofs_sb_info *sbi)
|
||||
+{
|
||||
+ size_t pktsz = sizeof(struct autofs_v5_packet);
|
||||
+#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT)
|
||||
+ if (sbi->compat_daemon > 0)
|
||||
+ pktsz -= 4;
|
||||
+#endif
|
||||
+ return pktsz;
|
||||
+}
|
||||
+
|
||||
static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
|
||||
struct autofs_wait_queue *wq,
|
||||
int type)
|
||||
@@ -147,8 +164,7 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
|
||||
{
|
||||
struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet;
|
||||
|
||||
- pktsz = sizeof(*packet);
|
||||
-
|
||||
+ pktsz = autofs_v5_packet_size(sbi);
|
||||
packet->wait_queue_token = wq->wait_queue_token;
|
||||
packet->len = wq->name.len;
|
||||
memcpy(packet->name, wq->name.name, wq->name.len);
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From 2938d817a741a800001a3de1796090697b4d12e8 Mon Sep 17 00:00:00 2001
|
||||
From: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Date: Sun, 26 Feb 2012 09:44:55 -0800
|
||||
Subject: [PATCH 02/95] Fix autofs compile without CONFIG_COMPAT
|
||||
|
||||
commit 3c761ea05a8900a907f32b628611873f6bef24b2 upstream.
|
||||
|
||||
The autofs compat handling fix caused a compile failure when
|
||||
CONFIG_COMPAT isn't defined.
|
||||
|
||||
Instead of adding random #ifdef'fery in autofs, let's just make the
|
||||
compat helpers earlier to use: without CONFIG_COMPAT, is_compat_task()
|
||||
just hardcodes to zero.
|
||||
|
||||
We could probably do something similar for a number of other cases where
|
||||
we have #ifdef's in code, but this is the low-hanging fruit.
|
||||
|
||||
Reported-and-tested-by: Andreas Schwab <schwab@linux-m68k.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Jonathan Nieder <jrnieder@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
include/linux/compat.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/include/linux/compat.h b/include/linux/compat.h
|
||||
index 66ed067..d42bd48 100644
|
||||
--- a/include/linux/compat.h
|
||||
+++ b/include/linux/compat.h
|
||||
@@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
|
||||
unsigned long liovcnt, const struct compat_iovec __user *rvec,
|
||||
unsigned long riovcnt, unsigned long flags);
|
||||
|
||||
+#else
|
||||
+
|
||||
+#define is_compat_task() (0)
|
||||
+
|
||||
#endif /* CONFIG_COMPAT */
|
||||
#endif /* _LINUX_COMPAT_H */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
From 94c0b0fd293ce8c712cf9ccbfecbb4f59fe737a9 Mon Sep 17 00:00:00 2001
|
||||
From: Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||
Date: Mon, 27 Feb 2012 10:01:52 +0100
|
||||
Subject: [PATCH 03/95] compat: fix compile breakage on s390
|
||||
|
||||
commit 048cd4e51d24ebf7f3552226d03c769d6ad91658 upstream.
|
||||
|
||||
The new is_compat_task() define for the !COMPAT case in
|
||||
include/linux/compat.h conflicts with a similar define in
|
||||
arch/s390/include/asm/compat.h.
|
||||
|
||||
This is the minimal patch which fixes the build issues.
|
||||
|
||||
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Jonathan Nieder <jrnieder@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/s390/include/asm/compat.h | 7 -------
|
||||
arch/s390/kernel/process.c | 1 -
|
||||
arch/s390/kernel/ptrace.c | 2 +-
|
||||
arch/s390/kernel/setup.c | 2 +-
|
||||
arch/s390/kernel/signal.c | 1 -
|
||||
arch/s390/mm/fault.c | 1 -
|
||||
arch/s390/mm/mmap.c | 2 +-
|
||||
drivers/s390/block/dasd_eckd.c | 2 +-
|
||||
drivers/s390/block/dasd_ioctl.c | 1 +
|
||||
drivers/s390/char/fs3270.c | 1 +
|
||||
drivers/s390/char/vmcp.c | 1 +
|
||||
drivers/s390/cio/chsc_sch.c | 1 +
|
||||
drivers/s390/scsi/zfcp_cfdc.c | 1 +
|
||||
13 files changed, 9 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h
|
||||
index 2e49748..234f1d8 100644
|
||||
--- a/arch/s390/include/asm/compat.h
|
||||
+++ b/arch/s390/include/asm/compat.h
|
||||
@@ -172,13 +172,6 @@ static inline int is_compat_task(void)
|
||||
return is_32bit_task();
|
||||
}
|
||||
|
||||
-#else
|
||||
-
|
||||
-static inline int is_compat_task(void)
|
||||
-{
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
#endif
|
||||
|
||||
static inline void __user *arch_compat_alloc_user_space(long len)
|
||||
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
|
||||
index 9451b21..53088e2 100644
|
||||
--- a/arch/s390/kernel/process.c
|
||||
+++ b/arch/s390/kernel/process.c
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <asm/irq.h>
|
||||
#include <asm/timer.h>
|
||||
#include <asm/nmi.h>
|
||||
-#include <asm/compat.h>
|
||||
#include <asm/smp.h>
|
||||
#include "entry.h"
|
||||
|
||||
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
|
||||
index 573bc29..afe82bc 100644
|
||||
--- a/arch/s390/kernel/ptrace.c
|
||||
+++ b/arch/s390/kernel/ptrace.c
|
||||
@@ -20,8 +20,8 @@
|
||||
#include <linux/regset.h>
|
||||
#include <linux/tracehook.h>
|
||||
#include <linux/seccomp.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <trace/syscall.h>
|
||||
-#include <asm/compat.h>
|
||||
#include <asm/segment.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pgtable.h>
|
||||
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
|
||||
index e54c4ff..773f55e 100644
|
||||
--- a/arch/s390/kernel/setup.c
|
||||
+++ b/arch/s390/kernel/setup.c
|
||||
@@ -45,6 +45,7 @@
|
||||
#include <linux/kexec.h>
|
||||
#include <linux/crash_dump.h>
|
||||
#include <linux/memory.h>
|
||||
+#include <linux/compat.h>
|
||||
|
||||
#include <asm/ipl.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -58,7 +59,6 @@
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/ebcdic.h>
|
||||
-#include <asm/compat.h>
|
||||
#include <asm/kvm_virtio.h>
|
||||
#include <asm/diag.h>
|
||||
|
||||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
|
||||
index 7f6f9f3..5086553 100644
|
||||
--- a/arch/s390/kernel/signal.c
|
||||
+++ b/arch/s390/kernel/signal.c
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <asm/ucontext.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/lowcore.h>
|
||||
-#include <asm/compat.h>
|
||||
#include "entry.h"
|
||||
|
||||
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
|
||||
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
|
||||
index a9a3018..c7f0fbc 100644
|
||||
--- a/arch/s390/mm/fault.c
|
||||
+++ b/arch/s390/mm/fault.c
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mmu_context.h>
|
||||
-#include <asm/compat.h>
|
||||
#include "../kernel/entry.h"
|
||||
|
||||
#ifndef CONFIG_64BIT
|
||||
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
|
||||
index f09c748..a0155c0 100644
|
||||
--- a/arch/s390/mm/mmap.c
|
||||
+++ b/arch/s390/mm/mmap.c
|
||||
@@ -29,8 +29,8 @@
|
||||
#include <linux/mman.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/random.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <asm/pgalloc.h>
|
||||
-#include <asm/compat.h>
|
||||
|
||||
static unsigned long stack_maxrandom_size(void)
|
||||
{
|
||||
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
|
||||
index 6ab2968..fe9dacc 100644
|
||||
--- a/drivers/s390/block/dasd_eckd.c
|
||||
+++ b/drivers/s390/block/dasd_eckd.c
|
||||
@@ -18,12 +18,12 @@
|
||||
#include <linux/hdreg.h> /* HDIO_GETGEO */
|
||||
#include <linux/bio.h>
|
||||
#include <linux/module.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/debug.h>
|
||||
#include <asm/idals.h>
|
||||
#include <asm/ebcdic.h>
|
||||
-#include <asm/compat.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/cio.h>
|
||||
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
|
||||
index f1a2016..792c69e 100644
|
||||
--- a/drivers/s390/block/dasd_ioctl.c
|
||||
+++ b/drivers/s390/block/dasd_ioctl.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#define KMSG_COMPONENT "dasd"
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/major.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/blkpg.h>
|
||||
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
|
||||
index e712981..9117045 100644
|
||||
--- a/drivers/s390/char/fs3270.c
|
||||
+++ b/drivers/s390/char/fs3270.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <linux/console.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/slab.h>
|
||||
diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c
|
||||
index 75bde6a..89c03e6 100644
|
||||
--- a/drivers/s390/char/vmcp.c
|
||||
+++ b/drivers/s390/char/vmcp.c
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/fs.h>
|
||||
#include <linux/init.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/miscdevice.h>
|
||||
#include <linux/slab.h>
|
||||
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
|
||||
index 0c87b0f..8f9a1a3 100644
|
||||
--- a/drivers/s390/cio/chsc_sch.c
|
||||
+++ b/drivers/s390/cio/chsc_sch.c
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/uaccess.h>
|
||||
diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c
|
||||
index 303dde0..fab2c25 100644
|
||||
--- a/drivers/s390/scsi/zfcp_cfdc.c
|
||||
+++ b/drivers/s390/scsi/zfcp_cfdc.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#define KMSG_COMPONENT "zfcp"
|
||||
#define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
|
||||
|
||||
+#include <linux/compat.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/miscdevice.h>
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From 4bc061de33266e3ac5cecbc44b99201d8a16e533 Mon Sep 17 00:00:00 2001
|
||||
From: Alban Browaeys <prahal@yahoo.com>
|
||||
Date: Fri, 24 Feb 2012 17:12:45 +0000
|
||||
Subject: [PATCH 04/95] drm/i915: Prevent a machine hang by checking
|
||||
crtc->active before loading lut
|
||||
|
||||
commit aed3f09db39596e539f90b11a5016aea4d8442e1 upstream.
|
||||
|
||||
Before loading the lut (gamma), check the active state of intel_crtc,
|
||||
otherwise at least on gen2 hang ensue.
|
||||
|
||||
This is reproducible in Xorg via:
|
||||
xset dpms force off
|
||||
then
|
||||
xgamma -rgamma 2.0 # freeze.
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44505
|
||||
Signed-off-by: Alban Browaeys <prahal@yahoo.com>
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
||||
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_display.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index daa5743..573f485 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -5965,7 +5965,7 @@ void intel_crtc_load_lut(struct drm_crtc *crtc)
|
||||
int i;
|
||||
|
||||
/* The clocks have to be on to load the palette. */
|
||||
- if (!crtc->enabled)
|
||||
+ if (!crtc->enabled || !intel_crtc->active)
|
||||
return;
|
||||
|
||||
/* use legacy palette for Ironlake */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
From eae6d88febcc4581b90ab6072545f0835902726c Mon Sep 17 00:00:00 2001
|
||||
From: Roland Stigge <stigge@antcom.de>
|
||||
Date: Mon, 27 Feb 2012 17:28:02 +0100
|
||||
Subject: [PATCH 05/95] ARM: LPC32xx: serial.c: HW bug workaround
|
||||
|
||||
commit 2707208ee8a80dbbd5426f5aa1a934f766825bb5 upstream.
|
||||
|
||||
This patch fixes a HW bug by flushing RX FIFOs of the UARTs on init. It was
|
||||
ported from NXP's git.lpclinux.com tree.
|
||||
|
||||
Signed-off-by: Roland Stigge <stigge@antcom.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/mach-lpc32xx/serial.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/mach-lpc32xx/serial.c b/arch/arm/mach-lpc32xx/serial.c
|
||||
index 429cfdb..1a3fd4c 100644
|
||||
--- a/arch/arm/mach-lpc32xx/serial.c
|
||||
+++ b/arch/arm/mach-lpc32xx/serial.c
|
||||
@@ -88,6 +88,7 @@ struct uartinit {
|
||||
char *uart_ck_name;
|
||||
u32 ck_mode_mask;
|
||||
void __iomem *pdiv_clk_reg;
|
||||
+ resource_size_t mapbase;
|
||||
};
|
||||
|
||||
static struct uartinit uartinit_data[] __initdata = {
|
||||
@@ -97,6 +98,7 @@ static struct uartinit uartinit_data[] __initdata = {
|
||||
.ck_mode_mask =
|
||||
LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 5),
|
||||
.pdiv_clk_reg = LPC32XX_CLKPWR_UART5_CLK_CTRL,
|
||||
+ .mapbase = LPC32XX_UART5_BASE,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_LPC32XX_UART3_SELECT
|
||||
@@ -105,6 +107,7 @@ static struct uartinit uartinit_data[] __initdata = {
|
||||
.ck_mode_mask =
|
||||
LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 3),
|
||||
.pdiv_clk_reg = LPC32XX_CLKPWR_UART3_CLK_CTRL,
|
||||
+ .mapbase = LPC32XX_UART3_BASE,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_LPC32XX_UART4_SELECT
|
||||
@@ -113,6 +116,7 @@ static struct uartinit uartinit_data[] __initdata = {
|
||||
.ck_mode_mask =
|
||||
LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 4),
|
||||
.pdiv_clk_reg = LPC32XX_CLKPWR_UART4_CLK_CTRL,
|
||||
+ .mapbase = LPC32XX_UART4_BASE,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_LPC32XX_UART6_SELECT
|
||||
@@ -121,6 +125,7 @@ static struct uartinit uartinit_data[] __initdata = {
|
||||
.ck_mode_mask =
|
||||
LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 6),
|
||||
.pdiv_clk_reg = LPC32XX_CLKPWR_UART6_CLK_CTRL,
|
||||
+ .mapbase = LPC32XX_UART6_BASE,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
@@ -165,6 +170,19 @@ void __init lpc32xx_serial_init(void)
|
||||
|
||||
/* pre-UART clock divider set to 1 */
|
||||
__raw_writel(0x0101, uartinit_data[i].pdiv_clk_reg);
|
||||
+
|
||||
+ /*
|
||||
+ * Force a flush of the RX FIFOs to work around a
|
||||
+ * HW bug
|
||||
+ */
|
||||
+ puart = uartinit_data[i].mapbase;
|
||||
+ __raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart));
|
||||
+ __raw_writel(0x00, LPC32XX_UART_DLL_FIFO(puart));
|
||||
+ j = LPC32XX_SUART_FIFO_SIZE;
|
||||
+ while (j--)
|
||||
+ tmp = __raw_readl(
|
||||
+ LPC32XX_UART_DLL_FIFO(puart));
|
||||
+ __raw_writel(0, LPC32XX_UART_IIR_FCR(puart));
|
||||
}
|
||||
|
||||
/* This needs to be done after all UART clocks are setup */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
From 08d76bb3139d89b31bbf05f2a4b279a739b47404 Mon Sep 17 00:00:00 2001
|
||||
From: Roland Stigge <stigge@antcom.de>
|
||||
Date: Mon, 27 Feb 2012 17:28:03 +0100
|
||||
Subject: [PATCH 06/95] ARM: LPC32xx: serial.c: Fixed loop limit
|
||||
|
||||
commit ff424aa4c89d19082e8ae5a3351006bc8a4cd91b upstream.
|
||||
|
||||
This patch fixes a wrong loop limit on UART init.
|
||||
|
||||
Signed-off-by: Roland Stigge <stigge@antcom.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/mach-lpc32xx/serial.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-lpc32xx/serial.c b/arch/arm/mach-lpc32xx/serial.c
|
||||
index 1a3fd4c..f273528 100644
|
||||
--- a/arch/arm/mach-lpc32xx/serial.c
|
||||
+++ b/arch/arm/mach-lpc32xx/serial.c
|
||||
@@ -187,7 +187,7 @@ void __init lpc32xx_serial_init(void)
|
||||
|
||||
/* This needs to be done after all UART clocks are setup */
|
||||
__raw_writel(clkmodes, LPC32XX_UARTCTL_CLKMODE);
|
||||
- for (i = 0; i < ARRAY_SIZE(uartinit_data) - 1; i++) {
|
||||
+ for (i = 0; i < ARRAY_SIZE(uartinit_data); i++) {
|
||||
/* Force a flush of the RX FIFOs to work around a HW bug */
|
||||
puart = serial_std_platform_data[i].mapbase;
|
||||
__raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart));
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From f62c3f27bbc19f65557bbdb1572fd3179d22389a Mon Sep 17 00:00:00 2001
|
||||
From: Roland Stigge <stigge@antcom.de>
|
||||
Date: Mon, 27 Feb 2012 17:28:02 +0100
|
||||
Subject: [PATCH 07/95] ARM: LPC32xx: irq.c: Clear latched event
|
||||
|
||||
commit 94ed7830cba4dce57b18a2926b5d826bfd184bd6 upstream.
|
||||
|
||||
This patch fixes the wakeup disable function by clearing latched events.
|
||||
|
||||
Signed-off-by: Roland Stigge <stigge@antcom.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/mach-lpc32xx/irq.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
|
||||
index 4eae566..965b1d6 100644
|
||||
--- a/arch/arm/mach-lpc32xx/irq.c
|
||||
+++ b/arch/arm/mach-lpc32xx/irq.c
|
||||
@@ -305,9 +305,18 @@ static int lpc32xx_irq_wake(struct irq_data *d, unsigned int state)
|
||||
|
||||
if (state)
|
||||
eventreg |= lpc32xx_events[d->irq].mask;
|
||||
- else
|
||||
+ else {
|
||||
eventreg &= ~lpc32xx_events[d->irq].mask;
|
||||
|
||||
+ /*
|
||||
+ * When disabling the wakeup, clear the latched
|
||||
+ * event
|
||||
+ */
|
||||
+ __raw_writel(lpc32xx_events[d->irq].mask,
|
||||
+ lpc32xx_events[d->irq].
|
||||
+ event_group->rawstat_reg);
|
||||
+ }
|
||||
+
|
||||
__raw_writel(eventreg,
|
||||
lpc32xx_events[d->irq].event_group->enab_reg);
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
From 2ba0d2ea76b770e0b2a69db02bd3ddc60bbfdcee Mon Sep 17 00:00:00 2001
|
||||
From: Roland Stigge <stigge@antcom.de>
|
||||
Date: Mon, 27 Feb 2012 17:28:02 +0100
|
||||
Subject: [PATCH 08/95] ARM: LPC32xx: Fix interrupt controller init
|
||||
|
||||
commit 35dd0a75d4a382e7f769dd0277732e7aa5235718 upstream.
|
||||
|
||||
This patch fixes the initialization of the interrupt controller of the LPC32xx
|
||||
by correctly setting up SIC1 and SIC2 instead of (wrongly) using the same value
|
||||
as for the Main Interrupt Controller (MIC).
|
||||
|
||||
Signed-off-by: Roland Stigge <stigge@antcom.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/mach-lpc32xx/irq.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
|
||||
index 965b1d6..198de47 100644
|
||||
--- a/arch/arm/mach-lpc32xx/irq.c
|
||||
+++ b/arch/arm/mach-lpc32xx/irq.c
|
||||
@@ -389,13 +389,15 @@ void __init lpc32xx_init_irq(void)
|
||||
|
||||
/* Setup SIC1 */
|
||||
__raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC1_BASE));
|
||||
- __raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE));
|
||||
- __raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE));
|
||||
+ __raw_writel(SIC1_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE));
|
||||
+ __raw_writel(SIC1_ATR_DEFAULT,
|
||||
+ LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE));
|
||||
|
||||
/* Setup SIC2 */
|
||||
__raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC2_BASE));
|
||||
- __raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE));
|
||||
- __raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE));
|
||||
+ __raw_writel(SIC2_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE));
|
||||
+ __raw_writel(SIC2_ATR_DEFAULT,
|
||||
+ LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE));
|
||||
|
||||
/* Configure supported IRQ's */
|
||||
for (i = 0; i < NR_IRQS; i++) {
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
From 8a0acecb08f9fdf2a8ddae720a7e7ce51c7d46c3 Mon Sep 17 00:00:00 2001
|
||||
From: Roland Stigge <stigge@antcom.de>
|
||||
Date: Mon, 27 Feb 2012 17:28:02 +0100
|
||||
Subject: [PATCH 09/95] ARM: LPC32xx: Fix irq on GPI_28
|
||||
|
||||
commit f6737055c1c432a9628a9a731f9881ad8e0a9eee upstream.
|
||||
|
||||
The GPI_28 IRQ was not registered properly. The registration of
|
||||
IRQ_LPC32XX_GPI_28 was added and the (wrong) IRQ_LPC32XX_GPI_11 at
|
||||
LPC32XX_SIC1_IRQ(4) was replaced by IRQ_LPC32XX_GPI_28 (see manual of
|
||||
LPC32xx / interrupt controller).
|
||||
|
||||
Signed-off-by: Roland Stigge <stigge@antcom.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/mach-lpc32xx/include/mach/irqs.h | 2 +-
|
||||
arch/arm/mach-lpc32xx/irq.c | 4 ++++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-lpc32xx/include/mach/irqs.h b/arch/arm/mach-lpc32xx/include/mach/irqs.h
|
||||
index 2667f52..9e3b90d 100644
|
||||
--- a/arch/arm/mach-lpc32xx/include/mach/irqs.h
|
||||
+++ b/arch/arm/mach-lpc32xx/include/mach/irqs.h
|
||||
@@ -61,7 +61,7 @@
|
||||
*/
|
||||
#define IRQ_LPC32XX_JTAG_COMM_TX LPC32XX_SIC1_IRQ(1)
|
||||
#define IRQ_LPC32XX_JTAG_COMM_RX LPC32XX_SIC1_IRQ(2)
|
||||
-#define IRQ_LPC32XX_GPI_11 LPC32XX_SIC1_IRQ(4)
|
||||
+#define IRQ_LPC32XX_GPI_28 LPC32XX_SIC1_IRQ(4)
|
||||
#define IRQ_LPC32XX_TS_P LPC32XX_SIC1_IRQ(6)
|
||||
#define IRQ_LPC32XX_TS_IRQ LPC32XX_SIC1_IRQ(7)
|
||||
#define IRQ_LPC32XX_TS_AUX LPC32XX_SIC1_IRQ(8)
|
||||
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
|
||||
index 198de47..c74de01 100644
|
||||
--- a/arch/arm/mach-lpc32xx/irq.c
|
||||
+++ b/arch/arm/mach-lpc32xx/irq.c
|
||||
@@ -118,6 +118,10 @@ static const struct lpc32xx_event_info lpc32xx_events[NR_IRQS] = {
|
||||
.event_group = &lpc32xx_event_pin_regs,
|
||||
.mask = LPC32XX_CLKPWR_EXTSRC_GPI_06_BIT,
|
||||
},
|
||||
+ [IRQ_LPC32XX_GPI_28] = {
|
||||
+ .event_group = &lpc32xx_event_pin_regs,
|
||||
+ .mask = LPC32XX_CLKPWR_EXTSRC_GPI_28_BIT,
|
||||
+ },
|
||||
[IRQ_LPC32XX_GPIO_00] = {
|
||||
.event_group = &lpc32xx_event_int_regs,
|
||||
.mask = LPC32XX_CLKPWR_INTSRC_GPIO_00_BIT,
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
From f6e694464bffbea7a0dc2168c073bd7e7f4d9684 Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Uvarov <maxim.uvarov@oracle.com>
|
||||
Date: Sun, 15 Jan 2012 20:02:50 -0800
|
||||
Subject: [PATCH 10/95] watchdog: hpwdt: clean up set_memory_x call for 32 bit
|
||||
|
||||
commit 97d2a10d5804d585ab0b58efbd710948401b886a upstream.
|
||||
|
||||
1. address has to be page aligned.
|
||||
2. set_memory_x uses page size argument, not size.
|
||||
Bug causes with following commit:
|
||||
commit da28179b4e90dda56912ee825c7eaa62fc103797
|
||||
Author: Mingarelli, Thomas <Thomas.Mingarelli@hp.com>
|
||||
Date: Mon Nov 7 10:59:00 2011 +0100
|
||||
|
||||
watchdog: hpwdt: Changes to handle NX secure bit in 32bit path
|
||||
|
||||
commit e67d668e147c3b4fec638c9e0ace04319f5ceccd upstream.
|
||||
|
||||
This patch makes use of the set_memory_x() kernel API in order
|
||||
to make necessary BIOS calls to source NMIs.
|
||||
|
||||
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
|
||||
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/watchdog/hpwdt.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
|
||||
index 8464ea1..3c166d3 100644
|
||||
--- a/drivers/watchdog/hpwdt.c
|
||||
+++ b/drivers/watchdog/hpwdt.c
|
||||
@@ -231,7 +231,7 @@ static int __devinit cru_detect(unsigned long map_entry,
|
||||
|
||||
cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE;
|
||||
|
||||
- set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE));
|
||||
+ set_memory_x((unsigned long)bios32_map, 2);
|
||||
asminline_call(&cmn_regs, bios32_entrypoint);
|
||||
|
||||
if (cmn_regs.u1.ral != 0) {
|
||||
@@ -250,7 +250,8 @@ static int __devinit cru_detect(unsigned long map_entry,
|
||||
cru_rom_addr =
|
||||
ioremap(cru_physical_address, cru_length);
|
||||
if (cru_rom_addr) {
|
||||
- set_memory_x((unsigned long)cru_rom_addr, cru_length);
|
||||
+ set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK,
|
||||
+ (cru_length + PAGE_SIZE - 1) >> PAGE_SHIFT);
|
||||
retval = 0;
|
||||
}
|
||||
}
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
From f29a708fc403852d97151e2ce7d0332bd3dfc2d7 Mon Sep 17 00:00:00 2001
|
||||
From: Wolfram Sang <w.sang@pengutronix.de>
|
||||
Date: Fri, 13 Jan 2012 12:14:26 +0100
|
||||
Subject: [PATCH 11/95] i2c: mxs: only flag completion when queue is
|
||||
completely done
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
commit 844990daa2e69a4258049ba9c2bae1180657dac3 upstream.
|
||||
|
||||
The hardware generates an interrupt for every completed command in the
|
||||
queue while the code assumed that it will only generate one interrupt
|
||||
when the queue is empty. So, explicitly check if the queue is really
|
||||
empty. This patch fixed problems which occurred due to high traffic on
|
||||
the bus. While we are here, move the completion-initialization after the
|
||||
parameter error checking.
|
||||
|
||||
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
|
||||
Cc: Shawn Guo <shawn.guo@linaro.org>
|
||||
Cc: Marek Vasut <marek.vasut@gmail.com>
|
||||
Cc: Lothar Waßmann <LW@KARO-electronics.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/i2c/busses/i2c-mxs.c | 13 ++++++++++---
|
||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
|
||||
index 7e78f7c..3d471d5 100644
|
||||
--- a/drivers/i2c/busses/i2c-mxs.c
|
||||
+++ b/drivers/i2c/busses/i2c-mxs.c
|
||||
@@ -72,6 +72,7 @@
|
||||
|
||||
#define MXS_I2C_QUEUESTAT (0x70)
|
||||
#define MXS_I2C_QUEUESTAT_RD_QUEUE_EMPTY 0x00002000
|
||||
+#define MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK 0x0000001F
|
||||
|
||||
#define MXS_I2C_QUEUECMD (0x80)
|
||||
|
||||
@@ -219,14 +220,14 @@ static int mxs_i2c_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg,
|
||||
int ret;
|
||||
int flags;
|
||||
|
||||
- init_completion(&i2c->cmd_complete);
|
||||
-
|
||||
dev_dbg(i2c->dev, "addr: 0x%04x, len: %d, flags: 0x%x, stop: %d\n",
|
||||
msg->addr, msg->len, msg->flags, stop);
|
||||
|
||||
if (msg->len == 0)
|
||||
return -EINVAL;
|
||||
|
||||
+ init_completion(&i2c->cmd_complete);
|
||||
+
|
||||
flags = stop ? MXS_I2C_CTRL0_POST_SEND_STOP : 0;
|
||||
|
||||
if (msg->flags & I2C_M_RD)
|
||||
@@ -286,6 +287,7 @@ static irqreturn_t mxs_i2c_isr(int this_irq, void *dev_id)
|
||||
{
|
||||
struct mxs_i2c_dev *i2c = dev_id;
|
||||
u32 stat = readl(i2c->regs + MXS_I2C_CTRL1) & MXS_I2C_IRQ_MASK;
|
||||
+ bool is_last_cmd;
|
||||
|
||||
if (!stat)
|
||||
return IRQ_NONE;
|
||||
@@ -300,9 +302,14 @@ static irqreturn_t mxs_i2c_isr(int this_irq, void *dev_id)
|
||||
else
|
||||
i2c->cmd_err = 0;
|
||||
|
||||
- complete(&i2c->cmd_complete);
|
||||
+ is_last_cmd = (readl(i2c->regs + MXS_I2C_QUEUESTAT) &
|
||||
+ MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK) == 0;
|
||||
+
|
||||
+ if (is_last_cmd || i2c->cmd_err)
|
||||
+ complete(&i2c->cmd_complete);
|
||||
|
||||
writel(stat, i2c->regs + MXS_I2C_CTRL1_CLR);
|
||||
+
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
From 73b51991611912eb820ad2e40d49659ccf4ea5fe Mon Sep 17 00:00:00 2001
|
||||
From: "Jett.Zhou" <jtzhou@marvell.com>
|
||||
Date: Thu, 23 Feb 2012 19:52:08 +0800
|
||||
Subject: [PATCH 12/95] regulator: fix the ldo configure according to 88pm860x
|
||||
spec
|
||||
|
||||
commit 3380643b0eaa7ecf99c4f095bdfcb6e5df471616 upstream.
|
||||
|
||||
Signed-off-by: Jett.Zhou <jtzhou@marvell.com>
|
||||
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/regulator/88pm8607.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/regulator/88pm8607.c b/drivers/regulator/88pm8607.c
|
||||
index ca0d608..1cead1d 100644
|
||||
--- a/drivers/regulator/88pm8607.c
|
||||
+++ b/drivers/regulator/88pm8607.c
|
||||
@@ -196,7 +196,7 @@ static const unsigned int LDO12_suspend_table[] = {
|
||||
};
|
||||
|
||||
static const unsigned int LDO13_table[] = {
|
||||
- 1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0, 0,
|
||||
+ 1200000, 1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0,
|
||||
};
|
||||
|
||||
static const unsigned int LDO13_suspend_table[] = {
|
||||
@@ -389,10 +389,10 @@ static struct pm8607_regulator_info pm8607_regulator_info[] = {
|
||||
PM8607_LDO( 7, LDO7, 0, 3, SUPPLIES_EN12, 1),
|
||||
PM8607_LDO( 8, LDO8, 0, 3, SUPPLIES_EN12, 2),
|
||||
PM8607_LDO( 9, LDO9, 0, 3, SUPPLIES_EN12, 3),
|
||||
- PM8607_LDO(10, LDO10, 0, 3, SUPPLIES_EN12, 4),
|
||||
+ PM8607_LDO(10, LDO10, 0, 4, SUPPLIES_EN12, 4),
|
||||
PM8607_LDO(12, LDO12, 0, 4, SUPPLIES_EN12, 5),
|
||||
PM8607_LDO(13, VIBRATOR_SET, 1, 3, VIBRATOR_SET, 0),
|
||||
- PM8607_LDO(14, LDO14, 0, 4, SUPPLIES_EN12, 6),
|
||||
+ PM8607_LDO(14, LDO14, 0, 3, SUPPLIES_EN12, 6),
|
||||
};
|
||||
|
||||
static int __devinit pm8607_regulator_probe(struct platform_device *pdev)
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
From 07f3a430403e03b2f25578009e4bc69470101d74 Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Fri, 24 Feb 2012 18:01:27 +0100
|
||||
Subject: [PATCH 13/95] S390: KEYS: Enable the compat keyctl wrapper on s390x
|
||||
|
||||
commit 1d057720609ed052a6371fe1d53300e5e6328e94 upstream.
|
||||
|
||||
Enable the compat keyctl wrapper on s390x so that 32-bit s390 userspace can
|
||||
call the keyctl() syscall.
|
||||
|
||||
There's an s390x assembly wrapper that truncates all the register values to
|
||||
32-bits and this then calls compat_sys_keyctl() - but the latter only exists if
|
||||
CONFIG_KEYS_COMPAT is enabled, and the s390 Kconfig doesn't enable it.
|
||||
|
||||
Without this patch, 32-bit calls to the keyctl() syscall are given an ENOSYS
|
||||
error:
|
||||
|
||||
[root@devel4 ~]# keyctl show
|
||||
Session Keyring
|
||||
-3: key inaccessible (Function not implemented)
|
||||
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
Acked-by: dan@danny.cz
|
||||
Cc: Carsten Otte <cotte@de.ibm.com>
|
||||
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
Cc: linux-s390@vger.kernel.org
|
||||
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/s390/Kconfig | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
|
||||
index 373679b..f929db9 100644
|
||||
--- a/arch/s390/Kconfig
|
||||
+++ b/arch/s390/Kconfig
|
||||
@@ -230,6 +230,9 @@ config COMPAT
|
||||
config SYSVIPC_COMPAT
|
||||
def_bool y if COMPAT && SYSVIPC
|
||||
|
||||
+config KEYS_COMPAT
|
||||
+ def_bool y if COMPAT && KEYS
|
||||
+
|
||||
config AUDIT_ARCH
|
||||
def_bool y
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
From cdc630df410e8ee7d102f495e5f2bf628d450828 Mon Sep 17 00:00:00 2001
|
||||
From: Joerg Roedel <joerg.roedel@amd.com>
|
||||
Date: Wed, 29 Feb 2012 14:57:32 +0100
|
||||
Subject: [PATCH 14/95] perf/x86/kvm: Fix Host-Only/Guest-Only counting with
|
||||
SVM disabled
|
||||
|
||||
commit 1018faa6cf23b256bf25919ef203cd7c129f06f2 upstream.
|
||||
|
||||
It turned out that a performance counter on AMD does not
|
||||
count at all when the GO or HO bit is set in the control
|
||||
register and SVM is disabled in EFER.
|
||||
|
||||
This patch works around this issue by masking out the HO bit
|
||||
in the performance counter control register when SVM is not
|
||||
enabled.
|
||||
|
||||
The GO bit is not touched because it is only set when the
|
||||
user wants to count in guest-mode only. So when SVM is
|
||||
disabled the counter should not run at all and the
|
||||
not-counting is the intended behaviour.
|
||||
|
||||
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
|
||||
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
|
||||
Cc: Avi Kivity <avi@redhat.com>
|
||||
Cc: Stephane Eranian <eranian@google.com>
|
||||
Cc: David Ahern <dsahern@gmail.com>
|
||||
Cc: Gleb Natapov <gleb@redhat.com>
|
||||
Cc: Robert Richter <robert.richter@amd.com>
|
||||
Link: http://lkml.kernel.org/r/1330523852-19566-1-git-send-email-joerg.roedel@amd.com
|
||||
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/x86/include/asm/perf_event.h | 8 ++++++++
|
||||
arch/x86/kernel/cpu/perf_event.h | 8 ++++++--
|
||||
arch/x86/kernel/cpu/perf_event_amd.c | 37 ++++++++++++++++++++++++++++++++--
|
||||
arch/x86/kvm/svm.c | 5 +++++
|
||||
4 files changed, 54 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h
|
||||
index f61c62f..50d7ff2 100644
|
||||
--- a/arch/x86/include/asm/perf_event.h
|
||||
+++ b/arch/x86/include/asm/perf_event.h
|
||||
@@ -212,4 +212,12 @@ static inline perf_guest_switch_msr *perf_guest_get_msrs(int *nr)
|
||||
static inline void perf_events_lapic_init(void) { }
|
||||
#endif
|
||||
|
||||
+#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_AMD)
|
||||
+ extern void amd_pmu_enable_virt(void);
|
||||
+ extern void amd_pmu_disable_virt(void);
|
||||
+#else
|
||||
+ static inline void amd_pmu_enable_virt(void) { }
|
||||
+ static inline void amd_pmu_disable_virt(void) { }
|
||||
+#endif
|
||||
+
|
||||
#endif /* _ASM_X86_PERF_EVENT_H */
|
||||
diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h
|
||||
index b9698d4..02e0295 100644
|
||||
--- a/arch/x86/kernel/cpu/perf_event.h
|
||||
+++ b/arch/x86/kernel/cpu/perf_event.h
|
||||
@@ -146,7 +146,9 @@ struct cpu_hw_events {
|
||||
/*
|
||||
* AMD specific bits
|
||||
*/
|
||||
- struct amd_nb *amd_nb;
|
||||
+ struct amd_nb *amd_nb;
|
||||
+ /* Inverted mask of bits to clear in the perf_ctr ctrl registers */
|
||||
+ u64 perf_ctr_virt_mask;
|
||||
|
||||
void *kfree_on_online;
|
||||
};
|
||||
@@ -372,9 +374,11 @@ void x86_pmu_disable_all(void);
|
||||
static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc,
|
||||
u64 enable_mask)
|
||||
{
|
||||
+ u64 disable_mask = __this_cpu_read(cpu_hw_events.perf_ctr_virt_mask);
|
||||
+
|
||||
if (hwc->extra_reg.reg)
|
||||
wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config);
|
||||
- wrmsrl(hwc->config_base, hwc->config | enable_mask);
|
||||
+ wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask);
|
||||
}
|
||||
|
||||
void x86_pmu_enable_all(int added);
|
||||
diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
|
||||
index aeefd45..f64a039 100644
|
||||
--- a/arch/x86/kernel/cpu/perf_event_amd.c
|
||||
+++ b/arch/x86/kernel/cpu/perf_event_amd.c
|
||||
@@ -1,4 +1,5 @@
|
||||
#include <linux/perf_event.h>
|
||||
+#include <linux/export.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
@@ -357,7 +358,9 @@ static void amd_pmu_cpu_starting(int cpu)
|
||||
struct amd_nb *nb;
|
||||
int i, nb_id;
|
||||
|
||||
- if (boot_cpu_data.x86_max_cores < 2)
|
||||
+ cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY;
|
||||
+
|
||||
+ if (boot_cpu_data.x86_max_cores < 2 || boot_cpu_data.x86 == 0x15)
|
||||
return;
|
||||
|
||||
nb_id = amd_get_nb_id(cpu);
|
||||
@@ -587,9 +590,9 @@ static __initconst const struct x86_pmu amd_pmu_f15h = {
|
||||
.put_event_constraints = amd_put_event_constraints,
|
||||
|
||||
.cpu_prepare = amd_pmu_cpu_prepare,
|
||||
- .cpu_starting = amd_pmu_cpu_starting,
|
||||
.cpu_dead = amd_pmu_cpu_dead,
|
||||
#endif
|
||||
+ .cpu_starting = amd_pmu_cpu_starting,
|
||||
};
|
||||
|
||||
__init int amd_pmu_init(void)
|
||||
@@ -621,3 +624,33 @@ __init int amd_pmu_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+void amd_pmu_enable_virt(void)
|
||||
+{
|
||||
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
|
||||
+
|
||||
+ cpuc->perf_ctr_virt_mask = 0;
|
||||
+
|
||||
+ /* Reload all events */
|
||||
+ x86_pmu_disable_all();
|
||||
+ x86_pmu_enable_all(0);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(amd_pmu_enable_virt);
|
||||
+
|
||||
+void amd_pmu_disable_virt(void)
|
||||
+{
|
||||
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
|
||||
+
|
||||
+ /*
|
||||
+ * We only mask out the Host-only bit so that host-only counting works
|
||||
+ * when SVM is disabled. If someone sets up a guest-only counter when
|
||||
+ * SVM is disabled the Guest-only bits still gets set and the counter
|
||||
+ * will not count anything.
|
||||
+ */
|
||||
+ cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY;
|
||||
+
|
||||
+ /* Reload all events */
|
||||
+ x86_pmu_disable_all();
|
||||
+ x86_pmu_enable_all(0);
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(amd_pmu_disable_virt);
|
||||
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
|
||||
index e32243e..94a4672 100644
|
||||
--- a/arch/x86/kvm/svm.c
|
||||
+++ b/arch/x86/kvm/svm.c
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <linux/ftrace_event.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
+#include <asm/perf_event.h>
|
||||
#include <asm/tlbflush.h>
|
||||
#include <asm/desc.h>
|
||||
#include <asm/kvm_para.h>
|
||||
@@ -575,6 +576,8 @@ static void svm_hardware_disable(void *garbage)
|
||||
wrmsrl(MSR_AMD64_TSC_RATIO, TSC_RATIO_DEFAULT);
|
||||
|
||||
cpu_svm_disable();
|
||||
+
|
||||
+ amd_pmu_disable_virt();
|
||||
}
|
||||
|
||||
static int svm_hardware_enable(void *garbage)
|
||||
@@ -622,6 +625,8 @@ static int svm_hardware_enable(void *garbage)
|
||||
|
||||
svm_init_erratum_383();
|
||||
|
||||
+ amd_pmu_enable_virt();
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From b69e09a8ee7effdd60a09a38ae8a28c45f000f48 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Sat, 25 Feb 2012 11:13:16 +0100
|
||||
Subject: [PATCH 15/95] ALSA: hda/realtek - Fix resume of multiple input
|
||||
sources
|
||||
|
||||
commit 068b939431486f524438330b0848a8222e33d421 upstream.
|
||||
|
||||
When there are multiple input sources, the driver wrongly overwrites with
|
||||
the value of the last input source on other slots at resume. Thus the
|
||||
primary input source may be shown wrongly.
|
||||
|
||||
Reported-and-tested-by: Julian Sikorski <belegdol@gmail.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
sound/pci/hda/patch_realtek.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||||
index c4c8d78..3d8fbf4 100644
|
||||
--- a/sound/pci/hda/patch_realtek.c
|
||||
+++ b/sound/pci/hda/patch_realtek.c
|
||||
@@ -3695,7 +3695,7 @@ static void alc_auto_init_input_src(struct hda_codec *codec)
|
||||
else
|
||||
nums = spec->num_adc_nids;
|
||||
for (c = 0; c < nums; c++)
|
||||
- alc_mux_select(codec, 0, spec->cur_mux[c], true);
|
||||
+ alc_mux_select(codec, c, spec->cur_mux[c], true);
|
||||
}
|
||||
|
||||
/* add mic boosts if needed */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
From 889d0ed385a0bbda6f59b820b95e8c8e2af73b99 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Mon, 27 Feb 2012 15:00:58 +0100
|
||||
Subject: [PATCH 16/95] ALSA: hda - Add a fake mute feature
|
||||
|
||||
commit 3868137ea41866773e75d9ac4b9988dcc361ff1d upstream.
|
||||
|
||||
Some codecs don't supply the mute amp-capabilities although the lowest
|
||||
volume gives the mute. It'd be handy if the parser provides the mute
|
||||
mixers in such a case.
|
||||
|
||||
This patch adds an extension amp-cap bit (which is used only in the
|
||||
driver) to represent the min volume = mute state. Also modified the
|
||||
amp cache code to support the fake mute feature when this bit is set
|
||||
but the real mute bit is unset.
|
||||
|
||||
In addition, conexant cx5051 parser uses this new feature to implement
|
||||
the missing mute controls.
|
||||
|
||||
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42825
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
sound/pci/hda/hda_codec.c | 8 ++++++--
|
||||
sound/pci/hda/hda_codec.h | 3 +++
|
||||
sound/pci/hda/patch_conexant.c | 22 +++++++++++++++++++++-
|
||||
3 files changed, 30 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
|
||||
index 05c8768..f3be54e 100644
|
||||
--- a/sound/pci/hda/hda_codec.c
|
||||
+++ b/sound/pci/hda/hda_codec.c
|
||||
@@ -1795,7 +1795,11 @@ static void put_vol_mute(struct hda_codec *codec, struct hda_amp_info *info,
|
||||
parm = ch ? AC_AMP_SET_RIGHT : AC_AMP_SET_LEFT;
|
||||
parm |= direction == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT;
|
||||
parm |= index << AC_AMP_SET_INDEX_SHIFT;
|
||||
- parm |= val;
|
||||
+ if ((val & HDA_AMP_MUTE) && !(info->amp_caps & AC_AMPCAP_MUTE) &&
|
||||
+ (info->amp_caps & AC_AMPCAP_MIN_MUTE))
|
||||
+ ; /* set the zero value as a fake mute */
|
||||
+ else
|
||||
+ parm |= val;
|
||||
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, parm);
|
||||
info->vol[ch] = val;
|
||||
}
|
||||
@@ -2062,7 +2066,7 @@ int snd_hda_mixer_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag,
|
||||
val1 = -((caps & AC_AMPCAP_OFFSET) >> AC_AMPCAP_OFFSET_SHIFT);
|
||||
val1 += ofs;
|
||||
val1 = ((int)val1) * ((int)val2);
|
||||
- if (min_mute)
|
||||
+ if (min_mute || (caps & AC_AMPCAP_MIN_MUTE))
|
||||
val2 |= TLV_DB_SCALE_MUTE;
|
||||
if (put_user(SNDRV_CTL_TLVT_DB_SCALE, _tlv))
|
||||
return -EFAULT;
|
||||
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
|
||||
index 5644711..71f6744 100644
|
||||
--- a/sound/pci/hda/hda_codec.h
|
||||
+++ b/sound/pci/hda/hda_codec.h
|
||||
@@ -298,6 +298,9 @@ enum {
|
||||
#define AC_AMPCAP_MUTE (1<<31) /* mute capable */
|
||||
#define AC_AMPCAP_MUTE_SHIFT 31
|
||||
|
||||
+/* driver-specific amp-caps: using bits 24-30 */
|
||||
+#define AC_AMPCAP_MIN_MUTE (1 << 30) /* min-volume = mute */
|
||||
+
|
||||
/* Connection list */
|
||||
#define AC_CLIST_LENGTH (0x7f<<0)
|
||||
#define AC_CLIST_LONG (1<<7)
|
||||
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
|
||||
index 08bad5b..ae94929 100644
|
||||
--- a/sound/pci/hda/patch_conexant.c
|
||||
+++ b/sound/pci/hda/patch_conexant.c
|
||||
@@ -4132,7 +4132,8 @@ static int cx_auto_add_volume_idx(struct hda_codec *codec, const char *basename,
|
||||
err = snd_hda_ctl_add(codec, nid, kctl);
|
||||
if (err < 0)
|
||||
return err;
|
||||
- if (!(query_amp_caps(codec, nid, hda_dir) & AC_AMPCAP_MUTE))
|
||||
+ if (!(query_amp_caps(codec, nid, hda_dir) &
|
||||
+ (AC_AMPCAP_MUTE | AC_AMPCAP_MIN_MUTE)))
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
@@ -4425,6 +4426,22 @@ static const struct snd_pci_quirk cxt_fixups[] = {
|
||||
{}
|
||||
};
|
||||
|
||||
+/* add "fake" mute amp-caps to DACs on cx5051 so that mixer mute switches
|
||||
+ * can be created (bko#42825)
|
||||
+ */
|
||||
+static void add_cx5051_fake_mutes(struct hda_codec *codec)
|
||||
+{
|
||||
+ static hda_nid_t out_nids[] = {
|
||||
+ 0x10, 0x11, 0
|
||||
+ };
|
||||
+ hda_nid_t *p;
|
||||
+
|
||||
+ for (p = out_nids; *p; p++)
|
||||
+ snd_hda_override_amp_caps(codec, *p, HDA_OUTPUT,
|
||||
+ AC_AMPCAP_MIN_MUTE |
|
||||
+ query_amp_caps(codec, *p, HDA_OUTPUT));
|
||||
+}
|
||||
+
|
||||
static int patch_conexant_auto(struct hda_codec *codec)
|
||||
{
|
||||
struct conexant_spec *spec;
|
||||
@@ -4443,6 +4460,9 @@ static int patch_conexant_auto(struct hda_codec *codec)
|
||||
case 0x14f15045:
|
||||
spec->single_adc_amp = 1;
|
||||
break;
|
||||
+ case 0x14f15051:
|
||||
+ add_cx5051_fake_mutes(codec);
|
||||
+ break;
|
||||
}
|
||||
|
||||
apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl);
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
From 29cf3a2151eda817f5da561d12614da38df8ebfa Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed, 29 Feb 2012 09:41:17 +0100
|
||||
Subject: [PATCH 17/95] ALSA: hda - Always set HP pin in unsol handler for
|
||||
STAC/IDT codecs
|
||||
|
||||
commit 7bff172a352a2fbe9856bba517d71a2072aab041 upstream.
|
||||
|
||||
A bug report with an old Sony laptop showed that we can't rely on BIOS
|
||||
setting the pins of headphones but the driver should set always by
|
||||
itself.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
sound/pci/hda/patch_sigmatel.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
|
||||
index ccdac27..ed67698 100644
|
||||
--- a/sound/pci/hda/patch_sigmatel.c
|
||||
+++ b/sound/pci/hda/patch_sigmatel.c
|
||||
@@ -4719,7 +4719,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec)
|
||||
unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN;
|
||||
if (no_hp_sensing(spec, i))
|
||||
continue;
|
||||
- if (presence)
|
||||
+ if (1 /*presence*/)
|
||||
stac92xx_set_pinctl(codec, cfg->hp_pins[i], val);
|
||||
#if 0 /* FIXME */
|
||||
/* Resetting the pinctl like below may lead to (a sort of) regressions
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
From fd443a97228dddfa19680097bdbc8a1997ee6774 Mon Sep 17 00:00:00 2001
|
||||
From: "H. Peter Anvin" <hpa@zytor.com>
|
||||
Date: Fri, 2 Mar 2012 10:43:48 -0800
|
||||
Subject: [PATCH 18/95] regset: Prevent null pointer reference on readonly
|
||||
regsets
|
||||
|
||||
commit c8e252586f8d5de906385d8cf6385fee289a825e upstream.
|
||||
|
||||
The regset common infrastructure assumed that regsets would always
|
||||
have .get and .set methods, but not necessarily .active methods.
|
||||
Unfortunately people have since written regsets without .set methods.
|
||||
|
||||
Rather than putting in stub functions everywhere, handle regsets with
|
||||
null .get or .set methods explicitly.
|
||||
|
||||
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
||||
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
|
||||
Acked-by: Roland McGrath <roland@hack.frob.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
fs/binfmt_elf.c | 2 +-
|
||||
include/linux/regset.h | 6 ++++++
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
|
||||
index 21ac5ee..6ff96c6 100644
|
||||
--- a/fs/binfmt_elf.c
|
||||
+++ b/fs/binfmt_elf.c
|
||||
@@ -1421,7 +1421,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
|
||||
for (i = 1; i < view->n; ++i) {
|
||||
const struct user_regset *regset = &view->regsets[i];
|
||||
do_thread_regset_writeback(t->task, regset);
|
||||
- if (regset->core_note_type &&
|
||||
+ if (regset->core_note_type && regset->get &&
|
||||
(!regset->active || regset->active(t->task, regset))) {
|
||||
int ret;
|
||||
size_t size = regset->n * regset->size;
|
||||
diff --git a/include/linux/regset.h b/include/linux/regset.h
|
||||
index 8abee65..5150fd1 100644
|
||||
--- a/include/linux/regset.h
|
||||
+++ b/include/linux/regset.h
|
||||
@@ -335,6 +335,9 @@ static inline int copy_regset_to_user(struct task_struct *target,
|
||||
{
|
||||
const struct user_regset *regset = &view->regsets[setno];
|
||||
|
||||
+ if (!regset->get)
|
||||
+ return -EOPNOTSUPP;
|
||||
+
|
||||
if (!access_ok(VERIFY_WRITE, data, size))
|
||||
return -EIO;
|
||||
|
||||
@@ -358,6 +361,9 @@ static inline int copy_regset_from_user(struct task_struct *target,
|
||||
{
|
||||
const struct user_regset *regset = &view->regsets[setno];
|
||||
|
||||
+ if (!regset->set)
|
||||
+ return -EOPNOTSUPP;
|
||||
+
|
||||
if (!access_ok(VERIFY_READ, data, size))
|
||||
return -EIO;
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
From d14a04319db794d5cb918747293a54d6d212cf00 Mon Sep 17 00:00:00 2001
|
||||
From: "H. Peter Anvin" <hpa@zytor.com>
|
||||
Date: Fri, 2 Mar 2012 10:43:49 -0800
|
||||
Subject: [PATCH 19/95] regset: Return -EFAULT, not -EIO, on host-side memory
|
||||
fault
|
||||
|
||||
commit 5189fa19a4b2b4c3bec37c3a019d446148827717 upstream.
|
||||
|
||||
There is only one error code to return for a bad user-space buffer
|
||||
pointer passed to a system call in the same address space as the
|
||||
system call is executed, and that is EFAULT. Furthermore, the
|
||||
low-level access routines, which catch most of the faults, return
|
||||
EFAULT already.
|
||||
|
||||
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
||||
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
|
||||
Acked-by: Roland McGrath <roland@hack.frob.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
include/linux/regset.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/linux/regset.h b/include/linux/regset.h
|
||||
index 5150fd1..686f373 100644
|
||||
--- a/include/linux/regset.h
|
||||
+++ b/include/linux/regset.h
|
||||
@@ -339,7 +339,7 @@ static inline int copy_regset_to_user(struct task_struct *target,
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (!access_ok(VERIFY_WRITE, data, size))
|
||||
- return -EIO;
|
||||
+ return -EFAULT;
|
||||
|
||||
return regset->get(target, regset, offset, size, NULL, data);
|
||||
}
|
||||
@@ -365,7 +365,7 @@ static inline int copy_regset_from_user(struct task_struct *target,
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (!access_ok(VERIFY_READ, data, size))
|
||||
- return -EIO;
|
||||
+ return -EFAULT;
|
||||
|
||||
return regset->set(target, regset, offset, size, NULL, data);
|
||||
}
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
From 5ce240f2b5a8d96af3e2a2b4ea5868eab16f8c3d Mon Sep 17 00:00:00 2001
|
||||
From: Jean Delvare <khali@linux-fr.org>
|
||||
Date: Sat, 18 Feb 2012 17:54:23 +0100
|
||||
Subject: [PATCH 20/95] mfd: Fix ACPI conflict check
|
||||
|
||||
commit 81b5482c32769abb6dfb979560dab2f952ba86fa upstream.
|
||||
|
||||
The code is currently always checking the first resource of every
|
||||
device only (several times.) This has been broken since the ACPI check
|
||||
was added in February 2010 in commit
|
||||
91fedede0338eb6203cdd618d8ece873fdb7c22c.
|
||||
|
||||
Fix the check to run on each resource individually, once.
|
||||
|
||||
Signed-off-by: Jean Delvare <khali@linux-fr.org>
|
||||
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/mfd/mfd-core.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
|
||||
index 0f59228..411f523 100644
|
||||
--- a/drivers/mfd/mfd-core.c
|
||||
+++ b/drivers/mfd/mfd-core.c
|
||||
@@ -123,7 +123,7 @@ static int mfd_add_device(struct device *parent, int id,
|
||||
}
|
||||
|
||||
if (!cell->ignore_resource_conflicts) {
|
||||
- ret = acpi_check_resource_conflict(res);
|
||||
+ ret = acpi_check_resource_conflict(&res[r]);
|
||||
if (ret)
|
||||
goto fail_res;
|
||||
}
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
From 9abde3392eefd90e7c58cfb9c1bd29ac2a145b2d Mon Sep 17 00:00:00 2001
|
||||
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Date: Mon, 20 Feb 2012 21:32:32 +0000
|
||||
Subject: [PATCH 21/95] mfd: Test for jack detection when deciding if wm8994
|
||||
should suspend
|
||||
|
||||
commit e7c248a049c2aac21bded0b0722caee6f0e57256 upstream.
|
||||
|
||||
The jack detection on WM1811 is often required during system suspend, add
|
||||
it as another check when deciding if we should suspend.
|
||||
|
||||
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/mfd/wm8994-core.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
|
||||
index 61894fc..9302d21 100644
|
||||
--- a/drivers/mfd/wm8994-core.c
|
||||
+++ b/drivers/mfd/wm8994-core.c
|
||||
@@ -252,6 +252,20 @@ static int wm8994_suspend(struct device *dev)
|
||||
break;
|
||||
}
|
||||
|
||||
+ switch (wm8994->type) {
|
||||
+ case WM1811:
|
||||
+ ret = wm8994_reg_read(wm8994, WM8994_ANTIPOP_2);
|
||||
+ if (ret < 0) {
|
||||
+ dev_err(dev, "Failed to read jackdet: %d\n", ret);
|
||||
+ } else if (ret & WM1811_JACKDET_MODE_MASK) {
|
||||
+ dev_dbg(dev, "CODEC still active, ignoring suspend\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
/* Disable LDO pulldowns while the device is suspended if we
|
||||
* don't know that something will be driving them. */
|
||||
if (!wm8994->ldo_ena_always_driven)
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
From 81924cb9ad2be5172d94d8ec1bf687a451f4227a Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 6 Mar 2012 23:18:54 +0100
|
||||
Subject: [PATCH 22/95] genirq: Clear action->thread_mask if IRQ_ONESHOT is
|
||||
not set
|
||||
|
||||
commit 52abb700e16a9aa4cbc03f3d7f80206cbbc80680 upstream.
|
||||
|
||||
Xommit ac5637611(genirq: Unmask oneshot irqs when thread was not woken)
|
||||
fails to unmask when a !IRQ_ONESHOT threaded handler is handled by
|
||||
handle_level_irq.
|
||||
|
||||
This happens because thread_mask is or'ed unconditionally in
|
||||
irq_wake_thread(), but for !IRQ_ONESHOT interrupts never cleared. So
|
||||
the check for !desc->thread_active fails and keeps the interrupt
|
||||
disabled.
|
||||
|
||||
Keep the thread_mask zero for !IRQ_ONESHOT interrupts.
|
||||
|
||||
Document the thread_mask magic while at it.
|
||||
|
||||
Reported-and-tested-by: Sven Joachim <svenjoac@gmx.de>
|
||||
Reported-and-tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
kernel/irq/manage.c | 44 ++++++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 38 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
|
||||
index cf2d7ae..ae95cd2 100644
|
||||
--- a/kernel/irq/manage.c
|
||||
+++ b/kernel/irq/manage.c
|
||||
@@ -985,6 +985,11 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
|
||||
|
||||
/* add new interrupt at end of irq queue */
|
||||
do {
|
||||
+ /*
|
||||
+ * Or all existing action->thread_mask bits,
|
||||
+ * so we can find the next zero bit for this
|
||||
+ * new action.
|
||||
+ */
|
||||
thread_mask |= old->thread_mask;
|
||||
old_ptr = &old->next;
|
||||
old = *old_ptr;
|
||||
@@ -993,14 +998,41 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
|
||||
}
|
||||
|
||||
/*
|
||||
- * Setup the thread mask for this irqaction. Unlikely to have
|
||||
- * 32 resp 64 irqs sharing one line, but who knows.
|
||||
+ * Setup the thread mask for this irqaction for ONESHOT. For
|
||||
+ * !ONESHOT irqs the thread mask is 0 so we can avoid a
|
||||
+ * conditional in irq_wake_thread().
|
||||
*/
|
||||
- if (new->flags & IRQF_ONESHOT && thread_mask == ~0UL) {
|
||||
- ret = -EBUSY;
|
||||
- goto out_mask;
|
||||
+ if (new->flags & IRQF_ONESHOT) {
|
||||
+ /*
|
||||
+ * Unlikely to have 32 resp 64 irqs sharing one line,
|
||||
+ * but who knows.
|
||||
+ */
|
||||
+ if (thread_mask == ~0UL) {
|
||||
+ ret = -EBUSY;
|
||||
+ goto out_mask;
|
||||
+ }
|
||||
+ /*
|
||||
+ * The thread_mask for the action is or'ed to
|
||||
+ * desc->thread_active to indicate that the
|
||||
+ * IRQF_ONESHOT thread handler has been woken, but not
|
||||
+ * yet finished. The bit is cleared when a thread
|
||||
+ * completes. When all threads of a shared interrupt
|
||||
+ * line have completed desc->threads_active becomes
|
||||
+ * zero and the interrupt line is unmasked. See
|
||||
+ * handle.c:irq_wake_thread() for further information.
|
||||
+ *
|
||||
+ * If no thread is woken by primary (hard irq context)
|
||||
+ * interrupt handlers, then desc->threads_active is
|
||||
+ * also checked for zero to unmask the irq line in the
|
||||
+ * affected hard irq flow handlers
|
||||
+ * (handle_[fasteoi|level]_irq).
|
||||
+ *
|
||||
+ * The new action gets the first zero bit of
|
||||
+ * thread_mask assigned. See the loop above which or's
|
||||
+ * all existing action->thread_mask bits.
|
||||
+ */
|
||||
+ new->thread_mask = 1 << ffz(thread_mask);
|
||||
}
|
||||
- new->thread_mask = 1 << ffz(thread_mask);
|
||||
|
||||
if (!shared) {
|
||||
init_waitqueue_head(&desc->wait_for_threads);
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From 22f75673eb447eb62c1890393fe82728d86aad06 Mon Sep 17 00:00:00 2001
|
||||
From: Gusakov Andrey <dron0gus@gmail.com>
|
||||
Date: Sat, 3 Mar 2012 07:32:36 +0900
|
||||
Subject: [PATCH 23/95] ARM: S3C24XX: DMA resume regression fix
|
||||
|
||||
commit e39d40c65dfd8390b50c03482ae9e289b8a8f351 upstream.
|
||||
|
||||
s3c2410_dma_suspend suspends channels from 0 to dma_channels.
|
||||
s3c2410_dma_resume resumes channels in reverse order. So
|
||||
pointer should be decremented instead of being incremented.
|
||||
|
||||
Signed-off-by: Gusakov Andrey <dron0gus@gmail.com>
|
||||
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
|
||||
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/arm/plat-s3c24xx/dma.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
|
||||
index 53754bc..8a90b6a 100644
|
||||
--- a/arch/arm/plat-s3c24xx/dma.c
|
||||
+++ b/arch/arm/plat-s3c24xx/dma.c
|
||||
@@ -1249,7 +1249,7 @@ static void s3c2410_dma_resume(void)
|
||||
struct s3c2410_dma_chan *cp = s3c2410_chans + dma_channels - 1;
|
||||
int channel;
|
||||
|
||||
- for (channel = dma_channels - 1; channel >= 0; cp++, channel--)
|
||||
+ for (channel = dma_channels - 1; channel >= 0; cp--, channel--)
|
||||
s3c2410_dma_resume_chan(cp);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
From c599ccd68990c0e3bacb98cf58815f9063a8792d Mon Sep 17 00:00:00 2001
|
||||
From: Scott Talbert <talbert@techie.net>
|
||||
Date: Tue, 21 Feb 2012 13:06:00 +0000
|
||||
Subject: [PATCH 24/95] Move Logitech Harmony 900 from cdc_ether to zaurus
|
||||
|
||||
commit ee932bf9acb2e2c6a309e808000f24856330e3f9 upstream.
|
||||
|
||||
In the current kernel implementation, the Logitech Harmony 900 remote
|
||||
control is matched to the cdc_ether driver through the generic
|
||||
USB_CDC_SUBCLASS_MDLM entry. However, this device appears to be of the
|
||||
pseudo-MDLM (Belcarra) type, rather than the standard one. This patch
|
||||
blacklists the Harmony 900 from the cdc_ether driver and whitelists it for
|
||||
the pseudo-MDLM driver in zaurus.
|
||||
|
||||
Signed-off-by: Scott Talbert <talbert@techie.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/net/usb/cdc_ether.c | 7 +++++++
|
||||
drivers/net/usb/zaurus.c | 7 +++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
|
||||
index 99ed6eb..4fd4144 100644
|
||||
--- a/drivers/net/usb/cdc_ether.c
|
||||
+++ b/drivers/net/usb/cdc_ether.c
|
||||
@@ -570,6 +570,13 @@ static const struct usb_device_id products [] = {
|
||||
.driver_info = 0,
|
||||
},
|
||||
|
||||
+/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */
|
||||
+{
|
||||
+ USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM,
|
||||
+ USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
|
||||
+ .driver_info = 0,
|
||||
+},
|
||||
+
|
||||
/*
|
||||
* WHITELIST!!!
|
||||
*
|
||||
diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c
|
||||
index 1a2234c..246b3bb 100644
|
||||
--- a/drivers/net/usb/zaurus.c
|
||||
+++ b/drivers/net/usb/zaurus.c
|
||||
@@ -349,6 +349,13 @@ static const struct usb_device_id products [] = {
|
||||
ZAURUS_MASTER_INTERFACE,
|
||||
.driver_info = OLYMPUS_MXL_INFO,
|
||||
},
|
||||
+
|
||||
+/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */
|
||||
+{
|
||||
+ USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM,
|
||||
+ USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
|
||||
+ .driver_info = (unsigned long) &bogus_mdlm_info,
|
||||
+},
|
||||
{ }, // END
|
||||
};
|
||||
MODULE_DEVICE_TABLE(usb, products);
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
From 516cac7f3fdceed580abef7769d3af3150515498 Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Morton <akpm@linux-foundation.org>
|
||||
Date: Mon, 5 Mar 2012 14:59:19 -0800
|
||||
Subject: [PATCH 25/95] alpha: fix 32/64-bit bug in futex support
|
||||
|
||||
commit 62aca403657fe30e5235c5331e9871e676d9ea0a upstream.
|
||||
|
||||
Michael Cree said:
|
||||
|
||||
: : I have noticed some user space problems (pulseaudio crashes in pthread
|
||||
: : code, glibc/nptl test suite failures, java compiler freezes on SMP alpha
|
||||
: : systems) that arise when using a 2.6.39 or later kernel on Alpha.
|
||||
: : Bisecting between 2.6.38 and 2.6.39 (using glibc/nptl test suite as
|
||||
: : criterion for good/bad kernel) eventually leads to:
|
||||
: :
|
||||
: : 8d7718aa082aaf30a0b4989e1f04858952f941bc is the first bad commit
|
||||
: : commit 8d7718aa082aaf30a0b4989e1f04858952f941bc
|
||||
: : Author: Michel Lespinasse <walken@google.com>
|
||||
: : Date: Thu Mar 10 18:50:58 2011 -0800
|
||||
: :
|
||||
: : futex: Sanitize futex ops argument types
|
||||
: :
|
||||
: : Change futex_atomic_op_inuser and futex_atomic_cmpxchg_inatomic
|
||||
: : prototypes to use u32 types for the futex as this is the data type the
|
||||
: : futex core code uses all over the place.
|
||||
: :
|
||||
: : Looking at the commit I see there is a change of the uaddr argument in
|
||||
: : the Alpha architecture specific code for futexes from int to u32, but I
|
||||
: : don't see why this should cause a problem.
|
||||
|
||||
Richard Henderson said:
|
||||
|
||||
: futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
|
||||
: u32 oldval, u32 newval)
|
||||
: ...
|
||||
: : "r"(uaddr), "r"((long)oldval), "r"(newval)
|
||||
:
|
||||
:
|
||||
: There is no 32-bit compare instruction. These are implemented by
|
||||
: consistently extending the values to a 64-bit type. Since the
|
||||
: load instruction sign-extends, we want to sign-extend the other
|
||||
: quantity as well (despite the fact it's logically unsigned).
|
||||
:
|
||||
: So:
|
||||
:
|
||||
: - : "r"(uaddr), "r"((long)oldval), "r"(newval)
|
||||
: + : "r"(uaddr), "r"((long)(int)oldval), "r"(newval)
|
||||
:
|
||||
: should do the trick.
|
||||
|
||||
Michael said:
|
||||
|
||||
: This fixes the glibc test suite failures and the pulseaudio related
|
||||
: crashes, but it does not fix the java compiiler lockups that I was (and
|
||||
: are still) observing. That is some other problem.
|
||||
|
||||
Reported-by: Michael Cree <mcree@orcon.net.nz>
|
||||
Tested-by: Michael Cree <mcree@orcon.net.nz>
|
||||
Acked-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
|
||||
Cc: Richard Henderson <rth@twiddle.net>
|
||||
Cc: Michel Lespinasse <walken@google.com>
|
||||
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
|
||||
Reviewed-by: Matt Turner <mattst88@gmail.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/alpha/include/asm/futex.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/alpha/include/asm/futex.h b/arch/alpha/include/asm/futex.h
|
||||
index e8a761a..f939794 100644
|
||||
--- a/arch/alpha/include/asm/futex.h
|
||||
+++ b/arch/alpha/include/asm/futex.h
|
||||
@@ -108,7 +108,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
|
||||
" lda $31,3b-2b(%0)\n"
|
||||
" .previous\n"
|
||||
: "+r"(ret), "=&r"(prev), "=&r"(cmp)
|
||||
- : "r"(uaddr), "r"((long)oldval), "r"(newval)
|
||||
+ : "r"(uaddr), "r"((long)(int)oldval), "r"(newval)
|
||||
: "memory");
|
||||
|
||||
*uval = prev;
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+88
@@ -0,0 +1,88 @@
|
||||
From 949f9646ccebddaf84ef0a76bf65cbb03d98ca90 Mon Sep 17 00:00:00 2001
|
||||
From: Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
Date: Thu, 9 Feb 2012 16:33:53 +0100
|
||||
Subject: [PATCH 26/95] mmc: atmel-mci: don't use dma features when using DMA
|
||||
with no chan available
|
||||
|
||||
commit ef8781989a1bcd05aa47e853917c37df44917194 upstream.
|
||||
|
||||
Some callbacks are set too early -- i.e. we can have dma capabilities but
|
||||
we can't get a dma channel. So wait to get the dma channel before setting
|
||||
callbacks and change logs consequently.
|
||||
|
||||
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
|
||||
Signed-off-by: Chris Ball <cjb@laptop.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/mmc/host/atmel-mci.c | 21 ++++++++++-----------
|
||||
1 file changed, 10 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
|
||||
index 72bc756..9896933 100644
|
||||
--- a/drivers/mmc/host/atmel-mci.c
|
||||
+++ b/drivers/mmc/host/atmel-mci.c
|
||||
@@ -1944,12 +1944,12 @@ static bool atmci_filter(struct dma_chan *chan, void *slave)
|
||||
}
|
||||
}
|
||||
|
||||
-static void atmci_configure_dma(struct atmel_mci *host)
|
||||
+static bool atmci_configure_dma(struct atmel_mci *host)
|
||||
{
|
||||
struct mci_platform_data *pdata;
|
||||
|
||||
if (host == NULL)
|
||||
- return;
|
||||
+ return false;
|
||||
|
||||
pdata = host->pdev->dev.platform_data;
|
||||
|
||||
@@ -1966,12 +1966,15 @@ static void atmci_configure_dma(struct atmel_mci *host)
|
||||
host->dma.chan =
|
||||
dma_request_channel(mask, atmci_filter, pdata->dma_slave);
|
||||
}
|
||||
- if (!host->dma.chan)
|
||||
- dev_notice(&host->pdev->dev, "DMA not available, using PIO\n");
|
||||
- else
|
||||
+ if (!host->dma.chan) {
|
||||
+ dev_warn(&host->pdev->dev, "no DMA channel available\n");
|
||||
+ return false;
|
||||
+ } else {
|
||||
dev_info(&host->pdev->dev,
|
||||
"Using %s for DMA transfers\n",
|
||||
dma_chan_name(host->dma.chan));
|
||||
+ return true;
|
||||
+ }
|
||||
}
|
||||
|
||||
static inline unsigned int atmci_get_version(struct atmel_mci *host)
|
||||
@@ -2081,8 +2084,7 @@ static int __init atmci_probe(struct platform_device *pdev)
|
||||
|
||||
/* Get MCI capabilities and set operations according to it */
|
||||
atmci_get_cap(host);
|
||||
- if (host->caps.has_dma) {
|
||||
- dev_info(&pdev->dev, "using DMA\n");
|
||||
+ if (host->caps.has_dma && atmci_configure_dma(host)) {
|
||||
host->prepare_data = &atmci_prepare_data_dma;
|
||||
host->submit_data = &atmci_submit_data_dma;
|
||||
host->stop_transfer = &atmci_stop_transfer_dma;
|
||||
@@ -2092,15 +2094,12 @@ static int __init atmci_probe(struct platform_device *pdev)
|
||||
host->submit_data = &atmci_submit_data_pdc;
|
||||
host->stop_transfer = &atmci_stop_transfer_pdc;
|
||||
} else {
|
||||
- dev_info(&pdev->dev, "no DMA, no PDC\n");
|
||||
+ dev_info(&pdev->dev, "using PIO\n");
|
||||
host->prepare_data = &atmci_prepare_data;
|
||||
host->submit_data = &atmci_submit_data;
|
||||
host->stop_transfer = &atmci_stop_transfer;
|
||||
}
|
||||
|
||||
- if (host->caps.has_dma)
|
||||
- atmci_configure_dma(host);
|
||||
-
|
||||
platform_set_drvdata(pdev, host);
|
||||
|
||||
/* We need at least one slot to succeed */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
From 4d0452d42bca9bc288709268ea3590e73dddfd03 Mon Sep 17 00:00:00 2001
|
||||
From: Sascha Hauer <s.hauer@pengutronix.de>
|
||||
Date: Fri, 17 Feb 2012 11:51:49 +0100
|
||||
Subject: [PATCH 27/95] mmc: sdhci-esdhc-imx: fix for mmc cards on i.MX5
|
||||
|
||||
commit 5b6b0ad6e572b32a641116aaa5f897ffebe31e44 upstream.
|
||||
|
||||
On i.MX53 we have to write a special SDHCI_CMD_ABORTCMD to the
|
||||
SDHCI_TRANSFER_MODE register during a MMC_STOP_TRANSMISSION
|
||||
command. This works for SD cards. However, with MMC cards
|
||||
the MMC_SET_BLOCK_COUNT command is used instead, but this
|
||||
needs the same handling. Fix MMC cards by testing for the
|
||||
MMC_SET_BLOCK_COUNT command aswell. Tested on a custom i.MX53
|
||||
board with a Transcend MMC+ card and eMMC.
|
||||
|
||||
The kernel started used MMC_SET_BLOCK_COUNT in 3.0, so this
|
||||
is a regression for these boards introduced in 3.0; it should
|
||||
go to 3.0/3.1/3.2-stable.
|
||||
|
||||
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
||||
Acked-by: Shawn Guo <shawn.guo@linaro.org>
|
||||
Signed-off-by: Chris Ball <cjb@laptop.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/mmc/host/sdhci-esdhc-imx.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
index 38ebc4e..4540e37 100644
|
||||
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
|
||||
@@ -269,8 +269,9 @@ static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg)
|
||||
imx_data->scratchpad = val;
|
||||
return;
|
||||
case SDHCI_COMMAND:
|
||||
- if ((host->cmd->opcode == MMC_STOP_TRANSMISSION)
|
||||
- && (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT))
|
||||
+ if ((host->cmd->opcode == MMC_STOP_TRANSMISSION ||
|
||||
+ host->cmd->opcode == MMC_SET_BLOCK_COUNT) &&
|
||||
+ (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT))
|
||||
val |= SDHCI_CMD_ABORTCMD;
|
||||
|
||||
if (is_imx6q_usdhc(imx_data)) {
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
From d5c6cec6d347a96bc73bf84d89dd1cefd9b10aeb Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Moyer <jmoyer@redhat.com>
|
||||
Date: Mon, 5 Mar 2012 14:59:12 -0800
|
||||
Subject: [PATCH 28/95] aio: wake up waiters when freeing unused kiocbs
|
||||
|
||||
commit 880641bb9da2473e9ecf6c708d993b29928c1b3c upstream.
|
||||
|
||||
Bart Van Assche reported a hung fio process when either hot-removing
|
||||
storage or when interrupting the fio process itself. The (pruned) call
|
||||
trace for the latter looks like so:
|
||||
|
||||
fio D 0000000000000001 0 6849 6848 0x00000004
|
||||
ffff880092541b88 0000000000000046 ffff880000000000 ffff88012fa11dc0
|
||||
ffff88012404be70 ffff880092541fd8 ffff880092541fd8 ffff880092541fd8
|
||||
ffff880128b894d0 ffff88012404be70 ffff880092541b88 000000018106f24d
|
||||
Call Trace:
|
||||
schedule+0x3f/0x60
|
||||
io_schedule+0x8f/0xd0
|
||||
wait_for_all_aios+0xc0/0x100
|
||||
exit_aio+0x55/0xc0
|
||||
mmput+0x2d/0x110
|
||||
exit_mm+0x10d/0x130
|
||||
do_exit+0x671/0x860
|
||||
do_group_exit+0x44/0xb0
|
||||
get_signal_to_deliver+0x218/0x5a0
|
||||
do_signal+0x65/0x700
|
||||
do_notify_resume+0x65/0x80
|
||||
int_signal+0x12/0x17
|
||||
|
||||
The problem lies with the allocation batching code. It will
|
||||
opportunistically allocate kiocbs, and then trim back the list of iocbs
|
||||
when there is not enough room in the completion ring to hold all of the
|
||||
events.
|
||||
|
||||
In the case above, what happens is that the pruning back of events ends
|
||||
up freeing up the last active request and the context is marked as dead,
|
||||
so it is thus responsible for waking up waiters. Unfortunately, the
|
||||
code does not check for this condition, so we end up with a hung task.
|
||||
|
||||
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
|
||||
Reported-by: Bart Van Assche <bvanassche@acm.org>
|
||||
Tested-by: Bart Van Assche <bvanassche@acm.org>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
fs/aio.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/fs/aio.c b/fs/aio.c
|
||||
index 969beb0..67e4b90 100644
|
||||
--- a/fs/aio.c
|
||||
+++ b/fs/aio.c
|
||||
@@ -490,6 +490,8 @@ static void kiocb_batch_free(struct kioctx *ctx, struct kiocb_batch *batch)
|
||||
kmem_cache_free(kiocb_cachep, req);
|
||||
ctx->reqs_active--;
|
||||
}
|
||||
+ if (unlikely(!ctx->reqs_active && ctx->dead))
|
||||
+ wake_up_all(&ctx->wait);
|
||||
spin_unlock_irq(&ctx->ctx_lock);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
From a6ad4d12c974035e005e6e4752c462c0f44f4167 Mon Sep 17 00:00:00 2001
|
||||
From: Anton Vorontsov <anton.vorontsov@linaro.org>
|
||||
Date: Fri, 24 Feb 2012 05:14:46 +0400
|
||||
Subject: [PATCH 29/95] mm: memcg: Correct unregistring of events attached to
|
||||
the same eventfd
|
||||
|
||||
commit 371528caec553785c37f73fa3926ea0de84f986f upstream.
|
||||
|
||||
There is an issue when memcg unregisters events that were attached to
|
||||
the same eventfd:
|
||||
|
||||
- On the first call mem_cgroup_usage_unregister_event() removes all
|
||||
events attached to a given eventfd, and if there were no events left,
|
||||
thresholds->primary would become NULL;
|
||||
|
||||
- Since there were several events registered, cgroups core will call
|
||||
mem_cgroup_usage_unregister_event() again, but now kernel will oops,
|
||||
as the function doesn't expect that threshold->primary may be NULL.
|
||||
|
||||
That's a good question whether mem_cgroup_usage_unregister_event()
|
||||
should actually remove all events in one go, but nowadays it can't
|
||||
do any better as cftype->unregister_event callback doesn't pass
|
||||
any private event-associated cookie. So, let's fix the issue by
|
||||
simply checking for threshold->primary.
|
||||
|
||||
FWIW, w/o the patch the following oops may be observed:
|
||||
|
||||
BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
|
||||
IP: [<ffffffff810be32c>] mem_cgroup_usage_unregister_event+0x9c/0x1f0
|
||||
Pid: 574, comm: kworker/0:2 Not tainted 3.3.0-rc4+ #9 Bochs Bochs
|
||||
RIP: 0010:[<ffffffff810be32c>] [<ffffffff810be32c>] mem_cgroup_usage_unregister_event+0x9c/0x1f0
|
||||
RSP: 0018:ffff88001d0b9d60 EFLAGS: 00010246
|
||||
Process kworker/0:2 (pid: 574, threadinfo ffff88001d0b8000, task ffff88001de91cc0)
|
||||
Call Trace:
|
||||
[<ffffffff8107092b>] cgroup_event_remove+0x2b/0x60
|
||||
[<ffffffff8103db94>] process_one_work+0x174/0x450
|
||||
[<ffffffff8103e413>] worker_thread+0x123/0x2d0
|
||||
|
||||
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
|
||||
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
|
||||
Cc: Kirill A. Shutemov <kirill@shutemov.name>
|
||||
Cc: Michal Hocko <mhocko@suse.cz>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
mm/memcontrol.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
|
||||
index f538e9b..de67e91 100644
|
||||
--- a/mm/memcontrol.c
|
||||
+++ b/mm/memcontrol.c
|
||||
@@ -4502,6 +4502,9 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp,
|
||||
*/
|
||||
BUG_ON(!thresholds);
|
||||
|
||||
+ if (!thresholds->primary)
|
||||
+ goto unlock;
|
||||
+
|
||||
usage = mem_cgroup_usage(memcg, type == _MEMSWAP);
|
||||
|
||||
/* Check if a threshold crossed before removing */
|
||||
@@ -4550,7 +4553,7 @@ swap_buffers:
|
||||
|
||||
/* To be sure that nobody uses thresholds */
|
||||
synchronize_rcu();
|
||||
-
|
||||
+unlock:
|
||||
mutex_unlock(&memcg->thresholds_lock);
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From 4666c2d05388b33883bef7aa13d2e355b3d0a049 Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Thu, 23 Feb 2012 13:51:00 +0000
|
||||
Subject: [PATCH 30/95] NOMMU: Don't need to clear vm_mm when deleting a VMA
|
||||
|
||||
commit b94cfaf6685d691dc3fab023cf32f65e9b7be09c upstream.
|
||||
|
||||
Don't clear vm_mm in a deleted VMA as it's unnecessary and might
|
||||
conceivably break the filesystem or driver VMA close routine.
|
||||
|
||||
Reported-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
mm/nommu.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/mm/nommu.c b/mm/nommu.c
|
||||
index ee7e57e..f59e170 100644
|
||||
--- a/mm/nommu.c
|
||||
+++ b/mm/nommu.c
|
||||
@@ -779,8 +779,6 @@ static void delete_vma_from_mm(struct vm_area_struct *vma)
|
||||
|
||||
if (vma->vm_next)
|
||||
vma->vm_next->vm_prev = vma->vm_prev;
|
||||
-
|
||||
- vma->vm_mm = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
From 2e91a5d7bf034e302d797ab8be9a28dad94f31bf Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Layton <jlayton@redhat.com>
|
||||
Date: Thu, 23 Feb 2012 09:37:45 -0500
|
||||
Subject: [PATCH 31/95] cifs: fix dentry refcount leak when opening a FIFO on
|
||||
lookup
|
||||
|
||||
commit 5bccda0ebc7c0331b81ac47d39e4b920b198b2cd upstream.
|
||||
|
||||
The cifs code will attempt to open files on lookup under certain
|
||||
circumstances. What happens though if we find that the file we opened
|
||||
was actually a FIFO or other special file?
|
||||
|
||||
Currently, the open filehandle just ends up being leaked leading to
|
||||
a dentry refcount mismatch and oops on umount. Fix this by having the
|
||||
code close the filehandle on the server if it turns out not to be a
|
||||
regular file. While we're at it, change this spaghetti if statement
|
||||
into a switch too.
|
||||
|
||||
Reported-by: CAI Qian <caiqian@redhat.com>
|
||||
Tested-by: CAI Qian <caiqian@redhat.com>
|
||||
Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
|
||||
Signed-off-by: Jeff Layton <jlayton@redhat.com>
|
||||
Signed-off-by: Steve French <smfrench@gmail.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
fs/cifs/dir.c | 20 ++++++++++++++++++--
|
||||
1 file changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
|
||||
index e4c3334..bf68b4f 100644
|
||||
--- a/fs/cifs/dir.c
|
||||
+++ b/fs/cifs/dir.c
|
||||
@@ -584,10 +584,26 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
|
||||
* If either that or op not supported returned, follow
|
||||
* the normal lookup.
|
||||
*/
|
||||
- if ((rc == 0) || (rc == -ENOENT))
|
||||
+ switch (rc) {
|
||||
+ case 0:
|
||||
+ /*
|
||||
+ * The server may allow us to open things like
|
||||
+ * FIFOs, but the client isn't set up to deal
|
||||
+ * with that. If it's not a regular file, just
|
||||
+ * close it and proceed as if it were a normal
|
||||
+ * lookup.
|
||||
+ */
|
||||
+ if (newInode && !S_ISREG(newInode->i_mode)) {
|
||||
+ CIFSSMBClose(xid, pTcon, fileHandle);
|
||||
+ break;
|
||||
+ }
|
||||
+ case -ENOENT:
|
||||
posix_open = true;
|
||||
- else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP))
|
||||
+ case -EOPNOTSUPP:
|
||||
+ break;
|
||||
+ default:
|
||||
pTcon->broken_posix_open = true;
|
||||
+ }
|
||||
}
|
||||
if (!posix_open)
|
||||
rc = cifs_get_inode_info_unix(&newInode, full_path,
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From 66fafa03312e3f626b9cc940a4caa5fc28eceb8b Mon Sep 17 00:00:00 2001
|
||||
From: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Date: Mon, 20 Feb 2012 10:05:31 +0530
|
||||
Subject: [PATCH 32/95] mac80211: zero initialize count field in
|
||||
ieee80211_tx_rate
|
||||
|
||||
commit 8617b093d0031837a7be9b32bc674580cfb5f6b5 upstream.
|
||||
|
||||
rate control algorithms concludes the rate as invalid
|
||||
with rate[i].idx < -1 , while they do also check for rate[i].count is
|
||||
non-zero. it would be safer to zero initialize the 'count' field.
|
||||
recently we had a ath9k rate control crash where the ath9k rate control
|
||||
in ath_tx_status assumed to check only for rate[i].count being non-zero
|
||||
in one instance and ended up in using invalid rate index for
|
||||
'connection monitoring NULL func frames' which eventually lead to the crash.
|
||||
thanks to Pavel Roskin for fixing it and finding the root cause.
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=768639
|
||||
|
||||
Cc: Pavel Roskin <proski@gnu.org>
|
||||
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
net/mac80211/rate.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
|
||||
index 5a5a776..7d84b87 100644
|
||||
--- a/net/mac80211/rate.c
|
||||
+++ b/net/mac80211/rate.c
|
||||
@@ -344,7 +344,7 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
|
||||
for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
|
||||
info->control.rates[i].idx = -1;
|
||||
info->control.rates[i].flags = 0;
|
||||
- info->control.rates[i].count = 1;
|
||||
+ info->control.rates[i].count = 0;
|
||||
}
|
||||
|
||||
if (sdata->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
From 984266254352cc421ea6886589e862c95ab51838 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Fietkau <nbd@openwrt.org>
|
||||
Date: Wed, 15 Feb 2012 19:31:20 +0100
|
||||
Subject: [PATCH 33/95] ath9k_hw: prevent writes to const data on AR9160
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
commit 9bbb8168ed3d8b946f9c1901a63a675012de88f2 upstream.
|
||||
|
||||
Duplicate the data for iniAddac early on, to avoid having to do redundant
|
||||
memcpy calls later. While we're at it, make AR5416 < v2.2 use the same
|
||||
codepath. Fixes a reported crash on x86.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
Reported-by: Magnus Määttä <magnus.maatta@logica.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/net/wireless/ath/ath9k/ar5008_phy.c | 25 +------------------------
|
||||
drivers/net/wireless/ath/ath9k/ar9002_hw.c | 19 +++++++++++++++++++
|
||||
drivers/net/wireless/ath/ath9k/hw.h | 1 -
|
||||
3 files changed, 20 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/ar5008_phy.c b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
index f199e9e..0a3c7c8 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
|
||||
@@ -489,8 +489,6 @@ static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah)
|
||||
ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows);
|
||||
ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows);
|
||||
ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows);
|
||||
- ATH_ALLOC_BANK(ah->addac5416_21,
|
||||
- ah->iniAddac.ia_rows * ah->iniAddac.ia_columns);
|
||||
ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows);
|
||||
|
||||
return 0;
|
||||
@@ -519,7 +517,6 @@ static void ar5008_hw_rf_free_ext_banks(struct ath_hw *ah)
|
||||
ATH_FREE_BANK(ah->analogBank6Data);
|
||||
ATH_FREE_BANK(ah->analogBank6TPCData);
|
||||
ATH_FREE_BANK(ah->analogBank7Data);
|
||||
- ATH_FREE_BANK(ah->addac5416_21);
|
||||
ATH_FREE_BANK(ah->bank6Temp);
|
||||
|
||||
#undef ATH_FREE_BANK
|
||||
@@ -805,27 +802,7 @@ static int ar5008_hw_process_ini(struct ath_hw *ah,
|
||||
if (ah->eep_ops->set_addac)
|
||||
ah->eep_ops->set_addac(ah, chan);
|
||||
|
||||
- if (AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
- REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
|
||||
- } else {
|
||||
- struct ar5416IniArray temp;
|
||||
- u32 addacSize =
|
||||
- sizeof(u32) * ah->iniAddac.ia_rows *
|
||||
- ah->iniAddac.ia_columns;
|
||||
-
|
||||
- /* For AR5416 2.0/2.1 */
|
||||
- memcpy(ah->addac5416_21,
|
||||
- ah->iniAddac.ia_array, addacSize);
|
||||
-
|
||||
- /* override CLKDRV value at [row, column] = [31, 1] */
|
||||
- (ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0;
|
||||
-
|
||||
- temp.ia_array = ah->addac5416_21;
|
||||
- temp.ia_columns = ah->iniAddac.ia_columns;
|
||||
- temp.ia_rows = ah->iniAddac.ia_rows;
|
||||
- REG_WRITE_ARRAY(&temp, 1, regWrites);
|
||||
- }
|
||||
-
|
||||
+ REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
|
||||
REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC);
|
||||
|
||||
ENABLE_REGWRITE_BUFFER(ah);
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
index 11f192a..d190411 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
|
||||
@@ -180,6 +180,25 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
|
||||
INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac,
|
||||
ARRAY_SIZE(ar5416Addac), 2);
|
||||
}
|
||||
+
|
||||
+ /* iniAddac needs to be modified for these chips */
|
||||
+ if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
+ struct ar5416IniArray *addac = &ah->iniAddac;
|
||||
+ u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns;
|
||||
+ u32 *data;
|
||||
+
|
||||
+ data = kmalloc(size, GFP_KERNEL);
|
||||
+ if (!data)
|
||||
+ return;
|
||||
+
|
||||
+ memcpy(data, addac->ia_array, size);
|
||||
+ addac->ia_array = data;
|
||||
+
|
||||
+ if (!AR_SREV_5416_22_OR_LATER(ah)) {
|
||||
+ /* override CLKDRV value */
|
||||
+ INI_RA(addac, 31,1) = 0;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Support for Japan ch.14 (2484) spread */
|
||||
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
|
||||
index f389b3c..1bd8edf 100644
|
||||
--- a/drivers/net/wireless/ath/ath9k/hw.h
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.h
|
||||
@@ -772,7 +772,6 @@ struct ath_hw {
|
||||
u32 *analogBank6Data;
|
||||
u32 *analogBank6TPCData;
|
||||
u32 *analogBank7Data;
|
||||
- u32 *addac5416_21;
|
||||
u32 *bank6Temp;
|
||||
|
||||
u8 txpower_limit;
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
From 17afeea9bb7e9be3ed3b35312fc2d792831e1ace Mon Sep 17 00:00:00 2001
|
||||
From: Prashanth Nageshappa <prashanth@linux.vnet.ibm.com>
|
||||
Date: Mon, 5 Mar 2012 14:59:12 -0800
|
||||
Subject: [PATCH 34/95] kprobes: return proper error code from
|
||||
register_kprobe()
|
||||
|
||||
commit f986a499ef6f317d906e6f6f281be966e1237a10 upstream.
|
||||
|
||||
register_kprobe() aborts if the address of the new request falls in a
|
||||
prohibited area (such as ftrace pouch, __kprobes annotated functions,
|
||||
non-kernel text addresses, jump label text). We however don't return the
|
||||
right error on this abort, resulting in a silent failure - incorrect
|
||||
adding/reporting of kprobes ('perf probe do_fork+18' or 'perf probe
|
||||
mcount' for instance).
|
||||
|
||||
In V2 we are incorporating Masami Hiramatsu's feedback.
|
||||
|
||||
This patch fixes it by returning -EINVAL upon failure.
|
||||
|
||||
While we are here, rename the label used for exit to be more appropriate.
|
||||
|
||||
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
|
||||
Signed-off-by: Prashanth K Nageshappa <prashanth@linux.vnet.ibm.com>
|
||||
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
|
||||
Cc: Jason Baron <jbaron@redhat.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
kernel/kprobes.c | 12 +++++++-----
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
|
||||
index faa39d1..bc90b87 100644
|
||||
--- a/kernel/kprobes.c
|
||||
+++ b/kernel/kprobes.c
|
||||
@@ -1334,8 +1334,10 @@ int __kprobes register_kprobe(struct kprobe *p)
|
||||
if (!kernel_text_address((unsigned long) p->addr) ||
|
||||
in_kprobes_functions((unsigned long) p->addr) ||
|
||||
ftrace_text_reserved(p->addr, p->addr) ||
|
||||
- jump_label_text_reserved(p->addr, p->addr))
|
||||
- goto fail_with_jump_label;
|
||||
+ jump_label_text_reserved(p->addr, p->addr)) {
|
||||
+ ret = -EINVAL;
|
||||
+ goto cannot_probe;
|
||||
+ }
|
||||
|
||||
/* User can pass only KPROBE_FLAG_DISABLED to register_kprobe */
|
||||
p->flags &= KPROBE_FLAG_DISABLED;
|
||||
@@ -1352,7 +1354,7 @@ int __kprobes register_kprobe(struct kprobe *p)
|
||||
* its code to prohibit unexpected unloading.
|
||||
*/
|
||||
if (unlikely(!try_module_get(probed_mod)))
|
||||
- goto fail_with_jump_label;
|
||||
+ goto cannot_probe;
|
||||
|
||||
/*
|
||||
* If the module freed .init.text, we couldn't insert
|
||||
@@ -1361,7 +1363,7 @@ int __kprobes register_kprobe(struct kprobe *p)
|
||||
if (within_module_init((unsigned long)p->addr, probed_mod) &&
|
||||
probed_mod->state != MODULE_STATE_COMING) {
|
||||
module_put(probed_mod);
|
||||
- goto fail_with_jump_label;
|
||||
+ goto cannot_probe;
|
||||
}
|
||||
/* ret will be updated by following code */
|
||||
}
|
||||
@@ -1409,7 +1411,7 @@ out:
|
||||
|
||||
return ret;
|
||||
|
||||
-fail_with_jump_label:
|
||||
+cannot_probe:
|
||||
preempt_enable();
|
||||
jump_label_unlock();
|
||||
return ret;
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
From 826878fadc80bdcaec6d80e4ec0a2761c46e2c00 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Arcangeli <aarcange@redhat.com>
|
||||
Date: Mon, 5 Mar 2012 14:59:20 -0800
|
||||
Subject: [PATCH 35/95] mm: thp: fix BUG on mm->nr_ptes
|
||||
|
||||
commit 1c641e84719429bbfe62a95ed3545ee7fe24408f upstream.
|
||||
|
||||
Dave Jones reports a few Fedora users hitting the BUG_ON(mm->nr_ptes...)
|
||||
in exit_mmap() recently.
|
||||
|
||||
Quoting Hugh's discovery and explanation of the SMP race condition:
|
||||
|
||||
"mm->nr_ptes had unusual locking: down_read mmap_sem plus
|
||||
page_table_lock when incrementing, down_write mmap_sem (or mm_users
|
||||
0) when decrementing; whereas THP is careful to increment and
|
||||
decrement it under page_table_lock.
|
||||
|
||||
Now most of those paths in THP also hold mmap_sem for read or write
|
||||
(with appropriate checks on mm_users), but two do not: when
|
||||
split_huge_page() is called by hwpoison_user_mappings(), and when
|
||||
called by add_to_swap().
|
||||
|
||||
It's conceivable that the latter case is responsible for the
|
||||
exit_mmap() BUG_ON mm->nr_ptes that has been reported on Fedora."
|
||||
|
||||
The simplest way to fix it without having to alter the locking is to make
|
||||
split_huge_page() a noop in nr_ptes terms, so by counting the preallocated
|
||||
pagetables that exists for every mapped hugepage. It was an arbitrary
|
||||
choice not to count them and either way is not wrong or right, because
|
||||
they are not used but they're still allocated.
|
||||
|
||||
Reported-by: Dave Jones <davej@redhat.com>
|
||||
Reported-by: Hugh Dickins <hughd@google.com>
|
||||
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
|
||||
Acked-by: Hugh Dickins <hughd@google.com>
|
||||
Cc: David Rientjes <rientjes@google.com>
|
||||
Cc: Josh Boyer <jwboyer@redhat.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
mm/huge_memory.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
|
||||
index 33141f5..8f005e9 100644
|
||||
--- a/mm/huge_memory.c
|
||||
+++ b/mm/huge_memory.c
|
||||
@@ -642,6 +642,7 @@ static int __do_huge_pmd_anonymous_page(struct mm_struct *mm,
|
||||
set_pmd_at(mm, haddr, pmd, entry);
|
||||
prepare_pmd_huge_pte(pgtable, mm);
|
||||
add_mm_counter(mm, MM_ANONPAGES, HPAGE_PMD_NR);
|
||||
+ mm->nr_ptes++;
|
||||
spin_unlock(&mm->page_table_lock);
|
||||
}
|
||||
|
||||
@@ -760,6 +761,7 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
|
||||
pmd = pmd_mkold(pmd_wrprotect(pmd));
|
||||
set_pmd_at(dst_mm, addr, dst_pmd, pmd);
|
||||
prepare_pmd_huge_pte(pgtable, dst_mm);
|
||||
+ dst_mm->nr_ptes++;
|
||||
|
||||
ret = 0;
|
||||
out_unlock:
|
||||
@@ -858,7 +860,6 @@ static int do_huge_pmd_wp_page_fallback(struct mm_struct *mm,
|
||||
}
|
||||
kfree(pages);
|
||||
|
||||
- mm->nr_ptes++;
|
||||
smp_wmb(); /* make pte visible before pmd */
|
||||
pmd_populate(mm, pmd, pgtable);
|
||||
page_remove_rmap(page);
|
||||
@@ -1017,6 +1018,7 @@ int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma,
|
||||
VM_BUG_ON(page_mapcount(page) < 0);
|
||||
add_mm_counter(tlb->mm, MM_ANONPAGES, -HPAGE_PMD_NR);
|
||||
VM_BUG_ON(!PageHead(page));
|
||||
+ tlb->mm->nr_ptes--;
|
||||
spin_unlock(&tlb->mm->page_table_lock);
|
||||
tlb_remove_page(tlb, page);
|
||||
pte_free(tlb->mm, pgtable);
|
||||
@@ -1356,7 +1358,6 @@ static int __split_huge_page_map(struct page *page,
|
||||
pte_unmap(pte);
|
||||
}
|
||||
|
||||
- mm->nr_ptes++;
|
||||
smp_wmb(); /* make pte visible before pmd */
|
||||
/*
|
||||
* Up to this point the pmd is present and huge and
|
||||
@@ -1969,7 +1970,6 @@ static void collapse_huge_page(struct mm_struct *mm,
|
||||
set_pmd_at(mm, address, pmd, _pmd);
|
||||
update_mmu_cache(vma, address, _pmd);
|
||||
prepare_pmd_huge_pte(pgtable, mm);
|
||||
- mm->nr_ptes--;
|
||||
spin_unlock(&mm->page_table_lock);
|
||||
|
||||
#ifndef CONFIG_NUMA
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
From 60fea88fe522a88f80a809d0f7ced80b93af58b7 Mon Sep 17 00:00:00 2001
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 17 Feb 2012 09:47:14 -0800
|
||||
Subject: [PATCH 36/95] iwlwifi: fix key removal
|
||||
|
||||
commit 5dcbf480473f6c3f06ad2426b7517038a2a18911 upstream.
|
||||
|
||||
When trying to remove a key, we always send key
|
||||
flags just setting the key type, not including
|
||||
the multicast flag and the key ID. As a result,
|
||||
whenever any key was removed, the unicast key 0
|
||||
would be removed, causing a complete connection
|
||||
loss after the second rekey (the first doesn't
|
||||
cause a key removal). Fix the key removal code
|
||||
to include the key ID and multicast flag, thus
|
||||
removing the correct key.
|
||||
|
||||
Reported-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Tested-by: Alexander Schnaidt <alex.schnaidt@googlemail.com>
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
index 4b2aa1d..5cfb3d1 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
|
||||
@@ -1211,6 +1211,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
unsigned long flags;
|
||||
struct iwl_addsta_cmd sta_cmd;
|
||||
u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta);
|
||||
+ __le16 key_flags;
|
||||
|
||||
/* if station isn't there, neither is the key */
|
||||
if (sta_id == IWL_INVALID_STATION)
|
||||
@@ -1236,7 +1237,14 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
|
||||
IWL_ERR(priv, "offset %d not used in uCode key table.\n",
|
||||
keyconf->hw_key_idx);
|
||||
|
||||
- sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID;
|
||||
+ key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
|
||||
+ key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC |
|
||||
+ STA_KEY_FLG_INVALID;
|
||||
+
|
||||
+ if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE))
|
||||
+ key_flags |= STA_KEY_MULTICAST_MSK;
|
||||
+
|
||||
+ sta_cmd.key.key_flags = key_flags;
|
||||
sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
|
||||
sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
|
||||
sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
From 40e15ade2a5ffd011659096db4413e8c40408aa3 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
Date: Mon, 20 Feb 2012 07:22:38 +1100
|
||||
Subject: [PATCH 37/95] tty/powerpc: early udbg consoles can't be modules
|
||||
|
||||
commit f21c6d4a49179f91fd70a41382382f08c780d425 upstream.
|
||||
|
||||
Fixes these build errors:
|
||||
|
||||
ERROR: ".udbg_printf" [drivers/tty/ehv_bytechan.ko] undefined!
|
||||
ERROR: ".register_early_udbg_console" [drivers/tty/ehv_bytechan.ko] undefined!
|
||||
ERROR: "udbg_putc" [drivers/tty/ehv_bytechan.ko] undefined!
|
||||
|
||||
Cc: Timur Tabi <timur@freescale.com>
|
||||
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/tty/Kconfig | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
|
||||
index b3d1741..830cd62 100644
|
||||
--- a/drivers/tty/Kconfig
|
||||
+++ b/drivers/tty/Kconfig
|
||||
@@ -365,7 +365,7 @@ config PPC_EPAPR_HV_BYTECHAN
|
||||
|
||||
config PPC_EARLY_DEBUG_EHV_BC
|
||||
bool "Early console (udbg) support for ePAPR hypervisors"
|
||||
- depends on PPC_EPAPR_HV_BYTECHAN
|
||||
+ depends on PPC_EPAPR_HV_BYTECHAN=y
|
||||
help
|
||||
Select this option to enable early console (a.k.a. "udbg") support
|
||||
via an ePAPR byte channel. You also need to choose the byte channel
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
From 0fe4a197fe13b8817fbe93fa72571bbdc6d2bcbf Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Maier <maier@linux.vnet.ibm.com>
|
||||
Date: Fri, 2 Mar 2012 17:32:58 +0100
|
||||
Subject: [PATCH 38/95] S390: qdio: fix handler function arguments for zfcp
|
||||
data router
|
||||
|
||||
commit 7b3cc67d4445995a025a4b55a7dc687b6829b4ca upstream.
|
||||
|
||||
Git commit 25f269f17316549e "[S390] qdio: EQBS retry after CCQ 96"
|
||||
introduced a regression in regard to the zfcp data router.
|
||||
Revoke the incorrect simplification of the function call arguments
|
||||
for the qdio handler to make the zfcp hardware data router working
|
||||
again.
|
||||
|
||||
This is applicable to 3.2+ kernels.
|
||||
|
||||
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
|
||||
Reviewed-by: Jan Glauber <jang@linux.vnet.ibm.com>
|
||||
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/s390/cio/qdio_main.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
|
||||
index 3ef8d07..770a740 100644
|
||||
--- a/drivers/s390/cio/qdio_main.c
|
||||
+++ b/drivers/s390/cio/qdio_main.c
|
||||
@@ -167,7 +167,7 @@ again:
|
||||
DBF_ERROR("%4x EQBS ERROR", SCH_NO(q));
|
||||
DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
|
||||
q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
|
||||
- 0, -1, -1, q->irq_ptr->int_parm);
|
||||
+ q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ again:
|
||||
DBF_ERROR("%4x SQBS ERROR", SCH_NO(q));
|
||||
DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
|
||||
q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
|
||||
- 0, -1, -1, q->irq_ptr->int_parm);
|
||||
+ q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
From 24333d235443f7969b0344417be788281c96237d Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Bounine <alexandre.bounine@idt.com>
|
||||
Date: Mon, 5 Mar 2012 14:59:21 -0800
|
||||
Subject: [PATCH 39/95] rapidio/tsi721: fix queue wrapping bug in inbound
|
||||
doorbell handler
|
||||
|
||||
commit b24823e61bfd93d0e72088e4f5245287582ed289 upstream.
|
||||
|
||||
Fix a bug that causes a kernel panic when the number of received doorbells
|
||||
is larger than number of entries in the inbound doorbell queue (current
|
||||
default value = 512).
|
||||
|
||||
Another possible indication for this bug is large number of spurious
|
||||
doorbells reported by tsi721 driver after reaching the queue size maximum.
|
||||
|
||||
Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
|
||||
Cc: Chul Kim <chul.kim@idt.com>
|
||||
Cc: Matt Porter <mporter@kernel.crashing.org>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/rapidio/devices/tsi721.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c
|
||||
index 691b1ab..30d2072 100644
|
||||
--- a/drivers/rapidio/devices/tsi721.c
|
||||
+++ b/drivers/rapidio/devices/tsi721.c
|
||||
@@ -410,13 +410,14 @@ static void tsi721_db_dpc(struct work_struct *work)
|
||||
*/
|
||||
mport = priv->mport;
|
||||
|
||||
- wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE));
|
||||
- rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE));
|
||||
+ wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE;
|
||||
+ rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE)) % IDB_QSIZE;
|
||||
|
||||
while (wr_ptr != rd_ptr) {
|
||||
idb_entry = (u64 *)(priv->idb_base +
|
||||
(TSI721_IDB_ENTRY_SIZE * rd_ptr));
|
||||
rd_ptr++;
|
||||
+ rd_ptr %= IDB_QSIZE;
|
||||
idb.msg = *idb_entry;
|
||||
*idb_entry = 0;
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
From ee3b012021766b0bc9af47e8ac0e5fd22efdfd86 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Stern <stern@rowland.harvard.edu>
|
||||
Date: Mon, 27 Feb 2012 11:23:45 -0500
|
||||
Subject: [PATCH 40/95] HID: usbhid: Add NOGET quirk for the AIREN Slim+
|
||||
keyboard
|
||||
|
||||
commit 37891abc8464637964a26ae4b61d307fef831f80 upstream.
|
||||
|
||||
This patch (as1531) adds a NOGET quirk for the Slim+ keyboard marketed
|
||||
by AIREN. This keyboard seems to have a lot of bugs; NOGET works
|
||||
around only one of them.
|
||||
|
||||
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
|
||||
Reported-by: okias <d.okias@gmail.com>
|
||||
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/hid/hid-ids.h | 3 +++
|
||||
drivers/hid/usbhid/hid-quirks.c | 1 +
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index 00cabb3..3c3daec 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -59,6 +59,9 @@
|
||||
#define USB_VENDOR_ID_AIRCABLE 0x16CA
|
||||
#define USB_DEVICE_ID_AIRCABLE1 0x1502
|
||||
|
||||
+#define USB_VENDOR_ID_AIREN 0x1a2c
|
||||
+#define USB_DEVICE_ID_AIREN_SLIMPLUS 0x0002
|
||||
+
|
||||
#define USB_VENDOR_ID_ALCOR 0x058f
|
||||
#define USB_DEVICE_ID_ALCOR_USBRS232 0x9720
|
||||
|
||||
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
|
||||
index 5028d60..1fe6b80 100644
|
||||
--- a/drivers/hid/usbhid/hid-quirks.c
|
||||
+++ b/drivers/hid/usbhid/hid-quirks.c
|
||||
@@ -53,6 +53,7 @@ static const struct hid_blacklist {
|
||||
{ USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
|
||||
{ USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
|
||||
|
||||
+ { USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },
|
||||
{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
From 8083680a77c1a483d05981bc87bd7af929d61e1c Mon Sep 17 00:00:00 2001
|
||||
From: Phil Sutter <phil.sutter@viprinet.com>
|
||||
Date: Mon, 27 Feb 2012 12:17:04 +0100
|
||||
Subject: [PATCH 41/95] crypto: mv_cesa - fix final callback not ignoring
|
||||
input data
|
||||
|
||||
commit f8f54e190ddb4ed697036b60f5e2ae6dd45b801c upstream.
|
||||
|
||||
Broken by commit 6ef84509f3d439ed2d43ea40080643efec37f54f for users
|
||||
passing a request with non-zero 'nbytes' field, like e.g. testmgr.
|
||||
|
||||
Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
|
||||
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/crypto/mv_cesa.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
|
||||
index dcd8bab..fe79635 100644
|
||||
--- a/drivers/crypto/mv_cesa.c
|
||||
+++ b/drivers/crypto/mv_cesa.c
|
||||
@@ -714,6 +714,7 @@ static int mv_hash_final(struct ahash_request *req)
|
||||
{
|
||||
struct mv_req_hash_ctx *ctx = ahash_request_ctx(req);
|
||||
|
||||
+ ahash_request_set_crypt(req, NULL, req->result, 0);
|
||||
mv_update_hash_req_ctx(ctx, 1, 0);
|
||||
return mv_handle_req(&req->base);
|
||||
}
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
From 7f3be420ce32352ea342f204edc4d3eda0822fa5 Mon Sep 17 00:00:00 2001
|
||||
From: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Date: Wed, 25 Jan 2012 21:42:58 +0200
|
||||
Subject: [PATCH 42/95] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576
|
||||
|
||||
commit 41f8ad76362e7aefe3a03949c43e23102dae6e0b upstream.
|
||||
|
||||
It used to be that minors where 8 bit. But now they
|
||||
are actually 20 bit. So the fix is simplicity itself.
|
||||
|
||||
I've tested with 300 devices and all user-mode utils
|
||||
work just fine. I have also mechanically added 10,000
|
||||
to the ida (so devices are /dev/osd10000, /dev/osd10001 ...)
|
||||
and was able to mkfs an exofs filesystem and access osds
|
||||
from user-mode.
|
||||
|
||||
All the open-osd user-mode code uses the same library
|
||||
to access devices through their symbolic names in
|
||||
/dev/osdX so I'd say it's pretty safe. (Well tested)
|
||||
|
||||
This patch is very important because some of the systems
|
||||
that will be deploying the 3.2 pnfs-objects code are larger
|
||||
than 64 OSDs and will stop to work properly when reaching
|
||||
that number.
|
||||
|
||||
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
|
||||
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/scsi/osd/osd_uld.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
|
||||
index b31a8e3..d4ed9eb 100644
|
||||
--- a/drivers/scsi/osd/osd_uld.c
|
||||
+++ b/drivers/scsi/osd/osd_uld.c
|
||||
@@ -69,10 +69,10 @@
|
||||
#ifndef SCSI_OSD_MAJOR
|
||||
# define SCSI_OSD_MAJOR 260
|
||||
#endif
|
||||
-#define SCSI_OSD_MAX_MINOR 64
|
||||
+#define SCSI_OSD_MAX_MINOR MINORMASK
|
||||
|
||||
static const char osd_name[] = "osd";
|
||||
-static const char *osd_version_string = "open-osd 0.2.0";
|
||||
+static const char *osd_version_string = "open-osd 0.2.1";
|
||||
|
||||
MODULE_AUTHOR("Boaz Harrosh <bharrosh@panasas.com>");
|
||||
MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko");
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
From ebfef6ff13504f601e3aa56f9732474f3c956e60 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
|
||||
Date: Wed, 22 Feb 2012 18:53:07 +0000
|
||||
Subject: [PATCH 43/95] viafb: select HW scaling on VX900 for IGA2
|
||||
|
||||
commit 050f0e02c8dc38b2b4f2df345ac760d22ca5c7ba upstream.
|
||||
|
||||
VX900 can do hardware scaling for both IGAs in contrast to previous
|
||||
hardware which could do it only for IGA2. This patch ensures that
|
||||
we set the parameter for IGA2 and not for IGA1. This fixes hardware
|
||||
scaling on VX900 until we have the infrastructure to support it for
|
||||
both IGAs.
|
||||
|
||||
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/video/via/hw.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
|
||||
index d5aaca9..8bdf80e 100644
|
||||
--- a/drivers/video/via/hw.c
|
||||
+++ b/drivers/video/via/hw.c
|
||||
@@ -1811,6 +1811,7 @@ static void hw_init(void)
|
||||
}
|
||||
|
||||
/* probably this should go to the scaling code one day */
|
||||
+ via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
|
||||
viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
|
||||
|
||||
/* Fill VPIT Parameters */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
From 9f9317159fdafe3d7fc64cf41f299c71c064db83 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
|
||||
Date: Wed, 22 Feb 2012 18:53:08 +0000
|
||||
Subject: [PATCH 44/95] viafb: fix IGA1 modesetting on VX900
|
||||
|
||||
commit e29206381a1436e0f47c0f5b9a23159a03c57715 upstream.
|
||||
|
||||
Even if the documentation calls this bit "Reserved" it has to be set
|
||||
to 0 for correct modesetting on IGA1.
|
||||
|
||||
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/video/via/hw.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
|
||||
index 8bdf80e..8497727 100644
|
||||
--- a/drivers/video/via/hw.c
|
||||
+++ b/drivers/video/via/hw.c
|
||||
@@ -1810,6 +1810,9 @@ static void hw_init(void)
|
||||
break;
|
||||
}
|
||||
|
||||
+ /* magic required on VX900 for correct modesetting on IGA1 */
|
||||
+ via_write_reg_mask(VIACR, 0x45, 0x00, 0x01);
|
||||
+
|
||||
/* probably this should go to the scaling code one day */
|
||||
via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
|
||||
viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
From 2a2a58328a4241c30b0464b700899e7ba93a10a1 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Date: Wed, 22 Feb 2012 15:52:56 +0000
|
||||
Subject: [PATCH 45/95] ASoC: dapm: Check for bias level when powering down
|
||||
|
||||
commit 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe upstream.
|
||||
|
||||
Recent enhancements in the bias management means that we might not be
|
||||
in standby when the CODEC is idle and can have active widgets without
|
||||
being in full power mode but the shutdown functionality assumes these
|
||||
things. Add checks for the bias level at each stage so that we don't
|
||||
do transitions other than the ON->PREPARE->STANDBY->OFF ones that the
|
||||
drivers are expecting.
|
||||
|
||||
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
sound/soc/soc-dapm.c | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
|
||||
index f42e8b9..ea909c5 100644
|
||||
--- a/sound/soc/soc-dapm.c
|
||||
+++ b/sound/soc/soc-dapm.c
|
||||
@@ -2982,9 +2982,13 @@ static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm)
|
||||
* standby.
|
||||
*/
|
||||
if (powerdown) {
|
||||
- snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_PREPARE);
|
||||
+ if (dapm->bias_level == SND_SOC_BIAS_ON)
|
||||
+ snd_soc_dapm_set_bias_level(dapm,
|
||||
+ SND_SOC_BIAS_PREPARE);
|
||||
dapm_seq_run(dapm, &down_list, 0, false);
|
||||
- snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_STANDBY);
|
||||
+ if (dapm->bias_level == SND_SOC_BIAS_PREPARE)
|
||||
+ snd_soc_dapm_set_bias_level(dapm,
|
||||
+ SND_SOC_BIAS_STANDBY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2997,7 +3001,9 @@ void snd_soc_dapm_shutdown(struct snd_soc_card *card)
|
||||
|
||||
list_for_each_entry(codec, &card->codec_dev_list, list) {
|
||||
soc_dapm_shutdown_codec(&codec->dapm);
|
||||
- snd_soc_dapm_set_bias_level(&codec->dapm, SND_SOC_BIAS_OFF);
|
||||
+ if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
|
||||
+ snd_soc_dapm_set_bias_level(&codec->dapm,
|
||||
+ SND_SOC_BIAS_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
From 96baece54aefb7eb3a287d16dfd1531785293cb8 Mon Sep 17 00:00:00 2001
|
||||
From: Javier Martin <javier.martin@vista-silicon.com>
|
||||
Date: Thu, 23 Feb 2012 15:43:18 +0100
|
||||
Subject: [PATCH 46/95] ASoC: i.MX SSI: Fix DSP_A format.
|
||||
|
||||
commit 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 upstream.
|
||||
|
||||
According to i.MX27 Reference Manual (p 1593) TXBIT0 bit selects
|
||||
whether the most significant or the less significant part of the
|
||||
data word written to the FIFO is transmitted.
|
||||
|
||||
As DSP_A is the same as DSP_B with a data offset of 1 bit, it
|
||||
doesn't make any sense to remove TXBIT0 bit here.
|
||||
|
||||
Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
|
||||
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
|
||||
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
sound/soc/imx/imx-ssi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
|
||||
index 4c05e2b..971eaf0 100644
|
||||
--- a/sound/soc/imx/imx-ssi.c
|
||||
+++ b/sound/soc/imx/imx-ssi.c
|
||||
@@ -112,7 +112,7 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
|
||||
break;
|
||||
case SND_SOC_DAIFMT_DSP_A:
|
||||
/* data on rising edge of bclk, frame high 1clk before data */
|
||||
- strcr |= SSI_STCR_TFSL | SSI_STCR_TEFS;
|
||||
+ strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS;
|
||||
break;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
From 5edb7ce56b7a8c2332fdce83ddbb208aba2ea484 Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Wed, 8 Feb 2012 20:02:03 +0100
|
||||
Subject: [PATCH 47/95] bsg: fix sysfs link remove warning
|
||||
|
||||
commit 37b40adf2d1b4a5e51323be73ccf8ddcf3f15dd3 upstream.
|
||||
|
||||
We create "bsg" link if q->kobj.sd is not NULL, so remove it only
|
||||
when the same condition is true.
|
||||
|
||||
Fixes:
|
||||
|
||||
WARNING: at fs/sysfs/inode.c:323 sysfs_hash_and_remove+0x2b/0x77()
|
||||
sysfs: can not remove 'bsg', no directory
|
||||
Call Trace:
|
||||
[<c0429683>] warn_slowpath_common+0x6a/0x7f
|
||||
[<c0537a68>] ? sysfs_hash_and_remove+0x2b/0x77
|
||||
[<c042970b>] warn_slowpath_fmt+0x2b/0x2f
|
||||
[<c0537a68>] sysfs_hash_and_remove+0x2b/0x77
|
||||
[<c053969a>] sysfs_remove_link+0x20/0x23
|
||||
[<c05d88f1>] bsg_unregister_queue+0x40/0x6d
|
||||
[<c0692263>] __scsi_remove_device+0x31/0x9d
|
||||
[<c069149f>] scsi_forget_host+0x41/0x52
|
||||
[<c0689fa9>] scsi_remove_host+0x71/0xe0
|
||||
[<f7de5945>] quiesce_and_remove_host+0x51/0x83 [usb_storage]
|
||||
[<f7de5a1e>] usb_stor_disconnect+0x18/0x22 [usb_storage]
|
||||
[<c06c29de>] usb_unbind_interface+0x4e/0x109
|
||||
[<c067a80f>] __device_release_driver+0x6b/0xa6
|
||||
[<c067a861>] device_release_driver+0x17/0x22
|
||||
[<c067a46a>] bus_remove_device+0xd6/0xe6
|
||||
[<c06785e2>] device_del+0xf2/0x137
|
||||
[<c06c101f>] usb_disable_device+0x94/0x1a0
|
||||
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
block/bsg.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/block/bsg.c b/block/bsg.c
|
||||
index 702f131..c0ab25c 100644
|
||||
--- a/block/bsg.c
|
||||
+++ b/block/bsg.c
|
||||
@@ -985,7 +985,8 @@ void bsg_unregister_queue(struct request_queue *q)
|
||||
|
||||
mutex_lock(&bsg_mutex);
|
||||
idr_remove(&bsg_minor_idr, bcd->minor);
|
||||
- sysfs_remove_link(&q->kobj, "bsg");
|
||||
+ if (q->kobj.sd)
|
||||
+ sysfs_remove_link(&q->kobj, "bsg");
|
||||
device_unregister(bcd->class_dev);
|
||||
bcd->class_dev = NULL;
|
||||
kref_put(&bcd->ref, bsg_kref_release_function);
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
From dec8d0e38f5a0d8d9a60f59dfac4edec01c60d5e Mon Sep 17 00:00:00 2001
|
||||
From: Fabio Baltieri <fabio.baltieri@gmail.com>
|
||||
Date: Fri, 3 Feb 2012 15:37:14 -0800
|
||||
Subject: [PATCH 48/95] avr32: select generic atomic64_t support
|
||||
|
||||
commit 31e0017e6f6fb5cfdfaf932c1f98c9bef8d57688 upstream.
|
||||
|
||||
Enable use of the generic atomic64 implementation on AVR32 platforms.
|
||||
Without this the kernel fails to build as the architecture does not
|
||||
provide its version.
|
||||
|
||||
Signed-off-by: Fabio Baltieri <fabio.baltieri@gmail.com>
|
||||
Acked-by: Hans-Christian Egtvedt <egtvedt@samfundet.no>
|
||||
Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
arch/avr32/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
|
||||
index 197e96f..3dea7231 100644
|
||||
--- a/arch/avr32/Kconfig
|
||||
+++ b/arch/avr32/Kconfig
|
||||
@@ -8,6 +8,7 @@ config AVR32
|
||||
select HAVE_KPROBES
|
||||
select HAVE_GENERIC_HARDIRQS
|
||||
select GENERIC_IRQ_PROBE
|
||||
+ select GENERIC_ATOMIC64
|
||||
select HARDIRQS_SW_RESEND
|
||||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
From 7e305e70aa38559143edea33a3afa5bbc1ccde03 Mon Sep 17 00:00:00 2001
|
||||
From: Keng-Yu Lin <kengyu@canonical.com>
|
||||
Date: Fri, 2 Dec 2011 00:04:23 +0100
|
||||
Subject: [PATCH 49/95] ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR
|
||||
|
||||
commit 5a50a7c32d630d6cdb13d69afabb0cc81b2f379c upstream.
|
||||
|
||||
The models do not resume correctly without acpi_sleep=nonvs.
|
||||
|
||||
Signed-off-by: Keng-Yu Lin <kengyu@canonical.com>
|
||||
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
|
||||
Cc: Tim Gardner <tim.gardner@canonical.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/acpi/sleep.c | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
|
||||
index 6d9a3ab..0a7ed69 100644
|
||||
--- a/drivers/acpi/sleep.c
|
||||
+++ b/drivers/acpi/sleep.c
|
||||
@@ -476,6 +476,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW520F"),
|
||||
},
|
||||
},
|
||||
+ {
|
||||
+ .callback = init_nvs_nosave,
|
||||
+ .ident = "Asus K54C",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "K54C"),
|
||||
+ },
|
||||
+ },
|
||||
+ {
|
||||
+ .callback = init_nvs_nosave,
|
||||
+ .ident = "Asus K54HR",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "K54HR"),
|
||||
+ },
|
||||
+ },
|
||||
{},
|
||||
};
|
||||
#endif /* CONFIG_SUSPEND */
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
From 5ac86302b276565fd96dd678fc9db3cb16ad25e1 Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 18 Oct 2011 17:52:01 -0500
|
||||
Subject: [PATCH 50/95] rtl8192cu: Add new device IDs
|
||||
|
||||
commit 6cddafab54e9a17b2efefe982547865955a5ff3a upstream.
|
||||
|
||||
The latest vendor (non-mac80211) driver of 9/22/2011 shows some new
|
||||
device IDs for rtl8192cu. In addition, some typos in the table are
|
||||
fixed and one duplicate is removed.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 36 ++++++++++++++++++++++++---
|
||||
1 file changed, 32 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
index c244f2f..94a3e17 100644
|
||||
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
|
||||
@@ -275,6 +275,8 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8191, rtl92cu_hal_cfg)},
|
||||
|
||||
/****** 8188CU ********/
|
||||
+ /* RTL8188CTV */
|
||||
+ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x018a, rtl92cu_hal_cfg)},
|
||||
/* 8188CE-VAU USB minCard */
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8170, rtl92cu_hal_cfg)},
|
||||
/* 8188cu 1*1 dongle */
|
||||
@@ -291,14 +293,14 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817e, rtl92cu_hal_cfg)},
|
||||
/* 8188RU in Alfa AWUS036NHR */
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817f, rtl92cu_hal_cfg)},
|
||||
+ /* RTL8188CUS-VL */
|
||||
+ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x818a, rtl92cu_hal_cfg)},
|
||||
/* 8188 Combo for BC4 */
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8754, rtl92cu_hal_cfg)},
|
||||
|
||||
/****** 8192CU ********/
|
||||
- /* 8191cu 1*2 */
|
||||
- {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8177, rtl92cu_hal_cfg)},
|
||||
/* 8192cu 2*2 */
|
||||
- {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817b, rtl92cu_hal_cfg)},
|
||||
+ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8178, rtl92cu_hal_cfg)},
|
||||
/* 8192CE-VAU USB minCard */
|
||||
{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817c, rtl92cu_hal_cfg)},
|
||||
|
||||
@@ -309,13 +311,17 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
|
||||
{RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/
|
||||
{RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/
|
||||
{RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/
|
||||
- {RTL_USB_DEVICE(0x0Df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
|
||||
+ {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
|
||||
+ {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
|
||||
{RTL_USB_DEVICE(0x0eb0, 0x9071, rtl92cu_hal_cfg)}, /*NO Brand - Etop*/
|
||||
/* HP - Lite-On ,8188CUS Slim Combo */
|
||||
{RTL_USB_DEVICE(0x103c, 0x1629, rtl92cu_hal_cfg)},
|
||||
{RTL_USB_DEVICE(0x13d3, 0x3357, rtl92cu_hal_cfg)}, /* AzureWave */
|
||||
{RTL_USB_DEVICE(0x2001, 0x3308, rtl92cu_hal_cfg)}, /*D-Link - Alpha*/
|
||||
+ {RTL_USB_DEVICE(0x2019, 0x4902, rtl92cu_hal_cfg)}, /*Planex - Etop*/
|
||||
{RTL_USB_DEVICE(0x2019, 0xab2a, rtl92cu_hal_cfg)}, /*Planex - Abocom*/
|
||||
+ /*SW-WF02-AD15 -Abocom*/
|
||||
+ {RTL_USB_DEVICE(0x2019, 0xab2e, rtl92cu_hal_cfg)},
|
||||
{RTL_USB_DEVICE(0x2019, 0xed17, rtl92cu_hal_cfg)}, /*PCI - Edimax*/
|
||||
{RTL_USB_DEVICE(0x20f4, 0x648b, rtl92cu_hal_cfg)}, /*TRENDnet - Cameo*/
|
||||
{RTL_USB_DEVICE(0x7392, 0x7811, rtl92cu_hal_cfg)}, /*Edimax - Edimax*/
|
||||
@@ -326,14 +332,36 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
|
||||
{RTL_USB_DEVICE(0x4855, 0x0091, rtl92cu_hal_cfg)}, /* NetweeN-Feixun */
|
||||
{RTL_USB_DEVICE(0x9846, 0x9041, rtl92cu_hal_cfg)}, /* Netgear Cameo */
|
||||
|
||||
+ /****** 8188 RU ********/
|
||||
+ /* Netcore */
|
||||
+ {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x317f, rtl92cu_hal_cfg)},
|
||||
+
|
||||
+ /****** 8188CUS Slim Solo********/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaff7, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaff9, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaffa, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+
|
||||
+ /****** 8188CUS Slim Combo ********/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaff8, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaffb, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+ {RTL_USB_DEVICE(0x04f2, 0xaffc, rtl92cu_hal_cfg)}, /*Xavi*/
|
||||
+ {RTL_USB_DEVICE(0x2019, 0x1201, rtl92cu_hal_cfg)}, /*Planex-Vencer*/
|
||||
+
|
||||
/****** 8192CU ********/
|
||||
+ {RTL_USB_DEVICE(0x050d, 0x2102, rtl92cu_hal_cfg)}, /*Belcom-Sercomm*/
|
||||
+ {RTL_USB_DEVICE(0x050d, 0x2103, rtl92cu_hal_cfg)}, /*Belcom-Edimax*/
|
||||
{RTL_USB_DEVICE(0x0586, 0x341f, rtl92cu_hal_cfg)}, /*Zyxel -Abocom*/
|
||||
{RTL_USB_DEVICE(0x07aa, 0x0056, rtl92cu_hal_cfg)}, /*ATKK-Gemtek*/
|
||||
{RTL_USB_DEVICE(0x07b8, 0x8178, rtl92cu_hal_cfg)}, /*Funai -Abocom*/
|
||||
+ {RTL_USB_DEVICE(0x0846, 0x9021, rtl92cu_hal_cfg)}, /*Netgear-Sercomm*/
|
||||
+ {RTL_USB_DEVICE(0x0b05, 0x17ab, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/
|
||||
+ {RTL_USB_DEVICE(0x0df6, 0x0061, rtl92cu_hal_cfg)}, /*Sitecom-Edimax*/
|
||||
+ {RTL_USB_DEVICE(0x0e66, 0x0019, rtl92cu_hal_cfg)}, /*Hawking-Edimax*/
|
||||
{RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/
|
||||
{RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
|
||||
{RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
|
||||
{RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/
|
||||
+ {RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/
|
||||
{RTL_USB_DEVICE(0x7392, 0x7822, rtl92cu_hal_cfg)}, /*Edimax -Edimax*/
|
||||
{}
|
||||
};
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
From 264d5f1c3a43d069cb497773366cf973b0f58731 Mon Sep 17 00:00:00 2001
|
||||
From: Eugeni Dodonov <eugeni.dodonov@intel.com>
|
||||
Date: Wed, 8 Feb 2012 12:53:49 -0800
|
||||
Subject: [PATCH 51/95] drm/i915: gen7: implement rczunit workaround
|
||||
|
||||
commit eae66b50c760233fad526edf4a0d327be17a055d upstream.
|
||||
|
||||
This is yet another workaround related to clock gating which we need on
|
||||
Ivy Bridge.
|
||||
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
|
||||
Tested-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
|
||||
Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
|
||||
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
|
||||
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_reg.h | 1 +
|
||||
drivers/gpu/drm/i915/intel_display.c | 5 +++++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index a26d5b0..4e2e261 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -3476,6 +3476,7 @@
|
||||
#define GT_FIFO_NUM_RESERVED_ENTRIES 20
|
||||
|
||||
#define GEN6_UCGCTL2 0x9404
|
||||
+# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE (1 << 13)
|
||||
# define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE (1 << 12)
|
||||
# define GEN6_RCCUNIT_CLOCK_GATE_DISABLE (1 << 11)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index 573f485..31c1432 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -8248,6 +8248,11 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
|
||||
I915_WRITE(WM2_LP_ILK, 0);
|
||||
I915_WRITE(WM1_LP_ILK, 0);
|
||||
|
||||
+ /* According to the spec, bit 13 (RCZUNIT) must be set on IVB.
|
||||
+ * This implements the WaDisableRCZUnitClockGating workaround.
|
||||
+ */
|
||||
+ I915_WRITE(GEN6_UCGCTL2, GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
|
||||
+
|
||||
I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
|
||||
|
||||
for_each_pipe(pipe) {
|
||||
--
|
||||
1.7.9.4
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user