All of lore.kernel.org
 help / color / mirror / Atom feed
* [ 001/149] USB: option: Add MediaTek MT6276M modem&app interfaces
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems Greg KH
                   ` (147 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Meng Zhang, Matthias Urlichs

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Meng Zhang <meng.zhang@mediatek.com>

commit 0d8520a1d7f43328bc7085d4244d93c595064157 upstream.

Add MEDIATEK products to Option driver

Signed-off-by: Meng Zhang <meng.zhang@mediatek.com>
Signed-off-by: Matthias Urlichs <matthias@urlichs.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/option.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -484,6 +484,9 @@ static void option_instat_callback(struc
 #define LG_VENDOR_ID				0x1004
 #define LG_PRODUCT_L02C				0x618f
 
+/* MediaTek products */
+#define MEDIATEK_VENDOR_ID			0x0e8d
+
 /* some devices interfaces need special handling due to a number of reasons */
 enum option_blacklist_reason {
 		OPTION_BLACKLIST_NONE = 0,
@@ -1198,6 +1201,10 @@ static const struct usb_device_id option
 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) },        /* MediaTek MT6276M modem & app port */
 	{ } /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, option_ids);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
  2012-03-30 19:48 ` [ 001/149] USB: option: Add MediaTek MT6276M modem&app interfaces Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 003/149] USB: option: make interface blacklist work again Greg KH
                   ` (146 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Daniele Palmas

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Daniele Palmas <dnlplm@gmail.com>

commit 7204cf584836c24b4b06e4ad4a8e6bb8ea84908e upstream.

Adding PID for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL
modems

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/option.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -307,6 +307,9 @@ static void option_instat_callback(struc
 #define TELIT_VENDOR_ID				0x1bc7
 #define TELIT_PRODUCT_UC864E			0x1003
 #define TELIT_PRODUCT_UC864G			0x1004
+#define TELIT_PRODUCT_CC864_DUAL		0x1005
+#define TELIT_PRODUCT_CC864_SINGLE		0x1006
+#define TELIT_PRODUCT_DE910_DUAL		0x1010
 
 /* ZTE PRODUCTS */
 #define ZTE_VENDOR_ID				0x19d2
@@ -771,6 +774,9 @@ static const struct usb_device_id option
 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) },
+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
 		.driver_info = (kernel_ulong_t)&net_intf1_blacklist },



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 003/149] USB: option: make interface blacklist work again
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
  2012-03-30 19:48 ` [ 001/149] USB: option: Add MediaTek MT6276M modem&app interfaces Greg KH
  2012-03-30 19:48 ` [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 004/149] USB: option: add ZTE MF820D Greg KH
                   ` (145 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Bjørn Mork

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1108 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bjørn Mork <bjorn@mork.no>

commit 963940cf472d76eca2d36296e461202cc6997352 upstream.

commit 0d905fd "USB: option: convert Huawei K3765, K4505, K4605
reservered interface to blacklist" accidentally ANDed two
blacklist tests by leaving out a return.  This was not noticed
because the two consecutive bracketless if statements made it
syntactically correct.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/option.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1373,6 +1373,7 @@ static int option_probe(struct usb_seria
 		serial->interface->cur_altsetting->desc.bInterfaceNumber,
 		OPTION_BLACKLIST_RESERVED_IF,
 		(const struct option_blacklist_info *) id->driver_info))
+		return -ENODEV;
 
 	/* Don't bind network interface on Samsung GT-B3730, it is handled by a separate module */
 	if (serial->dev->descriptor.idVendor == SAMSUNG_VENDOR_ID &&



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 004/149] USB: option: add ZTE MF820D
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (2 preceding siblings ...)
  2012-03-30 19:48 ` [ 003/149] USB: option: make interface blacklist work again Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 005/149] staging: zcache: avoid AB-BA deadlock condition Greg KH
                   ` (144 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Bjørn Mork

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bjørn Mork <bjorn@mork.no>

commit 5889d3d4209c1050b4a3c96c41faf6c0976a4acf upstream.

This device presents a total of 5 interfaces with ff/ff/ff
class/subclass/protocol. The last one of these is verified
to be a QMI/wwan combined interface which should be handled
by the qmi_wwan driver, so we blacklist it here.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/option.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -901,6 +901,8 @@ static const struct usb_device_id option
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) },
 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) },



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 005/149] staging: zcache: avoid AB-BA deadlock condition
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (3 preceding siblings ...)
  2012-03-30 19:48 ` [ 004/149] USB: option: add ZTE MF820D Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 006/149] USB: ftdi_sio: fix problem when the manufacture is a NULL string Greg KH
                   ` (143 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Andrea Righi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrea Righi <andrea@betterlinux.com>

commit cfbc6a92212e74b07aa76c9e2f20c542e36077fb upstream.

Commit 9256a47 fixed a deadlock condition, being sure that the buddy
list spinlock is always taken before the page spinlock.

However in zbud_free_and_delist() locking order is the opposite
(page lock -> list lock).

Possible unsafe locking scenario (reported by lockdep):

        CPU0                    CPU1
        ----                    ----
   lock(&(&zbpg->lock)->rlock);
                                lock(zbud_budlists_spinlock);
                                lock(&(&zbpg->lock)->rlock);
   lock(zbud_budlists_spinlock);

Fix by grabbing the locks in opposite order in zbud_free_and_delist().

Signed-off-by: Andrea Righi <andrea@betterlinux.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/zcache/zcache-main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/staging/zcache/zcache-main.c
+++ b/drivers/staging/zcache/zcache-main.c
@@ -299,10 +299,12 @@ static void zbud_free_and_delist(struct
 	struct zbud_page *zbpg =
 		container_of(zh, struct zbud_page, buddy[budnum]);
 
+	spin_lock(&zbud_budlists_spinlock);
 	spin_lock(&zbpg->lock);
 	if (list_empty(&zbpg->bud_list)) {
 		/* ignore zombie page... see zbud_evict_pages() */
 		spin_unlock(&zbpg->lock);
+		spin_unlock(&zbud_budlists_spinlock);
 		return;
 	}
 	size = zbud_free(zh);
@@ -310,7 +312,6 @@ static void zbud_free_and_delist(struct
 	zh_other = &zbpg->buddy[(budnum == 0) ? 1 : 0];
 	if (zh_other->size == 0) { /* was unbuddied: unlist and free */
 		chunks = zbud_size_to_chunks(size) ;
-		spin_lock(&zbud_budlists_spinlock);
 		BUG_ON(list_empty(&zbud_unbuddied[chunks].list));
 		list_del_init(&zbpg->bud_list);
 		zbud_unbuddied[chunks].count--;
@@ -318,7 +319,6 @@ static void zbud_free_and_delist(struct
 		zbud_free_raw_page(zbpg);
 	} else { /* was buddied: move remaining buddy to unbuddied list */
 		chunks = zbud_size_to_chunks(zh_other->size) ;
-		spin_lock(&zbud_budlists_spinlock);
 		list_del_init(&zbpg->bud_list);
 		zcache_zbud_buddied_count--;
 		list_add_tail(&zbpg->bud_list, &zbud_unbuddied[chunks].list);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 006/149] USB: ftdi_sio: fix problem when the manufacture is a NULL string
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (4 preceding siblings ...)
  2012-03-30 19:48 ` [ 005/149] staging: zcache: avoid AB-BA deadlock condition Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 007/149] USB: ftdi_sio: add support for BeagleBone rev A5+ Greg KH
                   ` (142 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Wojciech M Zabolotny

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 656d2b3964a9d0f9864d472f8dfa2dd7dd42e6c0 upstream.

On some misconfigured ftdi_sio devices, if the manufacturer string is
NULL, the kernel will oops when the device is plugged in.  This patch
fixes the problem.

Reported-by: Wojciech M Zabolotny <W.Zabolotny@elka.pw.edu.pl>
Tested-by: Wojciech M Zabolotny <W.Zabolotny@elka.pw.edu.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1763,7 +1763,8 @@ static int ftdi_8u2232c_probe(struct usb
 
 	dbg("%s", __func__);
 
-	if (strcmp(udev->manufacturer, "CALAO Systems") == 0)
+	if ((udev->manufacturer) &&
+	    (strcmp(udev->manufacturer, "CALAO Systems") == 0))
 		return ftdi_jtag_probe(serial);
 
 	return 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 007/149] USB: ftdi_sio: add support for BeagleBone rev A5+
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (5 preceding siblings ...)
  2012-03-30 19:48 ` [ 006/149] USB: ftdi_sio: fix problem when the manufacture is a NULL string Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 008/149] USB: Microchip VID mislabeled as Hornby VID in ftdi_sio Greg KH
                   ` (141 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Peter Korsgaard

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peter Korsgaard <jacmet@sunsite.dk>

commit 444aa7fa9bd752d19ce472d3e02558b987c3cc67 upstream.

BeagleBone changed to the default FTDI 0403:6010 id in rev A5 to make life
easier for Windows users, so we need a similar workaround as the Calao
board to support it.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1763,8 +1763,8 @@ static int ftdi_8u2232c_probe(struct usb
 
 	dbg("%s", __func__);
 
-	if ((udev->manufacturer) &&
-	    (strcmp(udev->manufacturer, "CALAO Systems") == 0))
+	if ((udev->manufacturer && !strcmp(udev->manufacturer, "CALAO Systems")) ||
+	    (udev->product && !strcmp(udev->product, "BeagleBone/XDS100")))
 		return ftdi_jtag_probe(serial);
 
 	return 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 008/149] USB: Microchip VID mislabeled as Hornby VID in ftdi_sio.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (6 preceding siblings ...)
  2012-03-30 19:48 ` [ 007/149] USB: ftdi_sio: add support for BeagleBone rev A5+ Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 009/149] USB: ftdi_sio: new PID: Distortec JTAG-lock-pick Greg KH
                   ` (140 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Bruno Thomsen

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bruno Thomsen <bruno.thomsen@gmail.com>

commit c1cee1d84001815a1b4321c49b995254c0df3100 upstream.

Microchip VID (0x04d8) was mislabeled as Hornby VID according to USB-IDs.

A Full Speed USB Demo Board PID (0x000a) was mislabeled as
Hornby Elite (an Digital Command Controller Console for model railways).

Most likely the Hornby based their design on
PIC18F87J50 Full Speed USB Demo Board.

Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |    2 +-
 drivers/usb/serial/ftdi_sio_ids.h |   10 +++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -797,7 +797,7 @@ static struct usb_device_id id_table_com
 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
 	{ USB_DEVICE(ADI_VID, ADI_GNICEPLUS_PID),
 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-	{ USB_DEVICE(HORNBY_VID, HORNBY_ELITE_PID) },
+	{ USB_DEVICE(MICROCHIP_VID, MICROCHIP_USB_BOARD_PID) },
 	{ USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
 	{ USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -532,10 +532,14 @@
 #define ADI_GNICEPLUS_PID	0xF001
 
 /*
- * Hornby Elite
+ * Microchip Technology, Inc.
+ *
+ * MICROCHIP_VID (0x04D8) and MICROCHIP_USB_BOARD_PID (0x000A) are also used by:
+ * Hornby Elite - Digital Command Control Console
+ * http://www.hornby.com/hornby-dcc/controllers/
  */
-#define HORNBY_VID		0x04D8
-#define HORNBY_ELITE_PID	0x000A
+#define MICROCHIP_VID		0x04D8
+#define MICROCHIP_USB_BOARD_PID	0x000A /* CDC RS-232 Emulation Demo */
 
 /*
  * RATOC REX-USB60F



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 009/149] USB: ftdi_sio: new PID: Distortec JTAG-lock-pick
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (7 preceding siblings ...)
  2012-03-30 19:48 ` [ 008/149] USB: Microchip VID mislabeled as Hornby VID in ftdi_sio Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 010/149] USB: ftdi_sio: add support for FT-X series devices Greg KH
                   ` (139 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Michał Wróbel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1403 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michał Wróbel <michal.wrobel@flytronic.pl>

commit 47594d5528f28a4c025c2955c68104c75815637c upstream.

Signed-off-by: Michał Wróbel <michal.wrobel@flytronic.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |    2 ++
 drivers/usb/serial/ftdi_sio_ids.h |    2 ++
 2 files changed, 4 insertions(+)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -846,6 +846,8 @@ static struct usb_device_id id_table_com
 	{ USB_DEVICE(ST_VID, ST_STMCLT1030_PID),
 		.driver_info = (kernel_ulong_t)&ftdi_stmclite_quirk },
 	{ USB_DEVICE(FTDI_VID, FTDI_RF_R106) },
+	{ USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID),
+		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
 	{ },					/* Optional parameter entry */
 	{ }					/* Terminating entry */
 };
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -97,6 +97,8 @@
 #define FTDI_TACTRIX_OPENPORT_13S_PID	0xCC49	/* OpenPort 1.3 Subaru */
 #define FTDI_TACTRIX_OPENPORT_13U_PID	0xCC4A	/* OpenPort 1.3 Universal */
 
+#define FTDI_DISTORTEC_JTAG_LOCK_PICK_PID	0xCFF8
+
 /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */
 /* the VID is the standard ftdi vid (FTDI_VID) */
 #define FTDI_SCS_DEVICE_0_PID 0xD010    /* SCS PTC-IIusb */



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 010/149] USB: ftdi_sio: add support for FT-X series devices
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (8 preceding siblings ...)
  2012-03-30 19:48 ` [ 009/149] USB: ftdi_sio: new PID: Distortec JTAG-lock-pick Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 011/149] USB: ftdi_sio: new PID: LUMEL PD12 Greg KH
                   ` (138 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Jim Paris

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jim Paris <jim@jtan.com>

commit dc0827c128c0ee5a58b822b99d662b59f4b8e970 upstream.

Add PID 0x6015, corresponding to the new series of FT-X chips
(FT220XD, FT201X, FT220X, FT221X, FT230X, FT231X, FT240X).  They all
appear as serial devices, and seem indistinguishable except for the
default product string stored in their EEPROM.  The baudrate
generation matches FT232RL devices.

Tested with a FT201X and FT230X at various baudrates (100 - 3000000).

Sample dmesg:
    ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
    usb 2-1: new full-speed USB device number 6 using ohci_hcd
    usb 2-1: New USB device found, idVendor=0403, idProduct=6015
    usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    usb 2-1: Product: FT230X USB Half UART
    usb 2-1: Manufacturer: FTDI
    usb 2-1: SerialNumber: DC001WI6
    ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
    drivers/usb/serial/ftdi_sio.c: ftdi_sio_port_probe
    drivers/usb/serial/ftdi_sio.c: ftdi_determine_type: bcdDevice = 0x1000, bNumInterfaces = 1
    usb 2-1: Detected FT-X
    usb 2-1: Number of endpoints 2
    usb 2-1: Endpoint 1 MaxPacketSize 64
    usb 2-1: Endpoint 2 MaxPacketSize 64
    usb 2-1: Setting MaxPacketSize 64
    drivers/usb/serial/ftdi_sio.c: read_latency_timer
    drivers/usb/serial/ftdi_sio.c: write_latency_timer: setting latency timer = 1
    drivers/usb/serial/ftdi_sio.c: create_sysfs_attrs
    drivers/usb/serial/ftdi_sio.c: sysfs attributes for FT-X
    usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0

Signed-off-by: Jim Paris <jim@jtan.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |   20 +++++++++++++++-----
 drivers/usb/serial/ftdi_sio.h     |    3 ++-
 drivers/usb/serial/ftdi_sio_ids.h |    1 +
 3 files changed, 18 insertions(+), 6 deletions(-)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -188,6 +188,7 @@ static struct usb_device_id id_table_com
 		.driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk },
 	{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
+	{ USB_DEVICE(FTDI_VID, FTDI_FTX_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
 	{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
@@ -870,7 +871,8 @@ static const char *ftdi_chip_name[] = {
 	[FT232RL] = "FT232RL",
 	[FT2232H] = "FT2232H",
 	[FT4232H] = "FT4232H",
-	[FT232H]  = "FT232H"
+	[FT232H]  = "FT232H",
+	[FTX]     = "FT-X"
 };
 
 
@@ -1171,7 +1173,8 @@ static __u32 get_ftdi_divisor(struct tty
 		break;
 	case FT232BM: /* FT232BM chip */
 	case FT2232C: /* FT2232C chip */
-	case FT232RL:
+	case FT232RL: /* FT232RL chip */
+	case FTX:     /* FT-X series */
 		if (baud <= 3000000) {
 			__u16 product_id = le16_to_cpu(
 				port->serial->dev->descriptor.idProduct);
@@ -1460,10 +1463,14 @@ static void ftdi_determine_type(struct u
 	} else if (version < 0x900) {
 		/* Assume it's an FT232RL */
 		priv->chip_type = FT232RL;
-	} else {
+	} else if (version < 0x1000) {
 		/* Assume it's an FT232H */
 		priv->chip_type = FT232H;
+	} else {
+		/* Assume it's an FT-X series device */
+		priv->chip_type = FTX;
 	}
+
 	dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]);
 }
 
@@ -1591,7 +1598,8 @@ static int create_sysfs_attrs(struct usb
 		     priv->chip_type == FT232RL ||
 		     priv->chip_type == FT2232H ||
 		     priv->chip_type == FT4232H ||
-		     priv->chip_type == FT232H)) {
+		     priv->chip_type == FT232H ||
+		     priv->chip_type == FTX)) {
 			retval = device_create_file(&port->dev,
 						    &dev_attr_latency_timer);
 		}
@@ -1613,7 +1621,8 @@ static void remove_sysfs_attrs(struct us
 		    priv->chip_type == FT232RL ||
 		    priv->chip_type == FT2232H ||
 		    priv->chip_type == FT4232H ||
-                    priv->chip_type == FT232H) {
+		    priv->chip_type == FT232H ||
+		    priv->chip_type == FTX) {
 			device_remove_file(&port->dev, &dev_attr_latency_timer);
 		}
 	}
@@ -2287,6 +2296,7 @@ static int ftdi_tiocmget(struct tty_stru
 	case FT2232H:
 	case FT4232H:
 	case FT232H:
+	case FTX:
 		len = 2;
 		break;
 	default:
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -157,7 +157,8 @@ enum ftdi_chip_type {
 	FT232RL = 5,
 	FT2232H = 6,
 	FT4232H = 7,
-	FT232H  = 8
+	FT232H  = 8,
+	FTX     = 9,
 };
 
 enum ftdi_sio_baudrate {
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -23,6 +23,7 @@
 #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */
 #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */
 #define FTDI_232H_PID  0x6014 /* Single channel hi-speed device */
+#define FTDI_FTX_PID   0x6015 /* FT-X series (FT201X, FT230X, FT231X, etc) */
 #define FTDI_SIO_PID	0x8372	/* Product Id SIO application of 8U100AX */
 #define FTDI_232RL_PID  0xFBFA  /* Product ID for FT232RL */
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 011/149] USB: ftdi_sio: new PID: LUMEL PD12
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (9 preceding siblings ...)
  2012-03-30 19:48 ` [ 010/149] USB: ftdi_sio: add support for FT-X series devices Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 012/149] powerpc/usb: fix bug of kernel hang when initializing usb Greg KH
                   ` (137 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Michał Wróbel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1129 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michał Wróbel <michal.wrobel@flytronic.pl>

commit 57e596f3af88ef52dea9640ed5e34ecd38893a02 upstream.

Signed-off-by: Michał Wróbel <michal.wrobel@flytronic.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |    1 +
 drivers/usb/serial/ftdi_sio_ids.h |    2 ++
 2 files changed, 3 insertions(+)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -849,6 +849,7 @@ static struct usb_device_id id_table_com
 	{ USB_DEVICE(FTDI_VID, FTDI_RF_R106) },
 	{ USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID),
 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
+	{ USB_DEVICE(FTDI_VID, FTDI_LUMEL_PD12_PID) },
 	{ },					/* Optional parameter entry */
 	{ }					/* Terminating entry */
 };
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -30,6 +30,8 @@
 
 /*** third-party PIDs (using FTDI_VID) ***/
 
+#define FTDI_LUMEL_PD12_PID	0x6002
+
 /*
  * Marvell OpenRD Base, Client
  * http://www.open-rd.org



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 012/149] powerpc/usb: fix bug of kernel hang when initializing usb
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (10 preceding siblings ...)
  2012-03-30 19:48 ` [ 011/149] USB: ftdi_sio: new PID: LUMEL PD12 Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 013/149] staging: r8712u: Add missing initialization and remove configuration parameter CONFIG_R8712_AP Greg KH
                   ` (136 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Shengzhou Liu, Benjamin Herrenschmidt

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Shengzhou Liu <Shengzhou.Liu@freescale.com>

commit 28c56ea1431421dec51b7b229369e991481453df upstream.

If USB UTMI PHY is not enable, writing to portsc register will lead to
kernel hang during boot up.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/ehci-fsl.c |    4 ++++
 drivers/usb/host/ehci-fsl.h |    1 +
 2 files changed, 5 insertions(+)

--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -216,6 +216,8 @@ static void ehci_fsl_setup_phy(struct eh
 			       unsigned int port_offset)
 {
 	u32 portsc;
+	struct usb_hcd *hcd = ehci_to_hcd(ehci);
+	void __iomem *non_ehci = hcd->regs;
 
 	portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]);
 	portsc &= ~(PORT_PTS_MSK | PORT_PTS_PTW);
@@ -231,6 +233,8 @@ static void ehci_fsl_setup_phy(struct eh
 		portsc |= PORT_PTS_PTW;
 		/* fall through */
 	case FSL_USB2_PHY_UTMI:
+		/* enable UTMI PHY */
+		setbits32(non_ehci + FSL_SOC_USB_CTRL, CTRL_UTMI_PHY_EN);
 		portsc |= PORT_PTS_UTMI;
 		break;
 	case FSL_USB2_PHY_NONE:
--- a/drivers/usb/host/ehci-fsl.h
+++ b/drivers/usb/host/ehci-fsl.h
@@ -45,5 +45,6 @@
 #define FSL_SOC_USB_PRICTRL	0x40c	/* NOTE: big-endian */
 #define FSL_SOC_USB_SICTRL	0x410	/* NOTE: big-endian */
 #define FSL_SOC_USB_CTRL	0x500	/* NOTE: big-endian */
+#define CTRL_UTMI_PHY_EN	(1<<9)
 #define SNOOP_SIZE_2GB		0x1e
 #endif				/* _EHCI_FSL_H */



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 013/149] staging: r8712u: Add missing initialization and remove configuration parameter CONFIG_R8712_AP
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (11 preceding siblings ...)
  2012-03-30 19:48 ` [ 012/149] powerpc/usb: fix bug of kernel hang when initializing usb Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 014/149] staging: r8712u: Fix regression introduced by commit a5ee652 Greg KH
                   ` (135 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Larry Finger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Larry Finger <Larry.Finger@lwfinger.net>

commit 073863432f7eaa23c7c09733414d4be2eabf5eef upstream.

When this driver was upgraded to the vendor 20100831 version in
commit 93c55dda092c7 et al,, one listhead initialization was missed.
This broke complete operation of the driver whenever AP mode was
enabled. This fixes https://bugs.archlinux.org/task/27996.

The configuration parameter R8712_AP is misleading as the driver cannot
function as an AP without a heavily hacked version of hostapd. Thus, it
makes sense to remove the parameter; however the code and data configured
for the option is left in.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/rtl8712/Kconfig           |    7 -------
 drivers/staging/rtl8712/rtl871x_sta_mgt.c |    5 +----
 drivers/staging/rtl8712/sta_info.h        |    4 ----
 3 files changed, 1 insertion(+), 15 deletions(-)

--- a/drivers/staging/rtl8712/Kconfig
+++ b/drivers/staging/rtl8712/Kconfig
@@ -9,13 +9,6 @@ config R8712U
 	This option adds the Realtek RTL8712 USB device such as the D-Link DWA-130.
 	If built as a module, it will be called r8712u.
 
-config R8712_AP
-	bool "Realtek RTL8712U AP code"
-	depends on R8712U
-	default N
-	---help---
-	This option allows the Realtek RTL8712 USB device to be an Access Point.
-
 config R8712_TX_AGGR
 	bool "Realtek RTL8712U Transmit Aggregation code"
 	depends on R8712U && BROKEN
--- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c
+++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
@@ -42,9 +42,8 @@ static void _init_stainfo(struct sta_inf
 	_init_listhead(&psta->hash_list);
 	_r8712_init_sta_xmit_priv(&psta->sta_xmitpriv);
 	_r8712_init_sta_recv_priv(&psta->sta_recvpriv);
-#ifdef CONFIG_R8712_AP
+	_init_listhead(&psta->asoc_list);
 	_init_listhead(&psta->auth_list);
-#endif
 }
 
 u32 _r8712_init_sta_priv(struct	sta_priv *pstapriv)
@@ -71,10 +70,8 @@ u32 _r8712_init_sta_priv(struct	sta_priv
 				 get_list_head(&pstapriv->free_sta_queue));
 		psta++;
 	}
-#ifdef CONFIG_R8712_AP
 	_init_listhead(&pstapriv->asoc_list);
 	_init_listhead(&pstapriv->auth_list);
-#endif
 	return _SUCCESS;
 }
 
--- a/drivers/staging/rtl8712/sta_info.h
+++ b/drivers/staging/rtl8712/sta_info.h
@@ -90,7 +90,6 @@ struct sta_info {
 	 * curr_network(mlme_priv/security_priv/qos/ht) : AP CAP/INFO
 	 * sta_info: (AP & STA) CAP/INFO
 	 */
-#ifdef CONFIG_R8712_AP
 	struct list_head asoc_list;
 	struct list_head auth_list;
 	unsigned int expire_to;
@@ -98,7 +97,6 @@ struct sta_info {
 	unsigned int authalg;
 	unsigned char chg_txt[128];
 	unsigned int tx_ra_bitmap;
-#endif
 };
 
 struct	sta_priv {
@@ -111,13 +109,11 @@ struct	sta_priv {
 	struct  __queue sleep_q;
 	struct  __queue wakeup_q;
 	struct _adapter *padapter;
-#ifdef CONFIG_R8712_AP
 	struct list_head asoc_list;
 	struct list_head auth_list;
 	unsigned int auth_to;  /* sec, time to expire in authenticating. */
 	unsigned int assoc_to; /* sec, time to expire before associating. */
 	unsigned int expire_to; /* sec , time to expire after associated. */
-#endif
 };
 
 static inline u32 wifi_mac_hash(u8 *mac)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 014/149] staging: r8712u: Fix regression introduced by commit a5ee652
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (12 preceding siblings ...)
  2012-03-30 19:48 ` [ 013/149] staging: r8712u: Add missing initialization and remove configuration parameter CONFIG_R8712_AP Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 015/149] staging: r8712u: Fix regression in signal level after commit c6dc001 Greg KH
                   ` (134 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Alberto Lago Ballesteros, Adrian, Larry Finger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Larry Finger <Larry.Finger@lwfinger.net>

commit 9f4bc8cf3fe750ed093856a5f5d41c11cc12ad22 upstream.

In commit a5ee652 "staging: r8712u: Interface-state not fully tracked",
the private boolean "bup" was set false when the interface was brought down,
as that seemed appropriate. This change has not caused any problems when
using NetworkManager or manual control of the device; however, when wicd
control is used, there is a locking problem in wpa_supplicant, as shown in
https://bugzilla.kernel.org/show_bug.cgi?id=42818.

This fix reverts the only code change in commit a5ee652. My
analysis is that "bup" is badly named. In its present form, it
seems to indicate the up/down state of the device, but its usage
is more consistent with an initialized/uninitialized state. That
problem will be addressed in a later patch.

Note: Commit 8c213fa, which introdued asynchronous firmware loading
for this driver, exposed this bug to a greater extent. That bug
is addressed in the next patch in this series.

This bug is also responsible for the bug in
https://bugzilla.kernel.org/show_bug.cgi?id=42815. and this bug is
also part of the problems discussed at https://bugs.archlinux.org/task/27996#comment89950.

Tested-by: Alberto Lago Ballesteros <saniukeokusainaya@gmail.com>
Tested-by: Adrian <agib@gmx.de>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/rtl8712/os_intfs.c |    2 --
 1 file changed, 2 deletions(-)

--- a/drivers/staging/rtl8712/os_intfs.c
+++ b/drivers/staging/rtl8712/os_intfs.c
@@ -476,8 +476,6 @@ static int netdev_close(struct net_devic
 	r8712_free_assoc_resources(padapter);
 	/*s2-4.*/
 	r8712_free_network_queue(padapter);
-	/* The interface is no longer Up: */
-	padapter->bup = false;
 	release_firmware(padapter->fw);
 	/* never exit with a firmware callback pending */
 	wait_for_completion(&padapter->rtl8712_fw_ready);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 015/149] staging: r8712u: Fix regression in signal level after commit c6dc001
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (13 preceding siblings ...)
  2012-03-30 19:48 ` [ 014/149] staging: r8712u: Fix regression introduced by commit a5ee652 Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 016/149] usb: dwc3: fix bogus test in dwc3_gadget_start_isoc Greg KH
                   ` (133 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Larry Finger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Larry Finger <Larry.Finger@lwfinger.net>

commit da3e6ec2f443ac00aa623c5921e3521f5f38efe4 upstream.

In commit c6dc001 "staging: r8712u: Merging Realtek's latest (v2.6.6).
Various fixes", the returned qual.qual member of the iw_statistics
struct was changed. For strong signals, this change made no difference;
however for medium and weak signals it results in a low signal that
shows considerable fluctuation, When using wicd for a medium-strength
AP, the value reported in the status line is reduced from 100% to 60% by
this bug.

This problem is reported in https://bugzilla.kernel.org/show_bug.cgi?id=42826.

Reported-and-tested-by: Robert Crawford <wrc1944@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/rtl8712/rtl871x_ioctl_linux.c |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

--- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
+++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
@@ -2380,13 +2380,7 @@ static struct iw_statistics *r871x_get_w
 		tmp_qual = padapter->recvpriv.signal;
 		tmp_noise = padapter->recvpriv.noise;
 		piwstats->qual.level = tmp_level;
-		/*piwstats->qual.qual = tmp_qual;
-		 * The NetworkManager of Fedora 10, 13 will use the link
-		 * quality for its display.
-		 * So, use the fw_rssi on link quality variable because
-		 * fw_rssi will be updated per 2 seconds.
-		 */
-		piwstats->qual.qual = tmp_level;
+		piwstats->qual.qual = tmp_qual;
 		piwstats->qual.noise = tmp_noise;
 	}
 	piwstats->qual.updated = IW_QUAL_ALL_UPDATED;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 016/149] usb: dwc3: fix bogus test in dwc3_gadget_start_isoc
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (14 preceding siblings ...)
  2012-03-30 19:48 ` [ 015/149] staging: r8712u: Fix regression in signal level after commit c6dc001 Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 017/149] usb: dwc3: use proper function for setting endpoint name Greg KH
                   ` (132 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Paul Zimmerman, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Paul Zimmerman <Paul.Zimmerman@synopsys.com>

commit 9bafa56c7cee5c6fa68de5924220abb220c7e229 upstream.

Zero is a valid value for a microframe number. So remove the bogus
test for non-zero in dwc3_gadget_start_isoc().

Signed-off-by: Paul Zimmerman <paulz@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/dwc3/gadget.c |   16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1405,7 +1405,7 @@ static void dwc3_endpoint_transfer_compl
 static void dwc3_gadget_start_isoc(struct dwc3 *dwc,
 		struct dwc3_ep *dep, const struct dwc3_event_depevt *event)
 {
-	u32 uf;
+	u32 uf, mask;
 
 	if (list_empty(&dep->request_list)) {
 		dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n",
@@ -1413,16 +1413,10 @@ static void dwc3_gadget_start_isoc(struc
 		return;
 	}
 
-	if (event->parameters) {
-		u32 mask;
-
-		mask = ~(dep->interval - 1);
-		uf = event->parameters & mask;
-		/* 4 micro frames in the future */
-		uf += dep->interval * 4;
-	} else {
-		uf = 0;
-	}
+	mask = ~(dep->interval - 1);
+	uf = event->parameters & mask;
+	/* 4 micro frames in the future */
+	uf += dep->interval * 4;
 
 	__dwc3_gadget_kick_transfer(dep, uf, 1);
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 017/149] usb: dwc3: use proper function for setting endpoint name
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (15 preceding siblings ...)
  2012-03-30 19:48 ` [ 016/149] usb: dwc3: fix bogus test in dwc3_gadget_start_isoc Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48   ` Greg KH
                   ` (131 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Anton Tikhomirov, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Anton Tikhomirov <av.tikhomirov@samsung.com>

commit 27a78d6a283d6782438f72306746afe4bf44c215 upstream.

It's wrong to use the size of array as an argument for strncat.
Memory corruption is possible. strlcat is exactly what we need here.

Signed-off-by: Anton Tikhomirov <av.tikhomirov@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/dwc3/gadget.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -449,16 +449,16 @@ static int dwc3_gadget_ep_enable(struct
 
 	switch (usb_endpoint_type(desc)) {
 	case USB_ENDPOINT_XFER_CONTROL:
-		strncat(dep->name, "-control", sizeof(dep->name));
+		strlcat(dep->name, "-control", sizeof(dep->name));
 		break;
 	case USB_ENDPOINT_XFER_ISOC:
-		strncat(dep->name, "-isoc", sizeof(dep->name));
+		strlcat(dep->name, "-isoc", sizeof(dep->name));
 		break;
 	case USB_ENDPOINT_XFER_BULK:
-		strncat(dep->name, "-bulk", sizeof(dep->name));
+		strlcat(dep->name, "-bulk", sizeof(dep->name));
 		break;
 	case USB_ENDPOINT_XFER_INT:
-		strncat(dep->name, "-int", sizeof(dep->name));
+		strlcat(dep->name, "-int", sizeof(dep->name));
 		break;
 	default:
 		dev_err(dwc->dev, "invalid endpoint transfer type\n");



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 018/149] usb: musb: Reselect index reg in interrupt context
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
@ 2012-03-30 19:48   ` Greg KH
  2012-03-30 19:48 ` [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems Greg KH
                     ` (147 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Supriya Karanth, Praveena Nadahally,
	srinidhi kasagar, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Supriya Karanth <supriya.karanth@stericsson.com>

commit 39287076e46d2c19aaceaa6f0a44168ae4d257ec upstream.

musb INDEX register is getting modified/corrupted during temporary
un-locking in a SMP system. Set this register with proper value
after re-acquiring the lock

Scenario:
---------
CPU1 is handling a data transfer completion interrupt received for
the CLASS1 EP
CPU2 is handling a CLASS2 thread which is queuing data to musb for
transfer

Below is the error sequence:

         CPU1                   |             CPU2
--------------------------------------------------------------------
Data transfer completion inter- |
rupt recieved.                  |
                                |
musb INDEX reg set to CLASS1 EP |
                                |
musb LOCK is acquired.          |
                                |
                                | CLASS2 thread queues data.
                                |
                                | CLASS2 thread tries to acquire musb
                                | LOCK but lock is already taken by
                                | CLASS1, so CLASS2 thread is
                                | spinning.
                                |
>From Interrupt Context musb     |
giveback function is called     |
                                |
The giveback function releases  | CLASS2 thread now acquires LOCK
LOCK                            |
                                |
ClASS1 Request's completion cal-| ClASS2 schedules the data transfer and
lback is called                 | sets the MUSB INDEX to Class2 EP number
                                |
Interrupt handler for CLASS1 EP |
tries to acquire LOCK and is    |
spinning                        |
                                |
Interrupt for Class1 EP acquires| Class2 completes the scheduling etc and
the MUSB LOCK                   | releases the musb LOCK
                                |
Interrupt for Class1 EP schedul-|
es the next data transfer       |
but musb INDEX register is still|
set to CLASS2 EP                |

Since the MUSB INDEX register is set to a different endpoint, we
read and modify the wrong registers. Hence data transfer will not
happen properly. This results in unpredictable behavior

So, the MUSB INDEX register is set to proper value again when
interrupt re-acquires the lock

Signed-off-by: Supriya Karanth <supriya.karanth@stericsson.com>
Signed-off-by: Praveena Nadahally <praveen.nadahally@stericsson.com>
Reviewed-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>

---
 drivers/usb/musb/musb_gadget.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -576,6 +576,15 @@ void musb_g_tx(struct musb *musb, u8 epn
 
 		if (request->actual == request->length) {
 			musb_g_giveback(musb_ep, request, 0);
+			/*
+			 * In the giveback function the MUSB lock is
+			 * released and acquired after sometime. During
+			 * this time period the INDEX register could get
+			 * changed by the gadget_queue function especially
+			 * on SMP systems. Reselect the INDEX to be sure
+			 * we are reading/modifying the right registers
+			 */
+			musb_ep_select(mbase, epnum);
 			req = musb_ep->desc ? next_request(musb_ep) : NULL;
 			if (!req) {
 				dev_dbg(musb->controller, "%s idle now\n",
@@ -985,6 +994,15 @@ void musb_g_rx(struct musb *musb, u8 epn
 		}
 #endif
 		musb_g_giveback(musb_ep, request, 0);
+		/*
+		 * In the giveback function the MUSB lock is
+		 * released and acquired after sometime. During
+		 * this time period the INDEX register could get
+		 * changed by the gadget_queue function especially
+		 * on SMP systems. Reselect the INDEX to be sure
+		 * we are reading/modifying the right registers
+		 */
+		musb_ep_select(mbase, epnum);
 
 		req = next_request(musb_ep);
 		if (!req)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 018/149] usb: musb: Reselect index reg in interrupt context
@ 2012-03-30 19:48   ` Greg KH
  0 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Supriya Karanth, Praveena Nadahally,
	srinidhi kasagar, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Supriya Karanth <supriya.karanth@stericsson.com>

commit 39287076e46d2c19aaceaa6f0a44168ae4d257ec upstream.

musb INDEX register is getting modified/corrupted during temporary
un-locking in a SMP system. Set this register with proper value
after re-acquiring the lock

Scenario:
---------
CPU1 is handling a data transfer completion interrupt received for
the CLASS1 EP
CPU2 is handling a CLASS2 thread which is queuing data to musb for
transfer

Below is the error sequence:

         CPU1                   |             CPU2
--------------------------------------------------------------------
Data transfer completion inter- |
rupt recieved.                  |
                                |
musb INDEX reg set to CLASS1 EP |
                                |
musb LOCK is acquired.          |
                                |
                                | CLASS2 thread queues data.
                                |
                                | CLASS2 thread tries to acquire musb
                                | LOCK but lock is already taken by
                                | CLASS1, so CLASS2 thread is
                                | spinning.
                                |
>>From Interrupt Context musb     |
giveback function is called     |
                                |
The giveback function releases  | CLASS2 thread now acquires LOCK
LOCK                            |
                                |
ClASS1 Request's completion cal-| ClASS2 schedules the data transfer and
lback is called                 | sets the MUSB INDEX to Class2 EP number
                                |
Interrupt handler for CLASS1 EP |
tries to acquire LOCK and is    |
spinning                        |
                                |
Interrupt for Class1 EP acquires| Class2 completes the scheduling etc and
the MUSB LOCK                   | releases the musb LOCK
                                |
Interrupt for Class1 EP schedul-|
es the next data transfer       |
but musb INDEX register is still|
set to CLASS2 EP                |

Since the MUSB INDEX register is set to a different endpoint, we
read and modify the wrong registers. Hence data transfer will not
happen properly. This results in unpredictable behavior

So, the MUSB INDEX register is set to proper value again when
interrupt re-acquires the lock

Signed-off-by: Supriya Karanth <supriya.karanth@stericsson.com>
Signed-off-by: Praveena Nadahally <praveen.nadahally@stericsson.com>
Reviewed-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>

---
 drivers/usb/musb/musb_gadget.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -576,6 +576,15 @@ void musb_g_tx(struct musb *musb, u8 epn
 
 		if (request->actual == request->length) {
 			musb_g_giveback(musb_ep, request, 0);
+			/*
+			 * In the giveback function the MUSB lock is
+			 * released and acquired after sometime. During
+			 * this time period the INDEX register could get
+			 * changed by the gadget_queue function especially
+			 * on SMP systems. Reselect the INDEX to be sure
+			 * we are reading/modifying the right registers
+			 */
+			musb_ep_select(mbase, epnum);
 			req = musb_ep->desc ? next_request(musb_ep) : NULL;
 			if (!req) {
 				dev_dbg(musb->controller, "%s idle now\n",
@@ -985,6 +994,15 @@ void musb_g_rx(struct musb *musb, u8 epn
 		}
 #endif
 		musb_g_giveback(musb_ep, request, 0);
+		/*
+		 * In the giveback function the MUSB lock is
+		 * released and acquired after sometime. During
+		 * this time period the INDEX register could get
+		 * changed by the gadget_queue function especially
+		 * on SMP systems. Reselect the INDEX to be sure
+		 * we are reading/modifying the right registers
+		 */
+		musb_ep_select(mbase, epnum);
 
 		req = next_request(musb_ep);
 		if (!req)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 019/149] usb: renesas_usbhs: bugfix: add .release function to gpriv->gadget.dev
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (17 preceding siblings ...)
  2012-03-30 19:48   ` Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 020/149] usb: gadgetfs: return number of bytes on ep0 read request Greg KH
                   ` (129 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Kuninori Morimoto, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

commit 3b2a2e47174cd978258bbb0fdf2e2b1b5ec2144c upstream.

This patch fixup below warning on device_unregister()

renesas_usbhs renesas_usbhs.1: host probed
renesas_usbhs renesas_usbhs.1: gadget probed
renesas_usbhs renesas_usbhs.1: irq request err
------------[ cut here ]------------
WARNING: at ${LINUX}/drivers/base/core.c:1)
Device 'gadget' does not have a release() function, it is broken and must be fi.
Modules linked in:
[<c000e25c>] (unwind_backtrace+0x0/0xe4) from [<c0016960>] (warn_slowpath_commo)
[<c0016960>] (warn_slowpath_common+0x4c/0x64) from [<c00169f8>] (warn_slowpath_)
[<c00169f8>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0185b80>] (device_release+0x)
[<c0185b80>] (device_release+0x70/0x84) from [<c013e300>] (kobject_cleanup+0x58)
[<c013e300>] (kobject_cleanup+0x58/0x6c) from [<c01cba14>] (usbhs_mod_gadget_re)
[<c01cba14>] (usbhs_mod_gadget_remove+0x3c/0x6c) from [<c01c8384>] (usbhs_mod_p)
[<c01c8384>] (usbhs_mod_probe+0x68/0x80) from [<c01c7f84>] (usbhs_probe+0x1cc/0)
...

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/renesas_usbhs/mod_gadget.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/usb/renesas_usbhs/mod_gadget.c
+++ b/drivers/usb/renesas_usbhs/mod_gadget.c
@@ -816,6 +816,11 @@ static int usbhsg_stop(struct usbhs_priv
 	return usbhsg_try_stop(priv, USBHSG_STATUS_STARTED);
 }
 
+static void usbhs_mod_gadget_release(struct device *pdev)
+{
+	/* do nothing */
+}
+
 int usbhs_mod_gadget_probe(struct usbhs_priv *priv)
 {
 	struct usbhsg_gpriv *gpriv;
@@ -864,6 +869,7 @@ int usbhs_mod_gadget_probe(struct usbhs_
 	 */
 	dev_set_name(&gpriv->gadget.dev, "gadget");
 	gpriv->gadget.dev.parent	= dev;
+	gpriv->gadget.dev.release	= usbhs_mod_gadget_release;
 	gpriv->gadget.name		= "renesas_usbhs_udc";
 	gpriv->gadget.ops		= &usbhsg_gadget_ops;
 	gpriv->gadget.is_dualspeed	= 1;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 020/149] usb: gadgetfs: return number of bytes on ep0 read request
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (18 preceding siblings ...)
  2012-03-30 19:48 ` [ 019/149] usb: renesas_usbhs: bugfix: add .release function to gpriv->gadget.dev Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 021/149] USB: gadget: Make g_hid device class conform to spec Greg KH
                   ` (128 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Thomas Faber

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Thomas Faber <thfabba@gmx.de>

commit 85b4b3c8c189e0159101f7628a71411af072ff69 upstream.

A read from GadgetFS endpoint 0 during the data stage of a control
request would always return 0 on success (as returned by
wait_event_interruptible) despite having written data into the user
buffer.
This patch makes it correctly set the return value to the number of
bytes read.

Signed-off-by: Thomas Faber <thfabba@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/inode.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/usb/gadget/inode.c
+++ b/drivers/usb/gadget/inode.c
@@ -1043,6 +1043,8 @@ ep0_read (struct file *fd, char __user *
 // FIXME don't call this with the spinlock held ...
 				if (copy_to_user (buf, dev->req->buf, len))
 					retval = -EFAULT;
+				else
+					retval = len;
 				clean_req (dev->gadget->ep0, dev->req);
 				/* NOTE userspace can't yet choose to stall */
 			}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 021/149] USB: gadget: Make g_hid device class conform to spec.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (19 preceding siblings ...)
  2012-03-30 19:48 ` [ 020/149] usb: gadgetfs: return number of bytes on ep0 read request Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 022/149] futex: Cover all PI opcodes with cmpxchg enabled check Greg KH
                   ` (127 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Orjan Friberg, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Orjan Friberg <of@flatfrog.com>

commit 33d2832ab0149a26418d360af3c444969a63fb28 upstream.

HID devices should specify this in their interface descriptors, not in the
device descriptor. This fixes a "missing hardware id" bug under Windows 7 with
a VIA VL800 (3.0) controller.

Signed-off-by: Orjan Friberg <of@flatfrog.com>
Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/hid.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/usb/gadget/hid.c
+++ b/drivers/usb/gadget/hid.c
@@ -60,9 +60,9 @@ static struct usb_device_descriptor devi
 	/* .bDeviceClass =		USB_CLASS_COMM, */
 	/* .bDeviceSubClass =	0, */
 	/* .bDeviceProtocol =	0, */
-	.bDeviceClass =		0xEF,
-	.bDeviceSubClass =	2,
-	.bDeviceProtocol =	1,
+	.bDeviceClass =		USB_CLASS_PER_INTERFACE,
+	.bDeviceSubClass =	0,
+	.bDeviceProtocol =	0,
 	/* .bMaxPacketSize0 = f(hardware) */
 
 	/* Vendor and product id can be overridden by module parameters.  */



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 022/149] futex: Cover all PI opcodes with cmpxchg enabled check
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (20 preceding siblings ...)
  2012-03-30 19:48 ` [ 021/149] USB: gadget: Make g_hid device class conform to spec Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 023/149] sysfs: Fix memory leak in sysfs_sd_setsecdata() Greg KH
                   ` (126 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Thomas Gleixner, Peter Zijlstra, Darren Hart

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Thomas Gleixner <tglx@linutronix.de>

commit 59263b513c11398cd66a52d4c5b2b118ce1e0359 upstream.

Some of the newer futex PI opcodes do not check the cmpxchg enabled
variable and call unconditionally into the handling functions. Cover
all PI opcodes in a separate check.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/futex.c |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -2641,6 +2641,16 @@ long do_futex(u32 __user *uaddr, int op,
 	}
 
 	switch (cmd) {
+	case FUTEX_LOCK_PI:
+	case FUTEX_UNLOCK_PI:
+	case FUTEX_TRYLOCK_PI:
+	case FUTEX_WAIT_REQUEUE_PI:
+	case FUTEX_CMP_REQUEUE_PI:
+		if (!futex_cmpxchg_enabled)
+			return -ENOSYS;
+	}
+
+	switch (cmd) {
 	case FUTEX_WAIT:
 		val3 = FUTEX_BITSET_MATCH_ANY;
 	case FUTEX_WAIT_BITSET:
@@ -2661,16 +2671,13 @@ long do_futex(u32 __user *uaddr, int op,
 		ret = futex_wake_op(uaddr, flags, uaddr2, val, val2, val3);
 		break;
 	case FUTEX_LOCK_PI:
-		if (futex_cmpxchg_enabled)
-			ret = futex_lock_pi(uaddr, flags, val, timeout, 0);
+		ret = futex_lock_pi(uaddr, flags, val, timeout, 0);
 		break;
 	case FUTEX_UNLOCK_PI:
-		if (futex_cmpxchg_enabled)
-			ret = futex_unlock_pi(uaddr, flags);
+		ret = futex_unlock_pi(uaddr, flags);
 		break;
 	case FUTEX_TRYLOCK_PI:
-		if (futex_cmpxchg_enabled)
-			ret = futex_lock_pi(uaddr, flags, 0, timeout, 1);
+		ret = futex_lock_pi(uaddr, flags, 0, timeout, 1);
 		break;
 	case FUTEX_WAIT_REQUEUE_PI:
 		val3 = FUTEX_BITSET_MATCH_ANY;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 023/149] sysfs: Fix memory leak in sysfs_sd_setsecdata().
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (21 preceding siblings ...)
  2012-03-30 19:48 ` [ 022/149] futex: Cover all PI opcodes with cmpxchg enabled check Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 024/149] tty: moxa: fix bit test in moxa_start() Greg KH
                   ` (125 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Masami Ichikawa

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Masami Ichikawa <masami256@gmail.com>

commit 93518dd2ebafcc761a8637b2877008cfd748c202 upstream.

This patch fixies follwing two memory leak patterns that reported by kmemleak.
sysfs_sd_setsecdata() is called during sys_lsetxattr() operation.
It checks sd->s_iattr is NULL or not. Then if it is NULL, it calls
sysfs_init_inode_attrs() to allocate memory.
That code is this.

iattrs = sd->s_iattr;
if (!iattrs)
                iattrs = sysfs_init_inode_attrs(sd);

The iattrs recieves sysfs_init_inode_attrs()'s result,  but sd->s_iattr
doesn't know the address. so it needs to set correct address to
sd->s_iattr to free memory in other function.

unreferenced object 0xffff880250b73e60 (size 32):
  comm "systemd", pid 1, jiffies 4294683888 (age 94.553s)
  hex dump (first 32 bytes):
    73 79 73 74 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f  system_u:object_
    72 3a 73 79 73 66 73 5f 74 3a 73 30 00 00 00 00  r:sysfs_t:s0....
  backtrace:
    [<ffffffff814cb1d0>] kmemleak_alloc+0x73/0x98
    [<ffffffff811270ab>] __kmalloc+0x100/0x12c
    [<ffffffff8120775a>] context_struct_to_string+0x106/0x210
    [<ffffffff81207cc1>] security_sid_to_context_core+0x10b/0x129
    [<ffffffff812090ef>] security_sid_to_context+0x10/0x12
    [<ffffffff811fb0da>] selinux_inode_getsecurity+0x7d/0xa8
    [<ffffffff811fb127>] selinux_inode_getsecctx+0x22/0x2e
    [<ffffffff811f4d62>] security_inode_getsecctx+0x16/0x18
    [<ffffffff81191dad>] sysfs_setxattr+0x96/0x117
    [<ffffffff811542f0>] __vfs_setxattr_noperm+0x73/0xd9
    [<ffffffff811543d9>] vfs_setxattr+0x83/0xa1
    [<ffffffff811544c6>] setxattr+0xcf/0x101
    [<ffffffff81154745>] sys_lsetxattr+0x6a/0x8f
    [<ffffffff814efda9>] system_call_fastpath+0x16/0x1b
    [<ffffffffffffffff>] 0xffffffffffffffff
unreferenced object 0xffff88024163c5a0 (size 96):
  comm "systemd", pid 1, jiffies 4294683888 (age 94.553s)
  hex dump (first 32 bytes):
    00 00 00 00 ed 41 00 00 00 00 00 00 00 00 00 00  .....A..........
    00 00 00 00 00 00 00 00 0c 64 42 4f 00 00 00 00  .........dBO....
  backtrace:
    [<ffffffff814cb1d0>] kmemleak_alloc+0x73/0x98
    [<ffffffff81127402>] kmem_cache_alloc_trace+0xc4/0xee
    [<ffffffff81191cbe>] sysfs_init_inode_attrs+0x2a/0x83
    [<ffffffff81191dd6>] sysfs_setxattr+0xbf/0x117
    [<ffffffff811542f0>] __vfs_setxattr_noperm+0x73/0xd9
    [<ffffffff811543d9>] vfs_setxattr+0x83/0xa1
    [<ffffffff811544c6>] setxattr+0xcf/0x101
    [<ffffffff81154745>] sys_lsetxattr+0x6a/0x8f
    [<ffffffff814efda9>] system_call_fastpath+0x16/0x1b
    [<ffffffffffffffff>] 0xffffffffffffffff
`

Signed-off-by: Masami Ichikawa <masami256@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/sysfs/inode.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -136,12 +136,13 @@ static int sysfs_sd_setsecdata(struct sy
 	void *old_secdata;
 	size_t old_secdata_len;
 
-	iattrs = sd->s_iattr;
-	if (!iattrs)
-		iattrs = sysfs_init_inode_attrs(sd);
-	if (!iattrs)
-		return -ENOMEM;
+	if (!sd->s_iattr) {
+		sd->s_iattr = sysfs_init_inode_attrs(sd);
+		if (!sd->s_iattr)
+			return -ENOMEM;
+	}
 
+	iattrs = sd->s_iattr;
 	old_secdata = iattrs->ia_secdata;
 	old_secdata_len = iattrs->ia_secdata_len;
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 024/149] tty: moxa: fix bit test in moxa_start()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (22 preceding siblings ...)
  2012-03-30 19:48 ` [ 023/149] sysfs: Fix memory leak in sysfs_sd_setsecdata() Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 025/149] TTY: Wrong unicode value copied in con_set_unimap() Greg KH
                   ` (124 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Dan Carpenter, Jiri Slaby

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Carpenter <dan.carpenter@oracle.com>

commit 58112dfbfe02d803566a2c6c8bd97b5fa3c62cdc upstream.

This is supposed to be doing a shift before the comparison instead of
just doing a bitwise AND directly.  The current code means the start()
just returns without doing anything.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/tty/moxa.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/tty/moxa.c
+++ b/drivers/tty/moxa.c
@@ -1331,7 +1331,7 @@ static void moxa_start(struct tty_struct
 	if (ch == NULL)
 		return;
 
-	if (!(ch->statusflags & TXSTOPPED))
+	if (!test_bit(TXSTOPPED, &ch->statusflags))
 		return;
 
 	MoxaPortTxEnable(ch);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 025/149] TTY: Wrong unicode value copied in con_set_unimap()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (23 preceding siblings ...)
  2012-03-30 19:48 ` [ 024/149] tty: moxa: fix bit test in moxa_start() Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:48 ` [ 026/149] USB: serial: fix console error reporting Greg KH
                   ` (123 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Liz Clark

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Liz Clark <liz.clark@hp.com>

commit 4a4c61b7ce26bfc9d49ea4bd121d52114bad9f99 upstream.

Bugzilla 40012: PIO_UNIMAP bug: error updating Unicode-to-font map
https://bugzilla.kernel.org/show_bug.cgi?id=40012

The unicode font map for the virtual console is a 32x32x64 table which
allocates rows dynamically as entries are added.  The unicode value
increases sequentially and should count all entries even in empty
rows.  The defect is when copying the unicode font map in con_set_unimap(),
the unicode value is not incremented properly.  The wrong unicode value
is entered in the new font map.

Signed-off-by: Liz Clark <liz.clark@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/tty/vt/consolemap.c |   51 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 43 insertions(+), 8 deletions(-)

--- a/drivers/tty/vt/consolemap.c
+++ b/drivers/tty/vt/consolemap.c
@@ -516,6 +516,7 @@ int con_set_unimap(struct vc_data *vc, u
 	int err = 0, err1, i;
 	struct uni_pagedir *p, *q;
 
+	/* Save original vc_unipagdir_loc in case we allocate a new one */
 	p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
 	if (p->readonly) return -EIO;
 	
@@ -528,26 +529,57 @@ int con_set_unimap(struct vc_data *vc, u
 		err1 = con_clear_unimap(vc, NULL);
 		if (err1) return err1;
 		
+		/*
+		 * Since refcount was > 1, con_clear_unimap() allocated a
+		 * a new uni_pagedir for this vc.  Re: p != q
+		 */
 		q = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
-		for (i = 0, l = 0; i < 32; i++)
+
+		/*
+		 * uni_pgdir is a 32*32*64 table with rows allocated
+		 * when its first entry is added.  The unicode value must
+		 * still be incremented for empty rows.  We are copying
+		 * entries from "p" (old) to "q" (new).
+		 */
+		l = 0;		/* unicode value */
+		for (i = 0; i < 32; i++)
 		if ((p1 = p->uni_pgdir[i]))
 			for (j = 0; j < 32; j++)
-			if ((p2 = p1[j]))
+			if ((p2 = p1[j])) {
 				for (k = 0; k < 64; k++, l++)
 				if (p2[k] != 0xffff) {
+					/*
+					 * Found one, copy entry for unicode
+					 * l with fontpos value p2[k].
+					 */
 					err1 = con_insert_unipair(q, l, p2[k]);
 					if (err1) {
 						p->refcount++;
 						*vc->vc_uni_pagedir_loc = (unsigned long)p;
 						con_release_unimap(q);
 						kfree(q);
-						return err1; 
+						return err1;
 					}
-              			}
-              	p = q;
-	} else if (p == dflt)
+				}
+			} else {
+				/* Account for row of 64 empty entries */
+				l += 64;
+			}
+		else
+			/* Account for empty table */
+			l += 32 * 64;
+
+		/*
+		 * Finished copying font table, set vc_uni_pagedir to new table
+		 */
+		p = q;
+	} else if (p == dflt) {
 		dflt = NULL;
-	
+	}
+
+	/*
+	 * Insert user specified unicode pairs into new table.
+	 */
 	while (ct--) {
 		unsigned short unicode, fontpos;
 		__get_user(unicode, &list->unicode);
@@ -557,11 +589,14 @@ int con_set_unimap(struct vc_data *vc, u
 		list++;
 	}
 	
+	/*
+	 * Merge with fontmaps of any other virtual consoles.
+	 */
 	if (con_unify_unimap(vc, p))
 		return err;
 
 	for (i = 0; i <= 3; i++)
-		set_inverse_transl(vc, p, i); /* Update all inverse translations */
+		set_inverse_transl(vc, p, i); /* Update inverse translations */
 	set_inverse_trans_unicode(vc, p);
   
 	return err;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 026/149] USB: serial: fix console error reporting
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (24 preceding siblings ...)
  2012-03-30 19:48 ` [ 025/149] TTY: Wrong unicode value copied in con_set_unimap() Greg KH
@ 2012-03-30 19:48 ` Greg KH
  2012-03-30 19:49 ` [ 027/149] cdc-wdm: Fix more races on the read path Greg KH
                   ` (122 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:48 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Stephen Hemminger, Johan Hovold

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Johan Hovold <jhovold@gmail.com>

commit 548dd4b6da8a8e428453d55f7fa7b8a46498d147 upstream.

Do not report errors in write path if port is used as a console as this
may trigger the same error (and error report) resulting in a loop.

Reported-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/generic.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -215,8 +215,10 @@ retry:
 	clear_bit(i, &port->write_urbs_free);
 	result = usb_submit_urb(urb, GFP_ATOMIC);
 	if (result) {
-		dev_err(&port->dev, "%s - error submitting urb: %d\n",
+		if (!port->port.console) {
+			dev_err(&port->dev, "%s - error submitting urb: %d\n",
 						__func__, result);
+		}
 		set_bit(i, &port->write_urbs_free);
 		spin_lock_irqsave(&port->lock, flags);
 		port->tx_bytes -= count;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 027/149] cdc-wdm: Fix more races on the read path
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (25 preceding siblings ...)
  2012-03-30 19:48 ` [ 026/149] USB: serial: fix console error reporting Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 028/149] cdc-wdm: Dont clear WDM_READ unless entire read buffer is emptied Greg KH
                   ` (121 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ben Hutchings, Bjørn Mork, Oliver Neukum

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2156 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ben Hutchings <ben@decadent.org.uk>

commit 711c68b3c0f7a924ffbee4aa962d8f62b85188ff upstream.

We must not allow the input buffer length to change while we're
shuffling the buffer contents.  We also mustn't clear the WDM_READ
flag after more data might have arrived.  Therefore move both of these
into the spinlocked region at the bottom of wdm_read().

When reading desc->length without holding the iuspin lock, use
ACCESS_ONCE() to ensure the compiler doesn't re-read it with
inconsistent results.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Bjørn Mork <bjorn@mork.no>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/class/cdc-wdm.c |   16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -397,7 +397,7 @@ outnl:
 static ssize_t wdm_read
 (struct file *file, char __user *buffer, size_t count, loff_t *ppos)
 {
-	int rv, cntr = 0;
+	int rv, cntr;
 	int i = 0;
 	struct wdm_device *desc = file->private_data;
 
@@ -406,7 +406,8 @@ static ssize_t wdm_read
 	if (rv < 0)
 		return -ERESTARTSYS;
 
-	if (desc->length == 0) {
+	cntr = ACCESS_ONCE(desc->length);
+	if (cntr == 0) {
 		desc->read = 0;
 retry:
 		if (test_bit(WDM_DISCONNECTING, &desc->flags)) {
@@ -457,25 +458,30 @@ retry:
 			goto retry;
 		}
 		clear_bit(WDM_READ, &desc->flags);
+		cntr = desc->length;
 		spin_unlock_irq(&desc->iuspin);
 	}
 
-	cntr = count > desc->length ? desc->length : count;
+	if (cntr > count)
+		cntr = count;
 	rv = copy_to_user(buffer, desc->ubuf, cntr);
 	if (rv > 0) {
 		rv = -EFAULT;
 		goto err;
 	}
 
+	spin_lock_irq(&desc->iuspin);
+
 	for (i = 0; i < desc->length - cntr; i++)
 		desc->ubuf[i] = desc->ubuf[i + cntr];
 
-	spin_lock_irq(&desc->iuspin);
 	desc->length -= cntr;
-	spin_unlock_irq(&desc->iuspin);
 	/* in case we had outstanding data */
 	if (!desc->length)
 		clear_bit(WDM_READ, &desc->flags);
+
+	spin_unlock_irq(&desc->iuspin);
+
 	rv = cntr;
 
 err:



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 028/149] cdc-wdm: Dont clear WDM_READ unless entire read buffer is emptied
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (26 preceding siblings ...)
  2012-03-30 19:49 ` [ 027/149] cdc-wdm: Fix more races on the read path Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 029/149] usb: fsl_udc_core: Fix scheduling while atomic dump message Greg KH
                   ` (120 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ben Hutchings, Bjørn Mork, Oliver Neukum

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 790 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ben Hutchings <ben@decadent.org.uk>

commit b7a205545345578712611106b371538992e142ff upstream.

The WDM_READ flag is cleared later iff desc->length is reduced to 0.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Bjørn Mork <bjorn@mork.no>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/class/cdc-wdm.c |    1 -
 1 file changed, 1 deletion(-)

--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -457,7 +457,6 @@ retry:
 			spin_unlock_irq(&desc->iuspin);
 			goto retry;
 		}
-		clear_bit(WDM_READ, &desc->flags);
 		cntr = desc->length;
 		spin_unlock_irq(&desc->iuspin);
 	}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 029/149] usb: fsl_udc_core: Fix scheduling while atomic dump message
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (27 preceding siblings ...)
  2012-03-30 19:49 ` [ 028/149] cdc-wdm: Dont clear WDM_READ unless entire read buffer is emptied Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 030/149] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM Greg KH
                   ` (119 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Peter Chen, Li Yang, Felipe Balbi

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peter Chen <peter.chen@freescale.com>

commit c5cc5ed86667d4ae74fe40ee4ed893f4b46aba05 upstream.

When loading g_ether gadget, there is below message:

Backtrace:
[<80012248>] (dump_backtrace+0x0/0x10c) from [<803cb42c>] (dump_stack+0x18/0x1c)
r7:00000000 r6:80512000 r5:8052bef8 r4:80513f30
[<803cb414>] (dump_stack+0x0/0x1c) from [<8000feb4>] (show_regs+0x44/0x50)
[<8000fe70>] (show_regs+0x0/0x50) from [<8004c840>] (__schedule_bug+0x68/0x84)
r5:8052bef8 r4:80513f30
[<8004c7d8>] (__schedule_bug+0x0/0x84) from [<803cd0e4>] (__schedule+0x4b0/0x528)
r5:8052bef8 r4:809aad00
[<803ccc34>] (__schedule+0x0/0x528) from [<803cd214>] (_cond_resched+0x44/0x58)
[<803cd1d0>] (_cond_resched+0x0/0x58) from [<800a9488>] (dma_pool_alloc+0x184/0x250)
 r5:9f9b4000 r4:9fb4fb80
 [<800a9304>] (dma_pool_alloc+0x0/0x250) from [<802a8ad8>] (fsl_req_to_dtd+0xac/0x180)
[<802a8a2c>] (fsl_req_to_dtd+0x0/0x180) from [<802a8ce4>] (fsl_ep_queue+0x138/0x274)
[<802a8bac>] (fsl_ep_queue+0x0/0x274) from [<7f004328>] (composite_setup+0x2d4/0xfac [g_ether])
[<7f004054>] (composite_setup+0x0/0xfac [g_ether]) from [<802a9bb4>] (fsl_udc_irq+0x8dc/0xd38)
[<802a92d8>] (fsl_udc_irq+0x0/0xd38) from [<800704f8>] (handle_irq_event_percpu+0x54/0x188)
[<800704a4>] (handle_irq_event_percpu+0x0/0x188) from [<80070674>] (handle_irq_event+0x48/0x68)
[<8007062c>] (handle_irq_event+0x0/0x68) from [<800738ec>] (handle_level_irq+0xb4/0x138)
 r5:80514f94 r4:80514f40
 [<80073838>] (handle_level_irq+0x0/0x138) from [<8006ffa4>] (generic_handle_irq+0x38/0x44)
 r7:00000012 r6:80510b1c r5:80529860 r4:80512000
 [<8006ff6c>] (generic_handle_irq+0x0/0x44) from [<8000f4c4>] (handle_IRQ+0x54/0xb4)
[<8000f470>] (handle_IRQ+0x0/0xb4) from [<800085b8>] (tzic_handle_irq+0x64/0x94)
 r9:412fc085 r8:00000000 r7:80513f30 r6:00000001 r5:00000000
 r4:00000000
 [<80008554>] (tzic_handle_irq+0x0/0x94) from [<8000e680>] (__irq_svc+0x40/0x60)

The reason of above dump message is calling dma_poll_alloc with can-schedule
mem_flags at atomic context.

To fix this problem, below changes are made:
- fsl_req_to_dtd doesn't need to be protected by spin_lock_irqsave,
as struct usb_request can be access at process context. Move lock
to beginning of hardware visit (fsl_queue_td).
- Change the memory flag which using to allocate dTD descriptor buffer,
the memory flag can be from gadget layer.

It is tested at i.mx51 bbg board with g_mass_storage, g_ether, g_serial.

Signed-off-by: Peter Chen <peter.chen@freescale.com>
Acked-by: Li Yang <leoli@freescale.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/fsl_udc_core.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -768,7 +768,7 @@ static void fsl_queue_td(struct fsl_ep *
  * @is_last: return flag if it is the last dTD of the request
  * return: pointer to the built dTD */
 static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length,
-		dma_addr_t *dma, int *is_last)
+		dma_addr_t *dma, int *is_last, gfp_t gfp_flags)
 {
 	u32 swap_temp;
 	struct ep_td_struct *dtd;
@@ -777,7 +777,7 @@ static struct ep_td_struct *fsl_build_dt
 	*length = min(req->req.length - req->req.actual,
 			(unsigned)EP_MAX_LENGTH_TRANSFER);
 
-	dtd = dma_pool_alloc(udc_controller->td_pool, GFP_KERNEL, dma);
+	dtd = dma_pool_alloc(udc_controller->td_pool, gfp_flags, dma);
 	if (dtd == NULL)
 		return dtd;
 
@@ -827,7 +827,7 @@ static struct ep_td_struct *fsl_build_dt
 }
 
 /* Generate dtd chain for a request */
-static int fsl_req_to_dtd(struct fsl_req *req)
+static int fsl_req_to_dtd(struct fsl_req *req, gfp_t gfp_flags)
 {
 	unsigned	count;
 	int		is_last;
@@ -836,7 +836,7 @@ static int fsl_req_to_dtd(struct fsl_req
 	dma_addr_t dma;
 
 	do {
-		dtd = fsl_build_dtd(req, &count, &dma, &is_last);
+		dtd = fsl_build_dtd(req, &count, &dma, &is_last, gfp_flags);
 		if (dtd == NULL)
 			return -ENOMEM;
 
@@ -910,13 +910,11 @@ fsl_ep_queue(struct usb_ep *_ep, struct
 	req->req.actual = 0;
 	req->dtd_count = 0;
 
-	spin_lock_irqsave(&udc->lock, flags);
-
 	/* build dtds and push them to device queue */
-	if (!fsl_req_to_dtd(req)) {
+	if (!fsl_req_to_dtd(req, gfp_flags)) {
+		spin_lock_irqsave(&udc->lock, flags);
 		fsl_queue_td(ep, req);
 	} else {
-		spin_unlock_irqrestore(&udc->lock, flags);
 		return -ENOMEM;
 	}
 
@@ -1295,7 +1293,7 @@ static int ep0_prime_status(struct fsl_u
 			ep_is_in(ep) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
 	req->mapped = 1;
 
-	if (fsl_req_to_dtd(req) == 0)
+	if (fsl_req_to_dtd(req, GFP_ATOMIC) == 0)
 		fsl_queue_td(ep, req);
 	else
 		return -ENOMEM;
@@ -1379,7 +1377,7 @@ static void ch9getstatus(struct fsl_udc
 	req->mapped = 1;
 
 	/* prime the data phase */
-	if ((fsl_req_to_dtd(req) == 0))
+	if ((fsl_req_to_dtd(req, GFP_ATOMIC) == 0))
 		fsl_queue_td(ep, req);
 	else			/* no mem */
 		goto stall;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 030/149] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (28 preceding siblings ...)
  2012-03-30 19:49 ` [ 029/149] usb: fsl_udc_core: Fix scheduling while atomic dump message Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 031/149] USB: ums_realtek: do not use stack memory for DMA in __do_config_autodelink Greg KH
                   ` (118 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Ramneek Mehresh, Peter Chen

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peter Chen <peter.chen@freescale.com>

commit e90fc3cb087ce5c5f81e814358222cd6d197b5db upstream.

When build i.mx platform with imx_v6_v7_defconfig, and after adding
USB Gadget support, it has below build error:

CC      drivers/usb/host/fsl-mph-dr-of.o
drivers/usb/host/fsl-mph-dr-of.c: In function 'fsl_usb2_device_register':
drivers/usb/host/fsl-mph-dr-of.c:97: error: 'struct pdev_archdata'
has no member named 'dma_mask'

It has discussed at: http://www.spinics.net/lists/linux-usb/msg57302.html

For PowerPC, there is dma_mask at struct pdev_archdata, but there is
no dma_mask at struct pdev_archdata for ARM. The pdev_archdata is
related to specific platform, it should NOT be accessed by
cross platform drivers, like USB.

The code for pdev_archdata should be useless, as for PowerPC,
it has already gotten the value for pdev->dev.dma_mask at function
arch_setup_pdev_archdata of arch/powerpc/kernel/setup-common.c.

Tested-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/host/fsl-mph-dr-of.c |    1 -
 1 file changed, 1 deletion(-)

--- a/drivers/usb/host/fsl-mph-dr-of.c
+++ b/drivers/usb/host/fsl-mph-dr-of.c
@@ -94,7 +94,6 @@ struct platform_device * __devinit fsl_u
 	pdev->dev.parent = &ofdev->dev;
 
 	pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask;
-	pdev->dev.dma_mask = &pdev->archdata.dma_mask;
 	*pdev->dev.dma_mask = *ofdev->dev.dma_mask;
 
 	retval = platform_device_add_data(pdev, pdata, sizeof(*pdata));



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 031/149] USB: ums_realtek: do not use stack memory for DMA in __do_config_autodelink
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (29 preceding siblings ...)
  2012-03-30 19:49 ` [ 030/149] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 032/149] USB: qcserial: add several new serial devices Greg KH
                   ` (117 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Josh Boyer

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Josh Boyer <jwboyer@redhat.com>

commit 4898e07174b79013afd2b422ef6c4336ef8e6783 upstream.

__do_config_autodelink passes the data variable to the transport function.
If the calling functions pass a stack variable, this will eventually trigger
a DMA-API debug backtrace for mapping stack memory in the DMA buffer.  Fix
this by calling kmemdup for the passed data instead.

Signed-off-by: Josh Boyer <jwboyer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/storage/realtek_cr.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- a/drivers/usb/storage/realtek_cr.c
+++ b/drivers/usb/storage/realtek_cr.c
@@ -509,9 +509,14 @@ static int __do_config_autodelink(struct
 	int retval;
 	u16 addr = 0xFE47;
 	u8 cmnd[12] = {0};
+	u8 *buf;
 
 	US_DEBUGP("%s, addr = 0x%x, len = %d\n", __FUNCTION__, addr, len);
 
+	buf = kmemdup(data, len, GFP_NOIO);
+	if (!buf)
+		return USB_STOR_TRANSPORT_ERROR;
+
 	cmnd[0] = 0xF0;
 	cmnd[1] = 0x0E;
 	cmnd[2] = (u8)(addr >> 8);
@@ -519,7 +524,8 @@ static int __do_config_autodelink(struct
 	cmnd[4] = (u8)(len >> 8);
 	cmnd[5] = (u8)len;
 
-	retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, data, len, DMA_TO_DEVICE, NULL);
+	retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL);
+	kfree(buf);
 	if (retval != USB_STOR_TRANSPORT_GOOD) {
 		return -EIO;
 	}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 032/149] USB: qcserial: add several new serial devices
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (30 preceding siblings ...)
  2012-03-30 19:49 ` [ 031/149] USB: ums_realtek: do not use stack memory for DMA in __do_config_autodelink Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-04-01 16:00   ` Ben Hutchings
  2012-03-30 19:49 ` [ 033/149] USB: qcserial: dont grab QMI port on Gobi 1000 devices Greg KH
                   ` (116 subsequent siblings)
  148 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Thomas Tuttle

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Thomas Tuttle <ttuttle@chromium.org>

commit 2db4d87070e87d198ab630e66a898b45eff316d9 upstream.

Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/usb/serial/qcserial.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -36,6 +36,11 @@ static const struct usb_device_id id_tab
 	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
 	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
 	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
+	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
+	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi QDL device */
+	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi QDL device */
+	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi QDL device */
+	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi QDL device */
 	{USB_DEVICE(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
 	{USB_DEVICE(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
 	{USB_DEVICE(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
@@ -86,7 +91,16 @@ static const struct usb_device_id id_tab
 	{USB_DEVICE(0x16d8, 0x8002)},	/* CMDTech Gobi 2000 Modem device (VU922) */
 	{USB_DEVICE(0x05c6, 0x9204)},	/* Gobi 2000 QDL device */
 	{USB_DEVICE(0x05c6, 0x9205)},	/* Gobi 2000 Modem device */
+
+	{USB_DEVICE(0x05c6, 0x920c)},	/* Gobi 3000 QDL */
+	{USB_DEVICE(0x05c6, 0x920d)},	/* Gobi 3000 Composite */
+	{USB_DEVICE(0x1410, 0xa020)},   /* Novatel Gobi 3000 QDL */
+	{USB_DEVICE(0x1410, 0xa021)},	/* Novatel Gobi 3000 Composite */
+	{USB_DEVICE(0x413c, 0x8193)},	/* Dell Gobi 3000 QDL */
+	{USB_DEVICE(0x413c, 0x8194)},	/* Dell Gobi 3000 Composite */
 	{USB_DEVICE(0x1199, 0x9013)},	/* Sierra Wireless Gobi 3000 Modem device (MC8355) */
+	{USB_DEVICE(0x12D1, 0x14F0)},	/* Sony Gobi 3000 QDL */
+	{USB_DEVICE(0x12D1, 0x14F1)},	/* Sony Gobi 3000 Composite */
 	{ }				/* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, id_table);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 033/149] USB: qcserial: dont grab QMI port on Gobi 1000 devices
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (31 preceding siblings ...)
  2012-03-30 19:49 ` [ 032/149] USB: qcserial: add several new serial devices Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 034/149] usb-serial: Add support for the Sealevel SeaLINK+8 2038-ROHS device Greg KH
                   ` (115 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Dan Williams

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Williams <dcbw@redhat.com>

commit c192c8e71a2ded01170c1a992cd21aaedc822756 upstream.

Gobi 1000 devices have a different port layout, which wasn't respected
by the current driver, and thus it grabbed the QMI/net port.  In the
near future we'll be attaching another driver to the QMI/net port for
these devices (cdc-wdm and qmi_wwan) so make sure the qcserial driver
doesn't claim them.  This patch also prevents qcserial from binding to
interfaces 0 and 1 on 1K devices because those interfaces do not
respond.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/qcserial.c |  105 ++++++++++++++++++++++++------------------
 1 file changed, 62 insertions(+), 43 deletions(-)

--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -24,39 +24,44 @@
 
 static int debug;
 
+#define DEVICE_G1K(v, p) \
+	USB_DEVICE(v, p), .driver_info = 1
+
 static const struct usb_device_id id_table[] = {
-	{USB_DEVICE(0x05c6, 0x9211)},	/* Acer Gobi QDL device */
-	{USB_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
-	{USB_DEVICE(0x03f0, 0x1f1d)},	/* HP un2400 Gobi Modem Device */
-	{USB_DEVICE(0x03f0, 0x201d)},	/* HP un2400 Gobi QDL Device */
-	{USB_DEVICE(0x03f0, 0x371d)},	/* HP un2430 Mobile Broadband Module */
-	{USB_DEVICE(0x04da, 0x250d)},	/* Panasonic Gobi Modem device */
-	{USB_DEVICE(0x04da, 0x250c)},	/* Panasonic Gobi QDL device */
-	{USB_DEVICE(0x413c, 0x8172)},	/* Dell Gobi Modem device */
-	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
-	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi QDL device */
-	{USB_DEVICE(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
-	{USB_DEVICE(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
-	{USB_DEVICE(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
-	{USB_DEVICE(0x19d2, 0xfff2)},	/* ONDA Gobi QDL device */
-	{USB_DEVICE(0x1557, 0x0a80)},	/* OQO Gobi QDL device */
-	{USB_DEVICE(0x05c6, 0x9001)},   /* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9002)},	/* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9202)},	/* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9203)},	/* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9222)},	/* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9008)},	/* Generic Gobi QDL device */
-	{USB_DEVICE(0x05c6, 0x9009)},	/* Generic Gobi Modem device */
-	{USB_DEVICE(0x05c6, 0x9201)},	/* Generic Gobi QDL device */
-	{USB_DEVICE(0x05c6, 0x9221)},	/* Generic Gobi QDL device */
-	{USB_DEVICE(0x05c6, 0x9231)},	/* Generic Gobi QDL device */
-	{USB_DEVICE(0x1f45, 0x0001)},	/* Unknown Gobi QDL device */
+	/* Gobi 1000 devices */
+	{DEVICE_G1K(0x05c6, 0x9211)},	/* Acer Gobi QDL device */
+	{DEVICE_G1K(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
+	{DEVICE_G1K(0x03f0, 0x1f1d)},	/* HP un2400 Gobi Modem Device */
+	{DEVICE_G1K(0x03f0, 0x201d)},	/* HP un2400 Gobi QDL Device */
+	{DEVICE_G1K(0x04da, 0x250d)},	/* Panasonic Gobi Modem device */
+	{DEVICE_G1K(0x04da, 0x250c)},	/* Panasonic Gobi QDL device */
+	{DEVICE_G1K(0x413c, 0x8172)},	/* Dell Gobi Modem device */
+	{DEVICE_G1K(0x413c, 0x8171)},	/* Dell Gobi QDL device */
+	{DEVICE_G1K(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
+	{DEVICE_G1K(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
+	{DEVICE_G1K(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
+	{DEVICE_G1K(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
+	{DEVICE_G1K(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
+	{DEVICE_G1K(0x19d2, 0xfff2)},	/* ONDA Gobi QDL device */
+	{DEVICE_G1K(0x1557, 0x0a80)},	/* OQO Gobi QDL device */
+	{DEVICE_G1K(0x05c6, 0x9001)},   /* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9002)},	/* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9202)},	/* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9203)},	/* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9222)},	/* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9008)},	/* Generic Gobi QDL device */
+	{DEVICE_G1K(0x05c6, 0x9009)},	/* Generic Gobi Modem device */
+	{DEVICE_G1K(0x05c6, 0x9201)},	/* Generic Gobi QDL device */
+	{DEVICE_G1K(0x05c6, 0x9221)},	/* Generic Gobi QDL device */
+	{DEVICE_G1K(0x05c6, 0x9231)},	/* Generic Gobi QDL device */
+	{DEVICE_G1K(0x1f45, 0x0001)},	/* Unknown Gobi QDL device */
+
+	/* Gobi 2000 devices */
+	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi 2000 QDL device */
+	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi 2000 QDL device */
+	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi 2000 QDL device */
+	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi 2000 QDL device */
+	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi 2000 QDL device */
 	{USB_DEVICE(0x413c, 0x8185)},	/* Dell Gobi 2000 QDL device (N0218, VU936) */
 	{USB_DEVICE(0x413c, 0x8186)},	/* Dell Gobi 2000 Modem device (N0218, VU936) */
 	{USB_DEVICE(0x05c6, 0x9208)},	/* Generic Gobi 2000 QDL device */
@@ -92,6 +97,8 @@ static const struct usb_device_id id_tab
 	{USB_DEVICE(0x05c6, 0x9204)},	/* Gobi 2000 QDL device */
 	{USB_DEVICE(0x05c6, 0x9205)},	/* Gobi 2000 Modem device */
 
+	/* Gobi 3000 devices */
+	{USB_DEVICE(0x03f0, 0x371d)},	/* HP un2430 Gobi 3000 QDL */
 	{USB_DEVICE(0x05c6, 0x920c)},	/* Gobi 3000 QDL */
 	{USB_DEVICE(0x05c6, 0x920d)},	/* Gobi 3000 Composite */
 	{USB_DEVICE(0x1410, 0xa020)},   /* Novatel Gobi 3000 QDL */
@@ -122,8 +129,10 @@ static int qcprobe(struct usb_serial *se
 	int retval = -ENODEV;
 	__u8 nintf;
 	__u8 ifnum;
+	bool is_gobi1k = id->driver_info ? true : false;
 
 	dbg("%s", __func__);
+	dbg("Is Gobi 1000 = %d", is_gobi1k);
 
 	nintf = serial->dev->actconfig->desc.bNumInterfaces;
 	dbg("Num Interfaces = %d", nintf);
@@ -171,15 +180,25 @@ static int qcprobe(struct usb_serial *se
 
 	case 3:
 	case 4:
-		/* Composite mode */
-		/* ifnum == 0 is a broadband network adapter */
-		if (ifnum == 1) {
-			/*
-			 * Diagnostics Monitor (serial line 9600 8N1)
-			 * Qualcomm DM protocol
-			 * use "libqcdm" (ModemManager) for communication
-			 */
-			dbg("Diagnostics Monitor found");
+		/* Composite mode; don't bind to the QMI/net interface as that
+		 * gets handled by other drivers.
+		 */
+
+		/* Gobi 1K USB layout:
+		 * 0: serial port (doesn't respond)
+		 * 1: serial port (doesn't respond)
+		 * 2: AT-capable modem port
+		 * 3: QMI/net
+		 *
+		 * Gobi 2K+ USB layout:
+		 * 0: QMI/net
+		 * 1: DM/DIAG (use libqcdm from ModemManager for communication)
+		 * 2: AT-capable modem port
+		 * 3: NMEA
+		 */
+
+		if (ifnum == 1 && !is_gobi1k) {
+			dbg("Gobi 2K+ DM/DIAG interface found");
 			retval = usb_set_interface(serial->dev, ifnum, 0);
 			if (retval < 0) {
 				dev_err(&serial->dev->dev,
@@ -198,13 +217,13 @@ static int qcprobe(struct usb_serial *se
 				retval = -ENODEV;
 				kfree(data);
 			}
-		} else if (ifnum==3) {
+		} else if (ifnum==3 && !is_gobi1k) {
 			/*
 			 * NMEA (serial line 9600 8N1)
 			 * # echo "\$GPS_START" > /dev/ttyUSBx
 			 * # echo "\$GPS_STOP"  > /dev/ttyUSBx
 			 */
-			dbg("NMEA GPS interface found");
+			dbg("Gobi 2K+ NMEA GPS interface found");
 			retval = usb_set_interface(serial->dev, ifnum, 0);
 			if (retval < 0) {
 				dev_err(&serial->dev->dev,



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 034/149] usb-serial: Add support for the Sealevel SeaLINK+8 2038-ROHS device
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (32 preceding siblings ...)
  2012-03-30 19:49 ` [ 033/149] USB: qcserial: dont grab QMI port on Gobi 1000 devices Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 035/149] usb: cp210x: Update to support CP2105 and multiple interface devices Greg KH
                   ` (114 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Scott Dial

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Scott Dial <scott.dial@scientiallc.com>

commit 6d161b99f875269ad4ffa44375e1e54bca6fd02e upstream.

This patch adds new device IDs to the ftdi_sio module to support
the new Sealevel SeaLINK+8 2038-ROHS device.

Signed-off-by: Scott Dial <scott.dial@scientiallc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/ftdi_sio.c     |    4 ++++
 drivers/usb/serial/ftdi_sio_ids.h |    4 ++++
 2 files changed, 8 insertions(+)

--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -537,6 +537,10 @@ static struct usb_device_id id_table_com
 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_6_PID) },
 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_7_PID) },
 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_8_PID) },
+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_1_PID) },
+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_2_PID) },
+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_3_PID) },
+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_4_PID) },
 	{ USB_DEVICE(IDTECH_VID, IDTECH_IDT1221U_PID) },
 	{ USB_DEVICE(OCT_VID, OCT_US101_PID) },
 	{ USB_DEVICE(OCT_VID, OCT_DK201_PID) },
--- a/drivers/usb/serial/ftdi_sio_ids.h
+++ b/drivers/usb/serial/ftdi_sio_ids.h
@@ -689,6 +689,10 @@
 #define SEALEVEL_2803_6_PID	0X2863	/* SeaLINK+8 (2803) Port 6 */
 #define SEALEVEL_2803_7_PID	0X2873	/* SeaLINK+8 (2803) Port 7 */
 #define SEALEVEL_2803_8_PID	0X2883	/* SeaLINK+8 (2803) Port 8 */
+#define SEALEVEL_2803R_1_PID	0Xa02a	/* SeaLINK+8 (2803-ROHS) Port 1+2 */
+#define SEALEVEL_2803R_2_PID	0Xa02b	/* SeaLINK+8 (2803-ROHS) Port 3+4 */
+#define SEALEVEL_2803R_3_PID	0Xa02c	/* SeaLINK+8 (2803-ROHS) Port 5+6 */
+#define SEALEVEL_2803R_4_PID	0Xa02d	/* SeaLINK+8 (2803-ROHS) Port 7+8 */
 
 /*
  * JETI SPECTROMETER SPECBOS 1201



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 035/149] usb: cp210x: Update to support CP2105 and multiple interface devices
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (33 preceding siblings ...)
  2012-03-30 19:49 ` [ 034/149] usb-serial: Add support for the Sealevel SeaLINK+8 2038-ROHS device Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 036/149] USB: serial: mos7840: Fixed MCS7820 device attach problem Greg KH
                   ` (113 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Preston Fick

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Preston Fick <preston.fick@silabs.com>

commit a5360a53a7ccad5ed9ccef210b94fef13c6e5529 upstream.

This patch updates the cp210x driver to support CP210x multiple
interface devices devices from Silicon Labs. The existing driver
always sends control requests to interface 0, which is hardcoded in
the usb_control_msg function calls. This only allows for single
interface devices to be used, and causes a bug when using ports on an
interface other than 0 in the multiple interface devices.

Here are the changes included in this patch:
- Updated the device list to contain the Silicon Labs factory default
  VID/PID for multiple interface CP210x devices
- Created a cp210x_port_private struct created for each port on
  startup, this struct holds the interface number
- Added a cp210x_release function to clean up the cp210x_port_private
  memory created on startup
- Modified usb_get_config and usb_set_config to get a pointer to the
  cp210x_port_private struct, and use the interface number there in the
  usb_control_message wIndex param

Signed-off-by: Preston Fick <preston.fick@silabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/cp210x.c |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 41 insertions(+), 3 deletions(-)

--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -49,6 +49,7 @@ static int cp210x_tiocmset_port(struct u
 		unsigned int, unsigned int);
 static void cp210x_break_ctl(struct tty_struct *, int);
 static int cp210x_startup(struct usb_serial *);
+static void cp210x_release(struct usb_serial *);
 static void cp210x_dtr_rts(struct usb_serial_port *p, int on);
 
 static int debug;
@@ -121,6 +122,8 @@ static const struct usb_device_id id_tab
 	{ USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
 	{ USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
 	{ USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
+	{ USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
+	{ USB_DEVICE(0x10C4, 0xEA80) }, /* Silicon Labs factory default */
 	{ USB_DEVICE(0x10C4, 0xEA71) }, /* Infinity GPS-MIC-1 Radio Monophone */
 	{ USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
 	{ USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */
@@ -149,6 +152,10 @@ static const struct usb_device_id id_tab
 
 MODULE_DEVICE_TABLE(usb, id_table);
 
+struct cp210x_port_private {
+	__u8			bInterfaceNumber;
+};
+
 static struct usb_driver cp210x_driver = {
 	.name		= "cp210x",
 	.probe		= usb_serial_probe,
@@ -174,6 +181,7 @@ static struct usb_serial_driver cp210x_d
 	.tiocmget 		= cp210x_tiocmget,
 	.tiocmset		= cp210x_tiocmset,
 	.attach			= cp210x_startup,
+	.release		= cp210x_release,
 	.dtr_rts		= cp210x_dtr_rts
 };
 
@@ -261,6 +269,7 @@ static int cp210x_get_config(struct usb_
 		unsigned int *data, int size)
 {
 	struct usb_serial *serial = port->serial;
+	struct cp210x_port_private *port_priv = usb_get_serial_port_data(port);
 	__le32 *buf;
 	int result, i, length;
 
@@ -276,7 +285,7 @@ static int cp210x_get_config(struct usb_
 	/* Issue the request, attempting to read 'size' bytes */
 	result = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
 				request, REQTYPE_DEVICE_TO_HOST, 0x0000,
-				0, buf, size, 300);
+				port_priv->bInterfaceNumber, buf, size, 300);
 
 	/* Convert data into an array of integers */
 	for (i = 0; i < length; i++)
@@ -304,6 +313,7 @@ static int cp210x_set_config(struct usb_
 		unsigned int *data, int size)
 {
 	struct usb_serial *serial = port->serial;
+	struct cp210x_port_private *port_priv = usb_get_serial_port_data(port);
 	__le32 *buf;
 	int result, i, length;
 
@@ -325,12 +335,12 @@ static int cp210x_set_config(struct usb_
 		result = usb_control_msg(serial->dev,
 				usb_sndctrlpipe(serial->dev, 0),
 				request, REQTYPE_HOST_TO_DEVICE, 0x0000,
-				0, buf, size, 300);
+				port_priv->bInterfaceNumber, buf, size, 300);
 	} else {
 		result = usb_control_msg(serial->dev,
 				usb_sndctrlpipe(serial->dev, 0),
 				request, REQTYPE_HOST_TO_DEVICE, data[0],
-				0, NULL, 0, 300);
+				port_priv->bInterfaceNumber, NULL, 0, 300);
 	}
 
 	kfree(buf);
@@ -830,11 +840,39 @@ static void cp210x_break_ctl (struct tty
 
 static int cp210x_startup(struct usb_serial *serial)
 {
+	struct cp210x_port_private *port_priv;
+	int i;
+
 	/* cp210x buffers behave strangely unless device is reset */
 	usb_reset_device(serial->dev);
+
+	for (i = 0; i < serial->num_ports; i++) {
+		port_priv = kzalloc(sizeof(*port_priv), GFP_KERNEL);
+		if (!port_priv)
+			return -ENOMEM;
+
+		memset(port_priv, 0x00, sizeof(*port_priv));
+		port_priv->bInterfaceNumber =
+		    serial->interface->cur_altsetting->desc.bInterfaceNumber;
+
+		usb_set_serial_port_data(serial->port[i], port_priv);
+	}
+
 	return 0;
 }
 
+static void cp210x_release(struct usb_serial *serial)
+{
+	struct cp210x_port_private *port_priv;
+	int i;
+
+	for (i = 0; i < serial->num_ports; i++) {
+		port_priv = usb_get_serial_port_data(serial->port[i]);
+		kfree(port_priv);
+		usb_set_serial_port_data(serial->port[i], NULL);
+	}
+}
+
 static int __init cp210x_init(void)
 {
 	int retval;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 036/149] USB: serial: mos7840: Fixed MCS7820 device attach problem
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (34 preceding siblings ...)
  2012-03-30 19:49 ` [ 035/149] usb: cp210x: Update to support CP2105 and multiple interface devices Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 037/149] rt2x00: Add support for D-Link DWA-127 to rt2800usb Greg KH
                   ` (112 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Donald Lee

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Donald Lee <donald@asix.com.tw>

commit 093ea2d3a766cb8a4c4de57efec6c0a127a58792 upstream.

A MCS7820 device supports two serial ports and a MCS7840 device supports
four serial ports. Both devices use the same driver, but the attach function
in driver was unable to correctly handle the port numbers for MCS7820
device. This problem has been fixed in this patch and this fix has been
verified on x86 Linux kernel 3.2.9 with both MCS7820 and MCS7840 devices.

Signed-off-by: Donald Lee <donald@asix.com.tw>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/serial/mos7840.c |   81 +++++++++++++++++++++++++++++--------------
 1 file changed, 56 insertions(+), 25 deletions(-)

--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -174,6 +174,7 @@
 
 #define CLK_MULTI_REGISTER         ((__u16)(0x02))
 #define CLK_START_VALUE_REGISTER   ((__u16)(0x03))
+#define GPIO_REGISTER              ((__u16)(0x07))
 
 #define SERIAL_LCR_DLAB            ((__u16)(0x0080))
 
@@ -1103,14 +1104,25 @@ static int mos7840_open(struct tty_struc
 	mos7840_port->read_urb = port->read_urb;
 
 	/* set up our bulk in urb */
-
-	usb_fill_bulk_urb(mos7840_port->read_urb,
-			  serial->dev,
-			  usb_rcvbulkpipe(serial->dev,
-					  port->bulk_in_endpointAddress),
-			  port->bulk_in_buffer,
-			  mos7840_port->read_urb->transfer_buffer_length,
-			  mos7840_bulk_in_callback, mos7840_port);
+	if ((serial->num_ports == 2)
+		&& ((((__u16)port->number -
+			(__u16)(port->serial->minor)) % 2) != 0)) {
+		usb_fill_bulk_urb(mos7840_port->read_urb,
+			serial->dev,
+			usb_rcvbulkpipe(serial->dev,
+				(port->bulk_in_endpointAddress) + 2),
+			port->bulk_in_buffer,
+			mos7840_port->read_urb->transfer_buffer_length,
+			mos7840_bulk_in_callback, mos7840_port);
+	} else {
+		usb_fill_bulk_urb(mos7840_port->read_urb,
+			serial->dev,
+			usb_rcvbulkpipe(serial->dev,
+				port->bulk_in_endpointAddress),
+			port->bulk_in_buffer,
+			mos7840_port->read_urb->transfer_buffer_length,
+			mos7840_bulk_in_callback, mos7840_port);
+	}
 
 	dbg("mos7840_open: bulkin endpoint is %d",
 	    port->bulk_in_endpointAddress);
@@ -1521,13 +1533,25 @@ static int mos7840_write(struct tty_stru
 	memcpy(urb->transfer_buffer, current_position, transfer_size);
 
 	/* fill urb with data and submit  */
-	usb_fill_bulk_urb(urb,
-			  serial->dev,
-			  usb_sndbulkpipe(serial->dev,
-					  port->bulk_out_endpointAddress),
-			  urb->transfer_buffer,
-			  transfer_size,
-			  mos7840_bulk_out_data_callback, mos7840_port);
+	if ((serial->num_ports == 2)
+		&& ((((__u16)port->number -
+			(__u16)(port->serial->minor)) % 2) != 0)) {
+		usb_fill_bulk_urb(urb,
+			serial->dev,
+			usb_sndbulkpipe(serial->dev,
+				(port->bulk_out_endpointAddress) + 2),
+			urb->transfer_buffer,
+			transfer_size,
+			mos7840_bulk_out_data_callback, mos7840_port);
+	} else {
+		usb_fill_bulk_urb(urb,
+			serial->dev,
+			usb_sndbulkpipe(serial->dev,
+				port->bulk_out_endpointAddress),
+			urb->transfer_buffer,
+			transfer_size,
+			mos7840_bulk_out_data_callback, mos7840_port);
+	}
 
 	data1 = urb->transfer_buffer;
 	dbg("bulkout endpoint is %d", port->bulk_out_endpointAddress);
@@ -1840,7 +1864,7 @@ static int mos7840_send_cmd_write_baud_r
 
 	} else {
 #ifdef HW_flow_control
-		/ *setting h/w flow control bit to 0 */
+		/* setting h/w flow control bit to 0 */
 		Data = 0xb;
 		mos7840_port->shadowMCR = Data;
 		status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
@@ -2309,19 +2333,26 @@ static int mos7840_ioctl(struct tty_stru
 
 static int mos7840_calc_num_ports(struct usb_serial *serial)
 {
-	int mos7840_num_ports = 0;
+	__u16 Data = 0x00;
+	int ret = 0;
+	int mos7840_num_ports;
 
-	dbg("numberofendpoints: cur %d, alt %d",
-	    (int)serial->interface->cur_altsetting->desc.bNumEndpoints,
-	    (int)serial->interface->altsetting->desc.bNumEndpoints);
-	if (serial->interface->cur_altsetting->desc.bNumEndpoints == 5) {
-		mos7840_num_ports = serial->num_ports = 2;
-	} else if (serial->interface->cur_altsetting->desc.bNumEndpoints == 9) {
+	ret = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
+		MCS_RDREQ, MCS_RD_RTYPE, 0, GPIO_REGISTER, &Data,
+		VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT);
+
+	if ((Data & 0x01) == 0) {
+		mos7840_num_ports = 2;
+		serial->num_bulk_in = 2;
+		serial->num_bulk_out = 2;
+		serial->num_ports = 2;
+	} else {
+		mos7840_num_ports = 4;
 		serial->num_bulk_in = 4;
 		serial->num_bulk_out = 4;
-		mos7840_num_ports = serial->num_ports = 4;
+		serial->num_ports = 4;
 	}
-	dbg ("mos7840_num_ports = %d", mos7840_num_ports);
+
 	return mos7840_num_ports;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 037/149] rt2x00: Add support for D-Link DWA-127 to rt2800usb.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (35 preceding siblings ...)
  2012-03-30 19:49 ` [ 036/149] USB: serial: mos7840: Fixed MCS7820 device attach problem Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 038/149] rtlwifi: rtl8192c_common: rtl8192de: Check for allocation failures Greg KH
                   ` (111 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Mikhail Kryshen, Gertjan van Wingerde,
	Ivo van Doorn, John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Gertjan van Wingerde <gwingerde@gmail.com>

commit d42a179b941a9e4cc6cf41d0f3cbadd75fc48a89 upstream.

This is an RT3070 based device.

Reported-by: Mikhail Kryshen <mikhail@kryshen.net>
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/wireless/rt2x00/rt2800usb.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -935,6 +935,7 @@ static struct usb_device_id rt2800usb_de
 	{ USB_DEVICE(0x07d1, 0x3c0f) },
 	{ USB_DEVICE(0x07d1, 0x3c11) },
 	{ USB_DEVICE(0x07d1, 0x3c16) },
+	{ USB_DEVICE(0x2001, 0x3c1b) },
 	/* Draytek */
 	{ USB_DEVICE(0x07fa, 0x7712) },
 	/* DVICO */



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 038/149] rtlwifi: rtl8192c_common: rtl8192de: Check for allocation failures
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (36 preceding siblings ...)
  2012-03-30 19:49 ` [ 037/149] rt2x00: Add support for D-Link DWA-127 to rt2800usb Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 039/149] rtlwifi: Handle previous allocation failures when freeing device memory Greg KH
                   ` (110 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Larry Finger, John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Larry Finger <Larry.Finger@lwfinger.net>

commit 76a92be537f1c8c259e393632301446257ca3ea9 upstream.

In https://bugzilla.redhat.com/show_bug.cgi?id=771656, a kernel bug was
triggered due to a failed skb allocation that was not checked. This event
lead to an audit of all memory allocations in the complete rtlwifi family
of drivers. This patch fixes the rest.

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/pci.c                |    2 ++
 drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c |    2 ++
 drivers/net/wireless/rtlwifi/rtl8192de/fw.c       |   14 +++++++++-----
 drivers/net/wireless/rtlwifi/usb.c                |   12 +++++++-----
 4 files changed, 20 insertions(+), 10 deletions(-)

--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -657,6 +657,8 @@ static void _rtl_receive_one(struct ieee
 		return;
 
 	uskb = dev_alloc_skb(skb->len + 128);
+	if (!uskb)
+		return;		/* exit if allocation failed */
 	memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, sizeof(rx_status));
 	pdata = (u8 *)skb_put(uskb, skb->len);
 	memcpy(pdata, skb->data, skb->len);
--- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
@@ -752,6 +752,8 @@ void rtl92c_set_fw_rsvdpagepkt(struct ie
 
 
 	skb = dev_alloc_skb(totalpacketlen);
+	if (!skb)
+		return;
 	memcpy((u8 *) skb_put(skb, totalpacketlen),
 	       &reserved_page_packet, totalpacketlen);
 
--- a/drivers/net/wireless/rtlwifi/rtl8192de/fw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/fw.c
@@ -763,12 +763,16 @@ void rtl92d_set_fw_rsvdpagepkt(struct ie
 		      "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
 		      u1RsvdPageLoc, 3);
 	skb = dev_alloc_skb(totalpacketlen);
-	memcpy((u8 *) skb_put(skb, totalpacketlen), &reserved_page_packet,
-		totalpacketlen);
-	rtstatus = _rtl92d_cmd_send_packet(hw, skb);
+	if (!skb) {
+		dlok = false;
+	} else {
+		memcpy((u8 *) skb_put(skb, totalpacketlen),
+			&reserved_page_packet, totalpacketlen);
+		rtstatus = _rtl92d_cmd_send_packet(hw, skb);
 
-	if (rtstatus)
-		dlok = true;
+		if (rtstatus)
+			dlok = true;
+	}
 	if (dlok) {
 		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
 			("Set RSVD page location to Fw.\n"));
--- a/drivers/net/wireless/rtlwifi/usb.c
+++ b/drivers/net/wireless/rtlwifi/usb.c
@@ -481,12 +481,14 @@ static void _rtl_usb_rx_process_noagg(st
 			u8 *pdata;
 
 			uskb = dev_alloc_skb(skb->len + 128);
-			memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
-			       sizeof(rx_status));
-			pdata = (u8 *)skb_put(uskb, skb->len);
-			memcpy(pdata, skb->data, skb->len);
+			if (uskb) {	/* drop packet on allocation failure */
+				memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
+				       sizeof(rx_status));
+				pdata = (u8 *)skb_put(uskb, skb->len);
+				memcpy(pdata, skb->data, skb->len);
+				ieee80211_rx_irqsafe(hw, uskb);
+			}
 			dev_kfree_skb_any(skb);
-			ieee80211_rx_irqsafe(hw, uskb);
 		} else {
 			dev_kfree_skb_any(skb);
 		}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 039/149] rtlwifi: Handle previous allocation failures when freeing device memory
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (37 preceding siblings ...)
  2012-03-30 19:49 ` [ 038/149] rtlwifi: rtl8192c_common: rtl8192de: Check for allocation failures Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 040/149] rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cu Greg KH
                   ` (109 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Simon Graham, Larry Finger, John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Simon Graham <simon.graham@virtualcomputer.com>

commit 7f66c2f93e5779625c10d262c84537427a2673ca upstream.

Handle previous allocation failures when freeing device memory

Signed-off-by: Simon Graham <simon.graham@virtualcomputer.com>
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/pci.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -1155,10 +1155,12 @@ static void _rtl_pci_free_tx_ring(struct
 		ring->idx = (ring->idx + 1) % ring->entries;
 	}
 
-	pci_free_consistent(rtlpci->pdev,
-			    sizeof(*ring->desc) * ring->entries,
-			    ring->desc, ring->dma);
-	ring->desc = NULL;
+	if (ring->desc) {
+		pci_free_consistent(rtlpci->pdev,
+				    sizeof(*ring->desc) * ring->entries,
+				    ring->desc, ring->dma);
+		ring->desc = NULL;
+	}
 }
 
 static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci)
@@ -1182,12 +1184,14 @@ static void _rtl_pci_free_rx_ring(struct
 			kfree_skb(skb);
 		}
 
-		pci_free_consistent(rtlpci->pdev,
+		if (rtlpci->rx_ring[rx_queue_idx].desc) {
+			pci_free_consistent(rtlpci->pdev,
 				    sizeof(*rtlpci->rx_ring[rx_queue_idx].
 					   desc) * rtlpci->rxringcount,
 				    rtlpci->rx_ring[rx_queue_idx].desc,
 				    rtlpci->rx_ring[rx_queue_idx].dma);
-		rtlpci->rx_ring[rx_queue_idx].desc = NULL;
+			rtlpci->rx_ring[rx_queue_idx].desc = NULL;
+		}
 	}
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 040/149] rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cu
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (38 preceding siblings ...)
  2012-03-30 19:49 ` [ 039/149] rtlwifi: Handle previous allocation failures when freeing device memory Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 041/149] rtlwifi: rtl8192ce: Fix loss of receive performance Greg KH
                   ` (108 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ronald Wahl, Larry Finger, John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Larry Finger <Larry.Finger@lwfinger.net>

commit ebecdcc12fed5d3c81853dea61a0a78a5aefab52 upstream.

When driver rtl8192cu is used with the debug level set to 3 or greater,
the result is "sleeping function called from invalid context" due to
an rcu_read_lock() call in the DM refresh routine in driver rtl8192c.
This lock is not necessary as the USB driver does not use the struct
being protected, thus the lock is set only when a PCI interface is
active.

This bug is reported in https://bugzilla.kernel.org/show_bug.cgi?id=42775.

Reported-by: Ronald Wahl <ronald.wahl@raritan.com>
Tested-by: Ronald Wahl <ronald.wahl@raritan.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Ronald Wahl <ronald.wahl@raritan.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
@@ -1219,13 +1219,18 @@ static void rtl92c_dm_refresh_rate_adapt
 				 ("PreState = %d, CurState = %d\n",
 				  p_ra->pre_ratr_state, p_ra->ratr_state));
 
-			rcu_read_lock();
-			sta = ieee80211_find_sta(mac->vif, mac->bssid);
+			/* Only the PCI card uses sta in the update rate table
+			 * callback routine */
+			if (rtlhal->interface == INTF_PCI) {
+				rcu_read_lock();
+				sta = ieee80211_find_sta(mac->vif, mac->bssid);
+			}
 			rtlpriv->cfg->ops->update_rate_tbl(hw, sta,
 					p_ra->ratr_state);
 
 			p_ra->pre_ratr_state = p_ra->ratr_state;
-			rcu_read_unlock();
+			if (rtlhal->interface == INTF_PCI)
+				rcu_read_unlock();
 		}
 	}
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 041/149] rtlwifi: rtl8192ce: Fix loss of receive performance
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (39 preceding siblings ...)
  2012-03-30 19:49 ` [ 040/149] rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cu Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 042/149] serial: PL011: clear pending interrupts Greg KH
                   ` (107 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jingjun Wu, Larry Finger, John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jingjun Wu <jingjun_wu@realsil.com.cn>

commit a9b89e2567c743483e6354f64d7a7e3a8c101e9e upstream.

Driver rtl8192ce when used with the RTL8188CE device would start at about
20 Mbps on a 54 Mbps connection, but quickly drop to 1 Mbps. One of the
symptoms is that the AP would need to retransmit each packet 4 of 5 times
before the driver would acknowledge it. Recovery is possible only by
unloading and reloading the driver. This problem was reported at
https://bugzilla.redhat.com/show_bug.cgi?id=770207.

The problem is due to a missing update of the gain setting.

Signed-off-by: Jingjun Wu <jingjun_wu@realsil.com.cn>
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/rtl8192c/dm_common.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
@@ -524,6 +524,10 @@ void rtl92c_dm_write_dig(struct ieee8021
 		  dm_digtable.cur_igvalue, dm_digtable.pre_igvalue,
 		  dm_digtable.backoff_val));
 
+	dm_digtable.cur_igvalue += 2;
+	if (dm_digtable.cur_igvalue > 0x3f)
+		dm_digtable.cur_igvalue = 0x3f;
+
 	if (dm_digtable.pre_igvalue != dm_digtable.cur_igvalue) {
 		rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f,
 			      dm_digtable.cur_igvalue);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 042/149] serial: PL011: clear pending interrupts
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (40 preceding siblings ...)
  2012-03-30 19:49 ` [ 041/149] rtlwifi: rtl8192ce: Fix loss of receive performance Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 043/149] iwlwifi: always monitor for stuck queues Greg KH
                   ` (106 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Shreshtha Kumar Sahu, Chanho Min,
	Russell King, Linus Walleij, Jong-Sung Kim

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Walleij <linus.walleij@linaro.org>

commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream.

Chanho Min reported that when the boot loader transfers
control to the kernel, there may be pending interrupts
causing the UART to lock up in an eternal loop trying to
pick tokens from the FIFO (since the RX interrupt flag
indicates there are tokens) while in practice there are
no tokens - in fact there is only a pending IRQ flag.

This patch address the issue with a combination of two
patches suggested by Russell King that clears and mask
all interrupts at probe() and clears any pending error
and RX interrupts at port startup time.

We suspect the spurious interrupts are a side-effect of
switching the UART from FIFO to non-FIFO mode.

Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
Reported-by: Chanho Min <chanho0207@gmail.com>
Suggested-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Jong-Sung Kim <neidhard.kim@lge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/tty/serial/amba-pl011.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1380,6 +1380,10 @@ static int pl011_startup(struct uart_por
 
 	uap->port.uartclk = clk_get_rate(uap->clk);
 
+	/* Clear pending error and receive interrupts */
+	writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS |
+	       UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR);
+
 	/*
 	 * Allocate the IRQ
 	 */
@@ -1414,10 +1418,6 @@ static int pl011_startup(struct uart_por
 	cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE;
 	writew(cr, uap->port.membase + UART011_CR);
 
-	/* Clear pending error interrupts */
-	writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS,
-	       uap->port.membase + UART011_ICR);
-
 	/*
 	 * initialise the old status of the modem signals
 	 */
@@ -1432,6 +1432,9 @@ static int pl011_startup(struct uart_por
 	 * as well.
 	 */
 	spin_lock_irq(&uap->port.lock);
+	/* Clear out any spuriously appearing RX interrupts */
+	 writew(UART011_RTIS | UART011_RXIS,
+		uap->port.membase + UART011_ICR);
 	uap->im = UART011_RTIM;
 	if (!pl011_dma_rx_running(uap))
 		uap->im |= UART011_RXIM;
@@ -1916,6 +1919,10 @@ static int pl011_probe(struct amba_devic
 		goto unmap;
 	}
 
+	/* Ensure interrupts from this UART are masked and cleared */
+	writew(0, uap->port.membase + UART011_IMSC);
+	writew(0xffff, uap->port.membase + UART011_ICR);
+
 	uap->vendor = vendor;
 	uap->lcrh_rx = vendor->lcrh_rx;
 	uap->lcrh_tx = vendor->lcrh_tx;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 043/149] iwlwifi: always monitor for stuck queues
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (41 preceding siblings ...)
  2012-03-30 19:49 ` [ 042/149] serial: PL011: clear pending interrupts Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 044/149] math: Introduce div64_long Greg KH
                   ` (105 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ben Cahill, Johannes Berg, Wey-Yi Guy,
	John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Johannes Berg <johannes.berg@intel.com>

commit 342bbf3fee2fa9a18147e74b2e3c4229a4564912 upstream.

If we only monitor while associated, the following
can happen:
 - we're associated, and the queue stuck check
   runs, setting the queue "touch" time to X
 - we disassociate, stopping the monitoring,
   which leaves the time set to X
 - almost 2s later, we associate, and enqueue
   a frame
 - before the frame is transmitted, we monitor
   for stuck queues, and find the time set to
   X, although it is now later than X + 2000ms,
   so we decide that the queue is stuck and
   erroneously restart the device

It happens more with P2P because there we can
go between associated/unassociated frequently.

Reported-by: Ben Cahill <ben.m.cahill@intel.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-core.c |   18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1787,20 +1787,10 @@ void iwl_bg_watchdog(unsigned long data)
 	if (timeout == 0)
 		return;
 
-	/* monitor and check for stuck cmd queue */
-	if (iwl_check_stuck_queue(priv, priv->shrd->cmd_queue))
-		return;
-
-	/* monitor and check for other stuck queues */
-	if (iwl_is_any_associated(priv)) {
-		for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++) {
-			/* skip as we already checked the command queue */
-			if (cnt == priv->shrd->cmd_queue)
-				continue;
-			if (iwl_check_stuck_queue(priv, cnt))
-				return;
-		}
-	}
+	/* monitor and check for stuck queues */
+	for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++)
+		if (iwl_check_stuck_queue(priv, cnt))
+			return;
 
 	mod_timer(&priv->watchdog, jiffies +
 		  msecs_to_jiffies(IWL_WD_TICK(timeout)));



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 044/149] math: Introduce div64_long
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (42 preceding siblings ...)
  2012-03-30 19:49 ` [ 043/149] iwlwifi: always monitor for stuck queues Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 045/149] ntp: Fix integer overflow when setting time Greg KH
                   ` (104 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Thomas Gleixner, Sasha Levin

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <levinsasha928@gmail.com>

commit f910381a55cdaa097030291f272f6e6e4380c39a upstream.

Add a div64_long macro which is used to devide a 64bit number by a long (which
can be 4 bytes on 32bit systems and 8 bytes on 64bit systems).

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Cc: johnstul@us.ibm.com
Link: http://lkml.kernel.org/r/1331829374-31543-1-git-send-email-levinsasha928@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/math64.h |    4 ++++
 1 file changed, 4 insertions(+)

--- a/include/linux/math64.h
+++ b/include/linux/math64.h
@@ -6,6 +6,8 @@
 
 #if BITS_PER_LONG == 64
 
+#define div64_long(x,y) div64_s64((x),(y))
+
 /**
  * div_u64_rem - unsigned 64bit divide with 32bit divisor with remainder
  *
@@ -45,6 +47,8 @@ static inline s64 div64_s64(s64 dividend
 
 #elif BITS_PER_LONG == 32
 
+#define div64_long(x,y) div_s64((x),(y))
+
 #ifndef div_u64_rem
 static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
 {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 045/149] ntp: Fix integer overflow when setting time
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (43 preceding siblings ...)
  2012-03-30 19:49 ` [ 044/149] math: Introduce div64_long Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 046/149] uevent: send events in correct order according to seqnum (v3) Greg KH
                   ` (103 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Sasha Levin, Thomas Gleixner

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <levinsasha928@gmail.com>

commit a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33 upstream.

'long secs' is passed as divisor to div_s64, which accepts a 32bit
divisor. On 64bit machines that value is trimmed back from 8 bytes
back to 4, causing a divide by zero when the number is bigger than
(1 << 32) - 1 and all 32 lower bits are 0.

Use div64_long() instead.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Cc: johnstul@us.ibm.com
Link: http://lkml.kernel.org/r/1331829374-31543-2-git-send-email-levinsasha928@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/time/ntp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -275,7 +275,7 @@ static inline s64 ntp_update_offset_fll(
 
 	time_status |= STA_MODE;
 
-	return div_s64(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs);
+	return div64_long(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs);
 }
 
 static void ntp_update_offset(long offset)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 046/149] uevent: send events in correct order according to seqnum (v3)
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (44 preceding siblings ...)
  2012-03-30 19:49 ` [ 045/149] ntp: Fix integer overflow when setting time Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 047/149] genirq: Fix long-term regression in genirq irq_set_irq_type() handling Greg KH
                   ` (102 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Andrew Vagin, Kay Sievers

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrew Vagin <avagin@openvz.org>

commit 7b60a18da393ed70db043a777fd9e6d5363077c4 upstream.

The queue handling in the udev daemon assumes that the events are
ordered.

Before this patch uevent_seqnum is incremented under sequence_lock,
than an event is send uner uevent_sock_mutex. I want to say that code
contained a window between incrementing seqnum and sending an event.

This patch locks uevent_sock_mutex before incrementing uevent_seqnum.

v2: delete sequence_lock, uevent_seqnum is protected by uevent_sock_mutex
v3: unlock the mutex before the goto exit

Thanks for Kay for the comments.

Signed-off-by: Andrew Vagin <avagin@openvz.org>
Tested-By: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 lib/kobject_uevent.c |   19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -29,16 +29,17 @@
 
 u64 uevent_seqnum;
 char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
-static DEFINE_SPINLOCK(sequence_lock);
 #ifdef CONFIG_NET
 struct uevent_sock {
 	struct list_head list;
 	struct sock *sk;
 };
 static LIST_HEAD(uevent_sock_list);
-static DEFINE_MUTEX(uevent_sock_mutex);
 #endif
 
+/* This lock protects uevent_seqnum and uevent_sock_list */
+static DEFINE_MUTEX(uevent_sock_mutex);
+
 /* the strings here must match the enum in include/linux/kobject.h */
 static const char *kobject_actions[] = {
 	[KOBJ_ADD] =		"add",
@@ -136,7 +137,6 @@ int kobject_uevent_env(struct kobject *k
 	struct kobject *top_kobj;
 	struct kset *kset;
 	const struct kset_uevent_ops *uevent_ops;
-	u64 seq;
 	int i = 0;
 	int retval = 0;
 #ifdef CONFIG_NET
@@ -243,17 +243,16 @@ int kobject_uevent_env(struct kobject *k
 	else if (action == KOBJ_REMOVE)
 		kobj->state_remove_uevent_sent = 1;
 
+	mutex_lock(&uevent_sock_mutex);
 	/* we will send an event, so request a new sequence number */
-	spin_lock(&sequence_lock);
-	seq = ++uevent_seqnum;
-	spin_unlock(&sequence_lock);
-	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq);
-	if (retval)
+	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)++uevent_seqnum);
+	if (retval) {
+		mutex_unlock(&uevent_sock_mutex);
 		goto exit;
+	}
 
 #if defined(CONFIG_NET)
 	/* send netlink message */
-	mutex_lock(&uevent_sock_mutex);
 	list_for_each_entry(ue_sk, &uevent_sock_list, list) {
 		struct sock *uevent_sock = ue_sk->sk;
 		struct sk_buff *skb;
@@ -287,8 +286,8 @@ int kobject_uevent_env(struct kobject *k
 		} else
 			retval = -ENOMEM;
 	}
-	mutex_unlock(&uevent_sock_mutex);
 #endif
+	mutex_unlock(&uevent_sock_mutex);
 
 	/* call uevent_helper, usually only enabled during early boot */
 	if (uevent_helper[0] && !kobj_usermode_filter(kobj)) {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 047/149] genirq: Fix long-term regression in genirq irq_set_irq_type() handling
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (45 preceding siblings ...)
  2012-03-30 19:49 ` [ 046/149] uevent: send events in correct order according to seqnum (v3) Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 048/149] genirq: Fix incorrect check for forced IRQ thread handler Greg KH
                   ` (101 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Russell King, Ingo Molnar, Thomas Gleixner

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Russell King <linux@arm.linux.org.uk>

commit a09b659cd68c10ec6a30cb91ebd2c327fcd5bfe5 upstream.

In 2008, commit 0c5d1eb77a8be ("genirq: record trigger type") modified the
way set_irq_type() handles the 'no trigger' condition.  However, this has
an adverse effect on PCMCIA support on Intel StrongARM and probably PXA
platforms.

PCMCIA has several status signals on the socket which can trigger
interrupts; some of these status signals depend on the card's mode
(whether it is configured in memory or IO mode).  For example, cards have
a 'Ready/IRQ' signal: in memory mode, this provides an indication to
PCMCIA that the card has finished its power up initialization.  In IO
mode, it provides the device interrupt signal.  Other status signals
switch between on-board battery status and loud speaker output.

In classical PCMCIA implementations, where you have a specific socket
controller, the controller provides a method to mask interrupts from the
socket, and importantly ignore any state transitions on the pins which
correspond with interrupts once masked.  This masking prevents unwanted
events caused by the removal and application of socket power being
forwarded.

However, on platforms where there is no socket controller, the PCMCIA
status and interrupt signals are routed to standard edge-triggered GPIOs.
These GPIOs can be configured to interrupt on rising edge, falling edge,
or never.  This is where the problems start.

Edge triggered interrupts are required to record events while disabled via
the usual methods of {free,request,disable,enable}_irq() to prevent
problems with dropped interrupts (eg, the 8390 driver uses disable_irq()
to defer the delivery of interrupts).  As a result, these interfaces can
not be used to implement the desired behaviour.

The side effect of this is that if the 'Ready/IRQ' GPIO is disabled via
disable_irq() on suspend, and enabled via enable_irq() after resume, we
will record the state transitions caused by powering events as valid
interrupts, and foward them to the card driver, which may attempt to
access a card which is not powered up.

This leads delays resume while drivers spin in their interrupt handlers,
and complaints from drivers before they realize what's happened.

Moreover, in the case of the 'Ready/IRQ' signal, this is requested and
freed by the card driver itself; the PCMCIA core has no idea whether the
interrupt is requested, and, therefore, whether a call to disable_irq()
would be valid.  (We tried this around 2.4.17 / 2.5.1 kernel era, and
ended up throwing it out because of this problem.)

Therefore, it was decided back in around 2002 to disable the edge
triggering instead, resulting in all state transitions on the GPIO being
ignored.  That's what we actually need the hardware to do.

The commit above changes this behaviour; it explicitly prevents the 'no
trigger' state being selected.

The reason that request_irq() does not accept the 'no trigger' state is
for compatibility with existing drivers which do not provide their desired
triggering configuration.  The set_irq_type() function is 'new' and not
used by non-trigger aware drivers.

Therefore, revert this change, and restore previously working platforms
back to their former state.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: linux@arm.linux.org.uk
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/irq/chip.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -61,8 +61,7 @@ int irq_set_irq_type(unsigned int irq, u
 		return -EINVAL;
 
 	type &= IRQ_TYPE_SENSE_MASK;
-	if (type != IRQ_TYPE_NONE)
-		ret = __irq_set_trigger(desc, irq, type);
+	ret = __irq_set_trigger(desc, irq, type);
 	irq_put_desc_busunlock(desc, flags);
 	return ret;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 048/149] genirq: Fix incorrect check for forced IRQ thread handler
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (46 preceding siblings ...)
  2012-03-30 19:49 ` [ 047/149] genirq: Fix long-term regression in genirq irq_set_irq_type() handling Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 049/149] rtc: Disable the alarm in the hardware (v2) Greg KH
                   ` (100 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Alexander Gordeev, Oleg Nesterov, Thomas Gleixner

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alexander Gordeev <agordeev@redhat.com>

commit 540b60e24f3f4781d80e47122f0c4486a03375b8 upstream.

We do not want a bitwise AND between boolean operands

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Link: http://lkml.kernel.org/r/20120309135912.GA2114@dhcp-26-207.brq.redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/irq/manage.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -773,7 +773,7 @@ static int irq_thread(void *data)
 			struct irqaction *action);
 	int wake;
 
-	if (force_irqthreads & test_bit(IRQTF_FORCED_THREAD,
+	if (force_irqthreads && test_bit(IRQTF_FORCED_THREAD,
 					&action->thread_flags))
 		handler_fn = irq_forced_thread_fn;
 	else



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (47 preceding siblings ...)
  2012-03-30 19:49 ` [ 048/149] genirq: Fix incorrect check for forced IRQ thread handler Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-11-05  9:11   ` [regression] " Jonathan Nieder
  2012-03-30 19:49 ` [ 050/149] p54spi: Release GPIO lines and IRQ on error in p54spi_probe Greg KH
                   ` (99 subsequent siblings)
  148 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, John Stultz, Rabin Vincent

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Rabin Vincent <rabin.vincent@stericsson.com>

commit 41c7f7424259ff11009449f87c95656f69f9b186 upstream.

Currently, the RTC code does not disable the alarm in the hardware.

This means that after a sequence such as the one below (the files are in the
RTC sysfs), the box will boot up after 2 minutes even though we've
asked for the alarm to be turned off.

	# echo $((`cat since_epoch`)+120) > wakealarm
	# echo 0 > wakealarm
	# poweroff

Fix this by disabling the alarm when there are no timers to run.

The original version of this patch was reverted. This version
disables the irq directly instead of setting a disabled timer
in the future.

Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
[Merged in the second revision from Rabin]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/rtc/interface.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -763,6 +763,14 @@ static int rtc_timer_enqueue(struct rtc_
 	return 0;
 }
 
+static void rtc_alarm_disable(struct rtc_device *rtc)
+{
+	if (!rtc->ops || !rtc->ops->alarm_irq_enable)
+		return;
+
+	rtc->ops->alarm_irq_enable(rtc->dev.parent, false);
+}
+
 /**
  * rtc_timer_remove - Removes a rtc_timer from the rtc_device timerqueue
  * @rtc rtc device
@@ -784,8 +792,10 @@ static void rtc_timer_remove(struct rtc_
 		struct rtc_wkalrm alarm;
 		int err;
 		next = timerqueue_getnext(&rtc->timerqueue);
-		if (!next)
+		if (!next) {
+			rtc_alarm_disable(rtc);
 			return;
+		}
 		alarm.time = rtc_ktime_to_tm(next->expires);
 		alarm.enabled = 1;
 		err = __rtc_set_alarm(rtc, &alarm);
@@ -847,7 +857,8 @@ again:
 		err = __rtc_set_alarm(rtc, &alarm);
 		if (err == -ETIME)
 			goto again;
-	}
+	} else
+		rtc_alarm_disable(rtc);
 
 	mutex_unlock(&rtc->ops_lock);
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 050/149] p54spi: Release GPIO lines and IRQ on error in p54spi_probe
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (48 preceding siblings ...)
  2012-03-30 19:49 ` [ 049/149] rtc: Disable the alarm in the hardware (v2) Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 051/149] rtnetlink: Fix VF IFLA policy Greg KH
                   ` (98 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Max Filippov, Christian Lamparter,
	John W. Linville

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Max Filippov <jcmvbkbc@gmail.com>

commit 62ebeed8d00aef75eac4fd6c161cae75a41965ca upstream.

This makes it possible to reload driver if insmod has failed due to
missing firmware.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/wireless/p54/p54spi.c |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

--- a/drivers/net/wireless/p54/p54spi.c
+++ b/drivers/net/wireless/p54/p54spi.c
@@ -622,19 +622,19 @@ static int __devinit p54spi_probe(struct
 	ret = spi_setup(spi);
 	if (ret < 0) {
 		dev_err(&priv->spi->dev, "spi_setup failed");
-		goto err_free_common;
+		goto err_free;
 	}
 
 	ret = gpio_request(p54spi_gpio_power, "p54spi power");
 	if (ret < 0) {
 		dev_err(&priv->spi->dev, "power GPIO request failed: %d", ret);
-		goto err_free_common;
+		goto err_free;
 	}
 
 	ret = gpio_request(p54spi_gpio_irq, "p54spi irq");
 	if (ret < 0) {
 		dev_err(&priv->spi->dev, "irq GPIO request failed: %d", ret);
-		goto err_free_common;
+		goto err_free_gpio_power;
 	}
 
 	gpio_direction_output(p54spi_gpio_power, 0);
@@ -645,7 +645,7 @@ static int __devinit p54spi_probe(struct
 			  priv->spi);
 	if (ret < 0) {
 		dev_err(&priv->spi->dev, "request_irq() failed");
-		goto err_free_common;
+		goto err_free_gpio_irq;
 	}
 
 	irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING);
@@ -677,6 +677,12 @@ static int __devinit p54spi_probe(struct
 	return 0;
 
 err_free_common:
+	free_irq(gpio_to_irq(p54spi_gpio_irq), spi);
+err_free_gpio_irq:
+	gpio_free(p54spi_gpio_irq);
+err_free_gpio_power:
+	gpio_free(p54spi_gpio_power);
+err_free:
 	p54_free_common(priv->hw);
 	return ret;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 051/149] rtnetlink: Fix VF IFLA policy
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (49 preceding siblings ...)
  2012-03-30 19:49 ` [ 050/149] p54spi: Release GPIO lines and IRQ on error in p54spi_probe Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 052/149] IB/iser: Post initial receive buffers before sending the final login request Greg KH
                   ` (97 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Greg Rose, Sibai Li, Jeff Kirsher

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Greg Rose <gregory.v.rose@intel.com>

commit 48752f6513012a1b078da08b145d5c40a644f058 upstream.

Add VF spoof check to IFLA policy.  The original patch I submitted to
add the spoof checking feature to rtnl failed to add the proper policy
rule that identifies the data type and len.  This patch corrects that
oversight.  No bugs have been reported against this but it may cause
some problem for the netlink message parsing that uses the policy
table.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/core/rtnetlink.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1116,6 +1116,8 @@ static const struct nla_policy ifla_vf_p
 				    .len = sizeof(struct ifla_vf_vlan) },
 	[IFLA_VF_TX_RATE]	= { .type = NLA_BINARY,
 				    .len = sizeof(struct ifla_vf_tx_rate) },
+	[IFLA_VF_SPOOFCHK]	= { .type = NLA_BINARY,
+				    .len = sizeof(struct ifla_vf_spoofchk) },
 };
 
 static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 052/149] IB/iser: Post initial receive buffers before sending the final login request
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (50 preceding siblings ...)
  2012-03-30 19:49 ` [ 051/149] rtnetlink: Fix VF IFLA policy Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 053/149] ima: fix Kconfig dependencies Greg KH
                   ` (96 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Or Gerlitz, Roland Dreier

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Or Gerlitz <ogerlitz@mellanox.com>

commit 89e984e2c2cd14f77ccb26c47726ac7f13b70ae8 upstream.

An iser target may send iscsi NO-OP PDUs as soon as it marks the iSER
iSCSI session as fully operative.  This means that there is window
where there are no posted receive buffers on the initiator side, so
it's possible for the iSER RC connection to break because of RNR NAK /
retry errors.  To fix this, rely on the flags bits in the login
request to have FFP (0x3) in the lower nibble as a marker for the
final login request, and post an initial chunk of receive buffers
before sending that login request instead of after getting the login
response.

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/ulp/iser/iscsi_iser.c     |   18 +++-------------
 drivers/infiniband/ulp/iser/iscsi_iser.h     |    1 
 drivers/infiniband/ulp/iser/iser_initiator.c |   30 +++++++++++++++------------
 3 files changed, 22 insertions(+), 27 deletions(-)

--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -364,6 +364,9 @@ iscsi_iser_conn_bind(struct iscsi_cls_se
 	}
 	ib_conn = ep->dd_data;
 
+	if (iser_alloc_rx_descriptors(ib_conn))
+		return -ENOMEM;
+
 	/* binds the iSER connection retrieved from the previously
 	 * connected ep_handle to the iSCSI layer connection. exchanges
 	 * connection pointers */
@@ -398,19 +401,6 @@ iscsi_iser_conn_stop(struct iscsi_cls_co
 	iser_conn->ib_conn = NULL;
 }
 
-static int
-iscsi_iser_conn_start(struct iscsi_cls_conn *cls_conn)
-{
-	struct iscsi_conn *conn = cls_conn->dd_data;
-	int err;
-
-	err = iser_conn_set_full_featured_mode(conn);
-	if (err)
-		return err;
-
-	return iscsi_conn_start(cls_conn);
-}
-
 static void iscsi_iser_session_destroy(struct iscsi_cls_session *cls_session)
 {
 	struct Scsi_Host *shost = iscsi_session_to_shost(cls_session);
@@ -724,7 +714,7 @@ static struct iscsi_transport iscsi_iser
 	.get_conn_param		= iscsi_conn_get_param,
 	.get_ep_param		= iscsi_iser_get_ep_param,
 	.get_session_param	= iscsi_session_get_param,
-	.start_conn             = iscsi_iser_conn_start,
+	.start_conn             = iscsi_conn_start,
 	.stop_conn              = iscsi_iser_conn_stop,
 	/* iscsi host params */
 	.get_host_param		= iscsi_host_get_param,
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -366,4 +366,5 @@ int iser_dma_map_task_data(struct iscsi_
 void iser_dma_unmap_task_data(struct iscsi_iser_task *iser_task);
 int  iser_initialize_task_headers(struct iscsi_task *task,
 			struct iser_tx_desc *tx_desc);
+int iser_alloc_rx_descriptors(struct iser_conn *ib_conn);
 #endif
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -170,7 +170,7 @@ static void iser_create_send_desc(struct
 }
 
 
-static int iser_alloc_rx_descriptors(struct iser_conn *ib_conn)
+int iser_alloc_rx_descriptors(struct iser_conn *ib_conn)
 {
 	int i, j;
 	u64 dma_addr;
@@ -242,23 +242,24 @@ void iser_free_rx_descriptors(struct ise
 	kfree(ib_conn->rx_descs);
 }
 
-/**
- *  iser_conn_set_full_featured_mode - (iSER API)
- */
-int iser_conn_set_full_featured_mode(struct iscsi_conn *conn)
+static int iser_post_rx_bufs(struct iscsi_conn *conn, struct iscsi_hdr *req)
 {
 	struct iscsi_iser_conn *iser_conn = conn->dd_data;
 
-	iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX);
+	iser_dbg("req op %x flags %x\n", req->opcode, req->flags);
+	/* check if this is the last login - going to full feature phase */
+	if ((req->flags & ISCSI_FULL_FEATURE_PHASE) != ISCSI_FULL_FEATURE_PHASE)
+		return 0;
 
-	/* Check that there is no posted recv or send buffers left - */
-	/* they must be consumed during the login phase */
-	BUG_ON(iser_conn->ib_conn->post_recv_buf_count != 0);
-	BUG_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0);
-
-	if (iser_alloc_rx_descriptors(iser_conn->ib_conn))
-		return -ENOMEM;
+	/*
+	 * Check that there is one posted recv buffer (for the last login
+	 * response) and no posted send buffers left - they must have been
+	 * consumed during previous login phases.
+	 */
+	WARN_ON(iser_conn->ib_conn->post_recv_buf_count != 1);
+	WARN_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0);
 
+	iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX);
 	/* Initial post receive buffers */
 	if (iser_post_recvm(iser_conn->ib_conn, ISER_MIN_POSTED_RX))
 		return -ENOMEM;
@@ -438,6 +439,9 @@ int iser_send_control(struct iscsi_conn
 		err = iser_post_recvl(iser_conn->ib_conn);
 		if (err)
 			goto send_control_error;
+		err = iser_post_rx_bufs(conn, task->hdr);
+		if (err)
+			goto send_control_error;
 	}
 
 	err = iser_post_send(iser_conn->ib_conn, mdesc);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 053/149] ima: fix Kconfig dependencies
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (51 preceding siblings ...)
  2012-03-30 19:49 ` [ 052/149] IB/iser: Post initial receive buffers before sending the final login request Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 054/149] x86/ioapic: Add register level checks to detect bogus io-apic entries Greg KH
                   ` (95 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Rajiv Andrade, Fabio Estevam, Mimi Zohar

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Fabio Estevam <festevam@gmail.com>

commit f4a0391dfa91155bd961673b31eb42d9d45c799d upstream.

Fix the following build warning:
warning: (IMA) selects TCG_TPM which has unmet direct dependencies
(HAS_IOMEM && EXPERIMENTAL)

Suggested-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/char/tpm/Kconfig       |    1 -
 security/integrity/ima/Kconfig |    2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/char/tpm/Kconfig
+++ b/drivers/char/tpm/Kconfig
@@ -5,7 +5,6 @@
 menuconfig TCG_TPM
 	tristate "TPM Hardware Support"
 	depends on HAS_IOMEM
-	depends on EXPERIMENTAL
 	select SECURITYFS
 	---help---
 	  If you have a TPM security chip in your system, which
--- a/security/integrity/ima/Kconfig
+++ b/security/integrity/ima/Kconfig
@@ -9,7 +9,7 @@ config IMA
 	select CRYPTO_HMAC
 	select CRYPTO_MD5
 	select CRYPTO_SHA1
-	select TCG_TPM if !S390 && !UML
+	select TCG_TPM if HAS_IOMEM && !UML
 	select TCG_TIS if TCG_TPM
 	help
 	  The Trusted Computing Group(TCG) runtime Integrity



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 054/149] x86/ioapic: Add register level checks to detect bogus io-apic entries
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (52 preceding siblings ...)
  2012-03-30 19:49 ` [ 053/149] ima: fix Kconfig dependencies Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 055/149] mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode Greg KH
                   ` (94 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Álvaro Castillo, Jon Dufresne,
	Suresh Siddha, Josh Boyer, Ingo Molnar

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3540 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Suresh Siddha <suresh.b.siddha@intel.com>

commit 73d63d038ee9f769f5e5b46792d227fe20e442c5 upstream.

With the recent changes to clear_IO_APIC_pin() which tries to
clear remoteIRR bit explicitly, some of the users started to see
"Unable to reset IRR for apic .." messages.

Close look shows that these are related to bogus IO-APIC entries
which return's all 1's for their io-apic registers. And the
above mentioned error messages are benign. But kernel should
have ignored such io-apic's in the first place.

Check if register 0, 1, 2 of the listed io-apic are all 1's and
ignore such io-apic.

Reported-by: Álvaro Castillo <midgoon@gmail.com>
Tested-by: Jon Dufresne <jon@jondufresne.org>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: yinghai@kernel.org
Cc: kernel-team@fedoraproject.org
Cc: Josh Boyer <jwboyer@redhat.com>
Link: http://lkml.kernel.org/r/1331577393.31585.94.camel@sbsiddha-desk.sc.intel.com
[ Performed minor cleanup of affected code. ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/apic/io_apic.c |   40 ++++++++++++++++++++++++++++++++--------
 1 file changed, 32 insertions(+), 8 deletions(-)

--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3963,18 +3963,36 @@ int mp_find_ioapic_pin(int ioapic, u32 g
 static __init int bad_ioapic(unsigned long address)
 {
 	if (nr_ioapics >= MAX_IO_APICS) {
-		printk(KERN_WARNING "WARNING: Max # of I/O APICs (%d) exceeded "
-		       "(found %d), skipping\n", MAX_IO_APICS, nr_ioapics);
+		pr_warn("WARNING: Max # of I/O APICs (%d) exceeded (found %d), skipping\n",
+			MAX_IO_APICS, nr_ioapics);
 		return 1;
 	}
 	if (!address) {
-		printk(KERN_WARNING "WARNING: Bogus (zero) I/O APIC address"
-		       " found in table, skipping!\n");
+		pr_warn("WARNING: Bogus (zero) I/O APIC address found in table, skipping!\n");
 		return 1;
 	}
 	return 0;
 }
 
+static __init int bad_ioapic_register(int idx)
+{
+	union IO_APIC_reg_00 reg_00;
+	union IO_APIC_reg_01 reg_01;
+	union IO_APIC_reg_02 reg_02;
+
+	reg_00.raw = io_apic_read(idx, 0);
+	reg_01.raw = io_apic_read(idx, 1);
+	reg_02.raw = io_apic_read(idx, 2);
+
+	if (reg_00.raw == -1 && reg_01.raw == -1 && reg_02.raw == -1) {
+		pr_warn("I/O APIC 0x%x registers return all ones, skipping!\n",
+			mpc_ioapic_addr(idx));
+		return 1;
+	}
+
+	return 0;
+}
+
 void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
 {
 	int idx = 0;
@@ -3991,6 +4009,12 @@ void __init mp_register_ioapic(int id, u
 	ioapics[idx].mp_config.apicaddr = address;
 
 	set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
+
+	if (bad_ioapic_register(idx)) {
+		clear_fixmap(FIX_IO_APIC_BASE_0 + idx);
+		return;
+	}
+
 	ioapics[idx].mp_config.apicid = io_apic_unique_id(id);
 	ioapics[idx].mp_config.apicver = io_apic_get_version(idx);
 
@@ -4011,10 +4035,10 @@ void __init mp_register_ioapic(int id, u
 	if (gsi_cfg->gsi_end >= gsi_top)
 		gsi_top = gsi_cfg->gsi_end + 1;
 
-	printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
-	       "GSI %d-%d\n", idx, mpc_ioapic_id(idx),
-	       mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
-	       gsi_cfg->gsi_base, gsi_cfg->gsi_end);
+	pr_info("IOAPIC[%d]: apic_id %d, version %d, address 0x%x, GSI %d-%d\n",
+		idx, mpc_ioapic_id(idx),
+		mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
+		gsi_cfg->gsi_base, gsi_cfg->gsi_end);
 
 	nr_ioapics++;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 055/149] mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (53 preceding siblings ...)
  2012-03-30 19:49 ` [ 054/149] x86/ioapic: Add register level checks to detect bogus io-apic entries Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 056/149] TPM: Zero buffer whole after copying to userspace Greg KH
                   ` (93 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ulrich Obergfell, Andrea Arcangeli,
	Johannes Weiner, Mel Gorman, Hugh Dickins, Dave Jones,
	Larry Woodman, Rik van Riel, Mark Salter

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrea Arcangeli <aarcange@redhat.com>

commit 1a5a9906d4e8d1976b701f889d8f35d54b928f25 upstream.

In some cases it may happen that pmd_none_or_clear_bad() is called with
the mmap_sem hold in read mode.  In those cases the huge page faults can
allocate hugepmds under pmd_none_or_clear_bad() and that can trigger a
false positive from pmd_bad() that will not like to see a pmd
materializing as trans huge.

It's not khugepaged causing the problem, khugepaged holds the mmap_sem
in write mode (and all those sites must hold the mmap_sem in read mode
to prevent pagetables to go away from under them, during code review it
seems vm86 mode on 32bit kernels requires that too unless it's
restricted to 1 thread per process or UP builds).  The race is only with
the huge pagefaults that can convert a pmd_none() into a
pmd_trans_huge().

Effectively all these pmd_none_or_clear_bad() sites running with
mmap_sem in read mode are somewhat speculative with the page faults, and
the result is always undefined when they run simultaneously.  This is
probably why it wasn't common to run into this.  For example if the
madvise(MADV_DONTNEED) runs zap_page_range() shortly before the page
fault, the hugepage will not be zapped, if the page fault runs first it
will be zapped.

Altering pmd_bad() not to error out if it finds hugepmds won't be enough
to fix this, because zap_pmd_range would then proceed to call
zap_pte_range (which would be incorrect if the pmd become a
pmd_trans_huge()).

The simplest way to fix this is to read the pmd in the local stack
(regardless of what we read, no need of actual CPU barriers, only
compiler barrier needed), and be sure it is not changing under the code
that computes its value.  Even if the real pmd is changing under the
value we hold on the stack, we don't care.  If we actually end up in
zap_pte_range it means the pmd was not none already and it was not huge,
and it can't become huge from under us (khugepaged locking explained
above).

All we need is to enforce that there is no way anymore that in a code
path like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad
can run into a hugepmd.  The overhead of a barrier() is just a compiler
tweak and should not be measurable (I only added it for THP builds).  I
don't exclude different compiler versions may have prevented the race
too by caching the value of *pmd on the stack (that hasn't been
verified, but it wouldn't be impossible considering
pmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines
and there's no external function called in between pmd_trans_huge and
pmd_none_or_clear_bad).

		if (pmd_trans_huge(*pmd)) {
			if (next-addr != HPAGE_PMD_SIZE) {
				VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
				split_huge_page_pmd(vma->vm_mm, pmd);
			} else if (zap_huge_pmd(tlb, vma, pmd, addr))
				continue;
			/* fall through */
		}
		if (pmd_none_or_clear_bad(pmd))

Because this race condition could be exercised without special
privileges this was reported in CVE-2012-1179.

The race was identified and fully explained by Ulrich who debugged it.
I'm quoting his accurate explanation below, for reference.

====== start quote =======
      mapcount 0 page_mapcount 1
      kernel BUG at mm/huge_memory.c:1384!

    At some point prior to the panic, a "bad pmd ..." message similar to the
    following is logged on the console:

      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).

    The "bad pmd ..." message is logged by pmd_clear_bad() before it clears
    the page's PMD table entry.

        143 void pmd_clear_bad(pmd_t *pmd)
        144 {
    ->  145         pmd_ERROR(*pmd);
        146         pmd_clear(pmd);
        147 }

    After the PMD table entry has been cleared, there is an inconsistency
    between the actual number of PMD table entries that are mapping the page
    and the page's map count (_mapcount field in struct page). When the page
    is subsequently reclaimed, __split_huge_page() detects this inconsistency.

       1381         if (mapcount != page_mapcount(page))
       1382                 printk(KERN_ERR "mapcount %d page_mapcount %d\n",
       1383                        mapcount, page_mapcount(page));
    -> 1384         BUG_ON(mapcount != page_mapcount(page));

    The root cause of the problem is a race of two threads in a multithreaded
    process. Thread B incurs a page fault on a virtual address that has never
    been accessed (PMD entry is zero) while Thread A is executing an madvise()
    system call on a virtual address within the same 2 MB (huge page) range.

               virtual address space
              .---------------------.
              |                     |
              |                     |
            .-|---------------------|
            | |                     |
            | |                     |<-- B(fault)
            | |                     |
      2 MB  | |/////////////////////|-.
      huge <  |/////////////////////|  > A(range)
      page  | |/////////////////////|-'
            | |                     |
            | |                     |
            '-|---------------------|
              |                     |
              |                     |
              '---------------------'

    - Thread A is executing an madvise(..., MADV_DONTNEED) system call
      on the virtual address range "A(range)" shown in the picture.

    sys_madvise
      // Acquire the semaphore in shared mode.
      down_read(&current->mm->mmap_sem)
      ...
      madvise_vma
        switch (behavior)
        case MADV_DONTNEED:
             madvise_dontneed
               zap_page_range
                 unmap_vmas
                   unmap_page_range
                     zap_pud_range
                       zap_pmd_range
                         //
                         // Assume that this huge page has never been accessed.
                         // I.e. content of the PMD entry is zero (not mapped).
                         //
                         if (pmd_trans_huge(*pmd)) {
                             // We don't get here due to the above assumption.
                         }
                         //
                         // Assume that Thread B incurred a page fault and
             .---------> // sneaks in here as shown below.
             |           //
             |           if (pmd_none_or_clear_bad(pmd))
             |               {
             |                 if (unlikely(pmd_bad(*pmd)))
             |                     pmd_clear_bad
             |                     {
             |                       pmd_ERROR
             |                         // Log "bad pmd ..." message here.
             |                       pmd_clear
             |                         // Clear the page's PMD entry.
             |                         // Thread B incremented the map count
             |                         // in page_add_new_anon_rmap(), but
             |                         // now the page is no longer mapped
             |                         // by a PMD entry (-> inconsistency).
             |                     }
             |               }
             |
             v
    - Thread B is handling a page fault on virtual address "B(fault)" shown
      in the picture.

    ...
    do_page_fault
      __do_page_fault
        // Acquire the semaphore in shared mode.
        down_read_trylock(&mm->mmap_sem)
        ...
        handle_mm_fault
          if (pmd_none(*pmd) && transparent_hugepage_enabled(vma))
              // We get here due to the above assumption (PMD entry is zero).
              do_huge_pmd_anonymous_page
                alloc_hugepage_vma
                  // Allocate a new transparent huge page here.
                ...
                __do_huge_pmd_anonymous_page
                  ...
                  spin_lock(&mm->page_table_lock)
                  ...
                  page_add_new_anon_rmap
                    // Here we increment the page's map count (starts at -1).
                    atomic_set(&page->_mapcount, 0)
                  set_pmd_at
                    // Here we set the page's PMD entry which will be cleared
                    // when Thread A calls pmd_clear_bad().
                  ...
                  spin_unlock(&mm->page_table_lock)

    The mmap_sem does not prevent the race because both threads are acquiring
    it in shared mode (down_read).  Thread B holds the page_table_lock while
    the page's map count and PMD table entry are updated.  However, Thread A
    does not synchronize on that lock.

====== end quote =======

[akpm@linux-foundation.org: checkpatch fixes]
Reported-by: Ulrich Obergfell <uobergfe@redhat.com>
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Dave Jones <davej@redhat.com>
Acked-by: Larry Woodman <lwoodman@redhat.com>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Mark Salter <msalter@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>

---
 arch/x86/kernel/vm86_32.c     |    2 +
 fs/proc/task_mmu.c            |    9 ++++++
 include/asm-generic/pgtable.h |   61 ++++++++++++++++++++++++++++++++++++++++++
 mm/memcontrol.c               |    4 ++
 mm/memory.c                   |   16 ++++++++---
 mm/mempolicy.c                |    2 -
 mm/mincore.c                  |    2 -
 mm/pagewalk.c                 |    2 -
 mm/swapfile.c                 |    4 --
 9 files changed, 92 insertions(+), 10 deletions(-)

--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -172,6 +172,7 @@ static void mark_screen_rdonly(struct mm
 	spinlock_t *ptl;
 	int i;
 
+	down_write(&mm->mmap_sem);
 	pgd = pgd_offset(mm, 0xA0000);
 	if (pgd_none_or_clear_bad(pgd))
 		goto out;
@@ -190,6 +191,7 @@ static void mark_screen_rdonly(struct mm
 	}
 	pte_unmap_unlock(pte, ptl);
 out:
+	up_write(&mm->mmap_sem);
 	flush_tlb();
 }
 
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -409,6 +409,9 @@ static int smaps_pte_range(pmd_t *pmd, u
 	} else {
 		spin_unlock(&walk->mm->page_table_lock);
 	}
+
+	if (pmd_trans_unstable(pmd))
+		return 0;
 	/*
 	 * The mmap_sem held all the way back in m_start() is what
 	 * keeps khugepaged out of here and from collapsing things
@@ -507,6 +510,8 @@ static int clear_refs_pte_range(pmd_t *p
 	struct page *page;
 
 	split_huge_page_pmd(walk->mm, pmd);
+	if (pmd_trans_unstable(pmd))
+		return 0;
 
 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
 	for (; addr != end; pte++, addr += PAGE_SIZE) {
@@ -670,6 +675,8 @@ static int pagemap_pte_range(pmd_t *pmd,
 	int err = 0;
 
 	split_huge_page_pmd(walk->mm, pmd);
+	if (pmd_trans_unstable(pmd))
+		return 0;
 
 	/* find the first VMA at or above 'addr' */
 	vma = find_vma(walk->mm, addr);
@@ -961,6 +968,8 @@ static int gather_pte_stats(pmd_t *pmd,
 		spin_unlock(&walk->mm->page_table_lock);
 	}
 
+	if (pmd_trans_unstable(pmd))
+		return 0;
 	orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
 	do {
 		struct page *page = can_gather_numa_stats(*pte, md->vma, addr);
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -425,6 +425,8 @@ extern void untrack_pfn_vma(struct vm_ar
 				unsigned long size);
 #endif
 
+#ifdef CONFIG_MMU
+
 #ifndef CONFIG_TRANSPARENT_HUGEPAGE
 static inline int pmd_trans_huge(pmd_t pmd)
 {
@@ -441,7 +443,66 @@ static inline int pmd_write(pmd_t pmd)
 	return 0;
 }
 #endif /* __HAVE_ARCH_PMD_WRITE */
+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
+
+/*
+ * This function is meant to be used by sites walking pagetables with
+ * the mmap_sem hold in read mode to protect against MADV_DONTNEED and
+ * transhuge page faults. MADV_DONTNEED can convert a transhuge pmd
+ * into a null pmd and the transhuge page fault can convert a null pmd
+ * into an hugepmd or into a regular pmd (if the hugepage allocation
+ * fails). While holding the mmap_sem in read mode the pmd becomes
+ * stable and stops changing under us only if it's not null and not a
+ * transhuge pmd. When those races occurs and this function makes a
+ * difference vs the standard pmd_none_or_clear_bad, the result is
+ * undefined so behaving like if the pmd was none is safe (because it
+ * can return none anyway). The compiler level barrier() is critically
+ * important to compute the two checks atomically on the same pmdval.
+ */
+static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
+{
+	/* depend on compiler for an atomic pmd read */
+	pmd_t pmdval = *pmd;
+	/*
+	 * The barrier will stabilize the pmdval in a register or on
+	 * the stack so that it will stop changing under the code.
+	 */
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+	barrier();
 #endif
+	if (pmd_none(pmdval))
+		return 1;
+	if (unlikely(pmd_bad(pmdval))) {
+		if (!pmd_trans_huge(pmdval))
+			pmd_clear_bad(pmd);
+		return 1;
+	}
+	return 0;
+}
+
+/*
+ * This is a noop if Transparent Hugepage Support is not built into
+ * the kernel. Otherwise it is equivalent to
+ * pmd_none_or_trans_huge_or_clear_bad(), and shall only be called in
+ * places that already verified the pmd is not none and they want to
+ * walk ptes while holding the mmap sem in read mode (write mode don't
+ * need this). If THP is not enabled, the pmd can't go away under the
+ * code even if MADV_DONTNEED runs, but if THP is enabled we need to
+ * run a pmd_trans_unstable before walking the ptes after
+ * split_huge_page_pmd returns (because it may have run when the pmd
+ * become null, but then a page fault can map in a THP and not a
+ * regular page).
+ */
+static inline int pmd_trans_unstable(pmd_t *pmd)
+{
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+	return pmd_none_or_trans_huge_or_clear_bad(pmd);
+#else
+	return 0;
+#endif
+}
+
+#endif /* CONFIG_MMU */
 
 #endif /* !__ASSEMBLY__ */
 
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -5237,6 +5237,8 @@ static int mem_cgroup_count_precharge_pt
 	spinlock_t *ptl;
 
 	split_huge_page_pmd(walk->mm, pmd);
+	if (pmd_trans_unstable(pmd))
+		return 0;
 
 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
 	for (; addr != end; pte++, addr += PAGE_SIZE)
@@ -5398,6 +5400,8 @@ static int mem_cgroup_move_charge_pte_ra
 	spinlock_t *ptl;
 
 	split_huge_page_pmd(walk->mm, pmd);
+	if (pmd_trans_unstable(pmd))
+		return 0;
 retry:
 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
 	for (; addr != end; addr += PAGE_SIZE) {
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1228,16 +1228,24 @@ static inline unsigned long zap_pmd_rang
 	do {
 		next = pmd_addr_end(addr, end);
 		if (pmd_trans_huge(*pmd)) {
-			if (next-addr != HPAGE_PMD_SIZE) {
+			if (next - addr != HPAGE_PMD_SIZE) {
 				VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
 				split_huge_page_pmd(vma->vm_mm, pmd);
 			} else if (zap_huge_pmd(tlb, vma, pmd))
-				continue;
+				goto next;
 			/* fall through */
 		}
-		if (pmd_none_or_clear_bad(pmd))
-			continue;
+		/*
+		 * Here there can be other concurrent MADV_DONTNEED or
+		 * trans huge page faults running, and if the pmd is
+		 * none or trans huge it can change under us. This is
+		 * because MADV_DONTNEED holds the mmap_sem in read
+		 * mode.
+		 */
+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
+			goto next;
 		next = zap_pte_range(tlb, vma, pmd, addr, next, details);
+next:
 		cond_resched();
 	} while (pmd++, addr = next, addr != end);
 
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -512,7 +512,7 @@ static inline int check_pmd_range(struct
 	do {
 		next = pmd_addr_end(addr, end);
 		split_huge_page_pmd(vma->vm_mm, pmd);
-		if (pmd_none_or_clear_bad(pmd))
+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
 			continue;
 		if (check_pte_range(vma, pmd, addr, next, nodes,
 				    flags, private))
--- a/mm/mincore.c
+++ b/mm/mincore.c
@@ -164,7 +164,7 @@ static void mincore_pmd_range(struct vm_
 			}
 			/* fall through */
 		}
-		if (pmd_none_or_clear_bad(pmd))
+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
 			mincore_unmapped_range(vma, addr, next, vec);
 		else
 			mincore_pte_range(vma, pmd, addr, next, vec);
--- a/mm/pagewalk.c
+++ b/mm/pagewalk.c
@@ -59,7 +59,7 @@ again:
 			continue;
 
 		split_huge_page_pmd(walk->mm, pmd);
-		if (pmd_none_or_clear_bad(pmd))
+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
 			goto again;
 		err = walk_pte_range(pmd, addr, next, walk);
 		if (err)
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -931,9 +931,7 @@ static inline int unuse_pmd_range(struct
 	pmd = pmd_offset(pud, addr);
 	do {
 		next = pmd_addr_end(addr, end);
-		if (unlikely(pmd_trans_huge(*pmd)))
-			continue;
-		if (pmd_none_or_clear_bad(pmd))
+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
 			continue;
 		ret = unuse_pte_range(vma, pmd, addr, next, entry, page);
 		if (ret)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 056/149] TPM: Zero buffer whole after copying to userspace
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (54 preceding siblings ...)
  2012-03-30 19:49 ` [ 055/149] mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 057/149] PM / Domains: Fix handling of wakeup devices during system resume Greg KH
                   ` (92 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Seth Forshee, Debora Velarde,
	Rajiv Andrade, Marcel Selhorst, Tim Gardner

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tim Gardner <tim.gardner@canonical.com>

commit 3ab1aff89477dafb1aaeafe8c8669114a02b7226 upstream.

Commit 3321c07ae5068568cd61ac9f4ba749006a7185c9 correctly clears the TPM
buffer if the user specified read length is >= the TPM buffer length. However,
if the user specified read length is < the TPM buffer length, then part of the
TPM buffer is left uncleared.

Reported-by: Seth Forshee <seth.forshee@canonical.com>
Cc: Debora Velarde <debora@linux.vnet.ibm.com>
Cc: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Cc: Marcel Selhorst <m.selhorst@sirrix.com>
Cc: tpmdd-devel@lists.sourceforge.net
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/char/tpm/tpm.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -1115,12 +1115,13 @@ ssize_t tpm_read(struct file *file, char
 	ret_size = atomic_read(&chip->data_pending);
 	atomic_set(&chip->data_pending, 0);
 	if (ret_size > 0) {	/* relay data */
+		ssize_t orig_ret_size = ret_size;
 		if (size < ret_size)
 			ret_size = size;
 
 		mutex_lock(&chip->buffer_mutex);
 		rc = copy_to_user(buf, chip->data_buffer, ret_size);
-		memset(chip->data_buffer, 0, ret_size);
+		memset(chip->data_buffer, 0, orig_ret_size);
 		if (rc)
 			ret_size = -EFAULT;
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 057/149] PM / Domains: Fix handling of wakeup devices during system resume
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (55 preceding siblings ...)
  2012-03-30 19:49 ` [ 056/149] TPM: Zero buffer whole after copying to userspace Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 058/149] bootmem/sparsemem: remove limit constraint in alloc_bootmem_section Greg KH
                   ` (91 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Rafael J. Wysocki, Simon Horman

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Rafael J. Wysocki" <rjw@sisk.pl>

commit cc85b20780562d404e18a47b9b55b4a5102ae53e upstream.

During system suspend pm_genpd_suspend_noirq() checks if the given
device is in a wakeup path (i.e. it appears to be needed for one or
more wakeup devices to work or is a wakeup device itself) and if it
needs to be "active" for wakeup to work.  If that is the case, the
function returns 0 without incrementing the device domain's counter
of suspended devices and without executing genpd_stop_dev() for the
device.  In consequence, the device is not stopped (e.g. its clock
isn't disabled) and power is always supplied to its domain in the
resulting system sleep state.

However, pm_genpd_resume_noirq() doesn't repeat that check and it
runs genpd_start_dev() and decrements the domain's counter of
suspended devices even for the wakeup device that weren't stopped by
pm_genpd_suspend_noirq().  As a result, the start callback may be run
unnecessarily for them and their domains' counters of suspended
devices may become negative.  Both outcomes aren't desirable, so fix
pm_genpd_resume_noirq() to look for wakeup devices that might not be
stopped by during system suspend.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/base/power/domain.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -751,7 +751,8 @@ static int pm_genpd_resume_noirq(struct
 	if (IS_ERR(genpd))
 		return -EINVAL;
 
-	if (genpd->suspend_power_off)
+	if (genpd->suspend_power_off
+	    || (dev->power.wakeup_path && genpd_dev_active_wakeup(genpd, dev)))
 		return 0;
 
 	/*



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 058/149] bootmem/sparsemem: remove limit constraint in alloc_bootmem_section
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (56 preceding siblings ...)
  2012-03-30 19:49 ` [ 057/149] PM / Domains: Fix handling of wakeup devices during system resume Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 059/149] hugetlbfs: avoid taking i_mutex from hugetlbfs_read() Greg KH
                   ` (90 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Nishanth Aravamudan, Dave Hansen,
	Anton Blanchard, Paul Mackerras, Ben Herrenschmidt,
	Robert Jennings, Johannes Weiner, Mel Gorman

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>

commit f5bf18fa22f8c41a13eb8762c7373eb3a93a7333 upstream.

While testing AMS (Active Memory Sharing) / CMO (Cooperative Memory
Overcommit) on powerpc, we tripped the following:

  kernel BUG at mm/bootmem.c:483!
  cpu 0x0: Vector: 700 (Program Check) at [c000000000c03940]
      pc: c000000000a62bd8: .alloc_bootmem_core+0x90/0x39c
      lr: c000000000a64bcc: .sparse_early_usemaps_alloc_node+0x84/0x29c
      sp: c000000000c03bc0
     msr: 8000000000021032
    current = 0xc000000000b0cce0
    paca    = 0xc000000001d80000
      pid   = 0, comm = swapper
  kernel BUG at mm/bootmem.c:483!
  enter ? for help
  [c000000000c03c80] c000000000a64bcc
  .sparse_early_usemaps_alloc_node+0x84/0x29c
  [c000000000c03d50] c000000000a64f10 .sparse_init+0x12c/0x28c
  [c000000000c03e20] c000000000a474f4 .setup_arch+0x20c/0x294
  [c000000000c03ee0] c000000000a4079c .start_kernel+0xb4/0x460
  [c000000000c03f90] c000000000009670 .start_here_common+0x1c/0x2c

This is

        BUG_ON(limit && goal + size > limit);

and after some debugging, it seems that

	goal = 0x7ffff000000
	limit = 0x80000000000

and sparse_early_usemaps_alloc_node ->
sparse_early_usemaps_alloc_pgdat_section calls

	return alloc_bootmem_section(usemap_size() * count, section_nr);

This is on a system with 8TB available via the AMS pool, and as a quirk
of AMS in firmware, all of that memory shows up in node 0.  So, we end
up with an allocation that will fail the goal/limit constraints.

In theory, we could "fall-back" to alloc_bootmem_node() in
sparse_early_usemaps_alloc_node(), but since we actually have HOTREMOVE
defined, we'll BUG_ON() instead.  A simple solution appears to be to
unconditionally remove the limit condition in alloc_bootmem_section,
meaning allocations are allowed to cross section boundaries (necessary
for systems of this size).

Johannes Weiner pointed out that if alloc_bootmem_section() no longer
guarantees section-locality, we need check_usemap_section_nr() to print
possible cross-dependencies between node descriptors and the usemaps
allocated through it.  That makes the two loops in
sparse_early_usemaps_alloc_node() identical, so re-factor the code a
bit.

[akpm@linux-foundation.org: code simplification]
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: Anton Blanchard <anton@au1.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ben Herrenschmidt <benh@kernel.crashing.org>
Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Mel Gorman <mgorman@suse.de>
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/bootmem.c |    5 ++---
 mm/sparse.c  |   30 +++++++++++-------------------
 2 files changed, 13 insertions(+), 22 deletions(-)

--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -768,14 +768,13 @@ void * __init alloc_bootmem_section(unsi
 				    unsigned long section_nr)
 {
 	bootmem_data_t *bdata;
-	unsigned long pfn, goal, limit;
+	unsigned long pfn, goal;
 
 	pfn = section_nr_to_pfn(section_nr);
 	goal = pfn << PAGE_SHIFT;
-	limit = section_nr_to_pfn(section_nr + 1) << PAGE_SHIFT;
 	bdata = &bootmem_node_data[early_pfn_to_nid(pfn)];
 
-	return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, limit);
+	return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, 0);
 }
 #endif
 
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -353,29 +353,21 @@ static void __init sparse_early_usemaps_
 
 	usemap = sparse_early_usemaps_alloc_pgdat_section(NODE_DATA(nodeid),
 								 usemap_count);
-	if (usemap) {
-		for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
-			if (!present_section_nr(pnum))
-				continue;
-			usemap_map[pnum] = usemap;
-			usemap += size;
+	if (!usemap) {
+		usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count);
+		if (!usemap) {
+			printk(KERN_WARNING "%s: allocation failed\n", __func__);
+			return;
 		}
-		return;
 	}
 
-	usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count);
-	if (usemap) {
-		for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
-			if (!present_section_nr(pnum))
-				continue;
-			usemap_map[pnum] = usemap;
-			usemap += size;
-			check_usemap_section_nr(nodeid, usemap_map[pnum]);
-		}
-		return;
+	for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
+		if (!present_section_nr(pnum))
+			continue;
+		usemap_map[pnum] = usemap;
+		usemap += size;
+		check_usemap_section_nr(nodeid, usemap_map[pnum]);
 	}
-
-	printk(KERN_WARNING "%s: allocation failed\n", __func__);
 }
 
 #ifndef CONFIG_SPARSEMEM_VMEMMAP



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 059/149] hugetlbfs: avoid taking i_mutex from hugetlbfs_read()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (57 preceding siblings ...)
  2012-03-30 19:49 ` [ 058/149] bootmem/sparsemem: remove limit constraint in alloc_bootmem_section Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 060/149] ASoC: fsl: p1022ds: tell the WM8776 codec driver that its the master Greg KH
                   ` (89 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Aneesh Kumar K.V, Hillf Danton,
	KAMEZAWA Hiroyuki, Al Viro, Hugh Dickins

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>

commit a05b0855fd15504972dba2358e5faa172a1e50ba upstream.

Taking i_mutex in hugetlbfs_read() can result in deadlock with mmap as
explained below

 Thread A:
  read() on hugetlbfs
   hugetlbfs_read() called
    i_mutex grabbed
     hugetlbfs_read_actor() called
      __copy_to_user() called
       page fault is triggered
 Thread B, sharing address space with A:
  mmap() the same file
   ->mmap_sem is grabbed on task_B->mm->mmap_sem
    hugetlbfs_file_mmap() is called
     attempt to grab ->i_mutex and block waiting for A to give it up
 Thread A:
  pagefault handled blocked on attempt to grab task_A->mm->mmap_sem,
 which happens to be the same thing as task_B->mm->mmap_sem.  Block waiting
 for B to give it up.

AFAIU the i_mutex locking was added to hugetlbfs_read() as per
http://lkml.indiana.edu/hypermail/linux/kernel/0707.2/3066.html to take
care of the race between truncate and read.  This patch fixes this by
looking at page->mapping under lock_page() (find_lock_page()) to ensure
that the inode didn't get truncated in the range during a parallel read.

Ideally we can extend the patch to make sure we don't increase i_size in
mmap.  But that will break userspace, because applications will now have
to use truncate(2) to increase i_size in hugetlbfs.

Based on the original patch from Hillf Danton.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Hillf Danton <dhillf@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Hugh Dickins <hughd@google.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>

---
 fs/hugetlbfs/inode.c |   25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -238,17 +238,10 @@ static ssize_t hugetlbfs_read(struct fil
 	loff_t isize;
 	ssize_t retval = 0;
 
-	mutex_lock(&inode->i_mutex);
-
 	/* validate length */
 	if (len == 0)
 		goto out;
 
-	isize = i_size_read(inode);
-	if (!isize)
-		goto out;
-
-	end_index = (isize - 1) >> huge_page_shift(h);
 	for (;;) {
 		struct page *page;
 		unsigned long nr, ret;
@@ -256,18 +249,21 @@ static ssize_t hugetlbfs_read(struct fil
 
 		/* nr is the maximum number of bytes to copy from this page */
 		nr = huge_page_size(h);
+		isize = i_size_read(inode);
+		if (!isize)
+			goto out;
+		end_index = (isize - 1) >> huge_page_shift(h);
 		if (index >= end_index) {
 			if (index > end_index)
 				goto out;
 			nr = ((isize - 1) & ~huge_page_mask(h)) + 1;
-			if (nr <= offset) {
+			if (nr <= offset)
 				goto out;
-			}
 		}
 		nr = nr - offset;
 
 		/* Find the page */
-		page = find_get_page(mapping, index);
+		page = find_lock_page(mapping, index);
 		if (unlikely(page == NULL)) {
 			/*
 			 * We have a HOLE, zero out the user-buffer for the
@@ -279,17 +275,18 @@ static ssize_t hugetlbfs_read(struct fil
 			else
 				ra = 0;
 		} else {
+			unlock_page(page);
+
 			/*
 			 * We have the page, copy it to user space buffer.
 			 */
 			ra = hugetlbfs_read_actor(page, offset, buf, len, nr);
 			ret = ra;
+			page_cache_release(page);
 		}
 		if (ra < 0) {
 			if (retval == 0)
 				retval = ra;
-			if (page)
-				page_cache_release(page);
 			goto out;
 		}
 
@@ -299,16 +296,12 @@ static ssize_t hugetlbfs_read(struct fil
 		index += offset >> huge_page_shift(h);
 		offset &= ~huge_page_mask(h);
 
-		if (page)
-			page_cache_release(page);
-
 		/* short read or no more work */
 		if ((ret != nr) || (len == 0))
 			break;
 	}
 out:
 	*ppos = ((loff_t)index << huge_page_shift(h)) + offset;
-	mutex_unlock(&inode->i_mutex);
 	return retval;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 060/149] ASoC: fsl: p1022ds: tell the WM8776 codec driver that its the master
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (58 preceding siblings ...)
  2012-03-30 19:49 ` [ 059/149] hugetlbfs: avoid taking i_mutex from hugetlbfs_read() Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 061/149] ASoC: pxa-ssp: atomically set stream active masks Greg KH
                   ` (88 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Timur Tabi, Mark Brown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Timur Tabi <timur@freescale.com>

commit 70ac07bb633dee75ac554195b9a4d69adfa7803c upstream.

The WM8776 codec driver requires the machine driver to set one of the
SND_SOC_DAIFMT_CBx_xxx values.  The P1022DS machine driver should be setting
SND_SOC_DAIFMT_CBM_CFM, but since that value was zero, no one noticed.

Commit 75d9ac46 ("ASoC: Allow DAI formats to be specified in the
dai_link"), however, changed the value of SND_SOC_DAIFMT_CBM_CFM from zero
to a non-zero value, which means that it now needs to be specifically set
by the machine driver.

We also set SND_SOC_DAIFMT_NB_NF, for the same reason.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/soc/fsl/p1022_ds.c |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

--- a/sound/soc/fsl/p1022_ds.c
+++ b/sound/soc/fsl/p1022_ds.c
@@ -392,7 +392,8 @@ static int p1022_ds_probe(struct platfor
 	}
 
 	if (strcasecmp(sprop, "i2s-slave") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_I2S;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
 
@@ -409,31 +410,38 @@ static int p1022_ds_probe(struct platfor
 		}
 		mdata->clk_frequency = be32_to_cpup(iprop);
 	} else if (strcasecmp(sprop, "i2s-master") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_I2S;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
 	} else if (strcasecmp(sprop, "lj-slave") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_LEFT_J;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
 	} else if (strcasecmp(sprop, "lj-master") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_LEFT_J;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBS_CFS;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
 	} else if (strcasecmp(sprop, "rj-slave") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBM_CFM;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
 	} else if (strcasecmp(sprop, "rj-master") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBS_CFS;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
 	} else if (strcasecmp(sprop, "ac97-slave") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_AC97;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBM_CFM;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
 	} else if (strcasecmp(sprop, "ac97-master") == 0) {
-		mdata->dai_format = SND_SOC_DAIFMT_AC97;
+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
+			SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBS_CFS;
 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
 	} else {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 061/149] ASoC: pxa-ssp: atomically set stream active masks
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (59 preceding siblings ...)
  2012-03-30 19:49 ` [ 060/149] ASoC: fsl: p1022ds: tell the WM8776 codec driver that its the master Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 062/149] tcm_loop: Set residual field for SCSI commands Greg KH
                   ` (87 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Daniel Mack, Mark Brown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Daniel Mack <zonque@gmail.com>

commit 273b72c8ce6b28df6b49423d775c3e59072c73c5 upstream.

PXA's SSP engine fails to take its current channel phase into account
when enabling a stream while the engine is already running. This
results in randomly swapped left/right channels on either the record
or the playback side, depending on which one was enabled first.

The following patch fixes this by factoring out the bit field
modifications in question to a separate function that pauses the
engine temporarily, modifies the bits and kicks it off again
afterwards. Appearantly, a transition of SSCR0_SSE syncs both
directions properly.

The patch has been rolled out to quite a number of devices over the
last weeks and seems to fix the issue reliably.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-and-tested-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/soc/pxa/pxa-ssp.c |   61 ++++++++++++++++++++++++++++--------------------
 1 file changed, 36 insertions(+), 25 deletions(-)

--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@ -668,6 +668,38 @@ static int pxa_ssp_hw_params(struct snd_
 	return 0;
 }
 
+static void pxa_ssp_set_running_bit(struct snd_pcm_substream *substream,
+				    struct ssp_device *ssp, int value)
+{
+	uint32_t sscr0 = pxa_ssp_read_reg(ssp, SSCR0);
+	uint32_t sscr1 = pxa_ssp_read_reg(ssp, SSCR1);
+	uint32_t sspsp = pxa_ssp_read_reg(ssp, SSPSP);
+	uint32_t sssr = pxa_ssp_read_reg(ssp, SSSR);
+
+	if (value && (sscr0 & SSCR0_SSE))
+		pxa_ssp_write_reg(ssp, SSCR0, sscr0 & ~SSCR0_SSE);
+
+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
+		if (value)
+			sscr1 |= SSCR1_TSRE;
+		else
+			sscr1 &= ~SSCR1_TSRE;
+	} else {
+		if (value)
+			sscr1 |= SSCR1_RSRE;
+		else
+			sscr1 &= ~SSCR1_RSRE;
+	}
+
+	pxa_ssp_write_reg(ssp, SSCR1, sscr1);
+
+	if (value) {
+		pxa_ssp_write_reg(ssp, SSSR, sssr);
+		pxa_ssp_write_reg(ssp, SSPSP, sspsp);
+		pxa_ssp_write_reg(ssp, SSCR0, sscr0 | SSCR0_SSE);
+	}
+}
+
 static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd,
 			   struct snd_soc_dai *cpu_dai)
 {
@@ -681,42 +713,21 @@ static int pxa_ssp_trigger(struct snd_pc
 		pxa_ssp_enable(ssp);
 		break;
 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-		val = pxa_ssp_read_reg(ssp, SSCR1);
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			val |= SSCR1_TSRE;
-		else
-			val |= SSCR1_RSRE;
-		pxa_ssp_write_reg(ssp, SSCR1, val);
+		pxa_ssp_set_running_bit(substream, ssp, 1);
 		val = pxa_ssp_read_reg(ssp, SSSR);
 		pxa_ssp_write_reg(ssp, SSSR, val);
 		break;
 	case SNDRV_PCM_TRIGGER_START:
-		val = pxa_ssp_read_reg(ssp, SSCR1);
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			val |= SSCR1_TSRE;
-		else
-			val |= SSCR1_RSRE;
-		pxa_ssp_write_reg(ssp, SSCR1, val);
-		pxa_ssp_enable(ssp);
+		pxa_ssp_set_running_bit(substream, ssp, 1);
 		break;
 	case SNDRV_PCM_TRIGGER_STOP:
-		val = pxa_ssp_read_reg(ssp, SSCR1);
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			val &= ~SSCR1_TSRE;
-		else
-			val &= ~SSCR1_RSRE;
-		pxa_ssp_write_reg(ssp, SSCR1, val);
+		pxa_ssp_set_running_bit(substream, ssp, 0);
 		break;
 	case SNDRV_PCM_TRIGGER_SUSPEND:
 		pxa_ssp_disable(ssp);
 		break;
 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-		val = pxa_ssp_read_reg(ssp, SSCR1);
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			val &= ~SSCR1_TSRE;
-		else
-			val &= ~SSCR1_RSRE;
-		pxa_ssp_write_reg(ssp, SSCR1, val);
+		pxa_ssp_set_running_bit(substream, ssp, 0);
 		break;
 
 	default:



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 062/149] tcm_loop: Set residual field for SCSI commands
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (60 preceding siblings ...)
  2012-03-30 19:49 ` [ 061/149] ASoC: pxa-ssp: atomically set stream active masks Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 063/149] iscsi-target: Fix iscsit_alloc_buffs() failure cases Greg KH
                   ` (86 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Roland Dreier, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roland Dreier <roland@purestorage.com>

commit 6cf3fa6918baab0c447f1206f1cef9166ad04864 upstream.

If the target core signals an over- or under-run, tcm_loop should call
scsi_set_resid() to tell the SCSI midlayer about the residual data length.

The difference can be seen by doing something like

    strace -eioctl sg_raw -r 1024 /dev/sda 8 0 0 0 1 0 > /dev/null

and looking at the "resid=" part of the SG_IO ioctl -- after this patch,
the field is correctly reported as 512.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/loopback/tcm_loop.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/target/loopback/tcm_loop.c
+++ b/drivers/target/loopback/tcm_loop.c
@@ -866,6 +866,9 @@ static int tcm_loop_queue_data_in(struct
 
 	sc->result = SAM_STAT_GOOD;
 	set_host_byte(sc, DID_OK);
+	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
+	    (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
+		scsi_set_resid(sc, se_cmd->residual_count);
 	sc->scsi_done(sc);
 	return 0;
 }
@@ -891,6 +894,9 @@ static int tcm_loop_queue_status(struct
 		sc->result = se_cmd->scsi_status;
 
 	set_host_byte(sc, DID_OK);
+	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
+	    (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
+		scsi_set_resid(sc, se_cmd->residual_count);
 	sc->scsi_done(sc);
 	return 0;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 063/149] iscsi-target: Fix iscsit_alloc_buffs() failure cases
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (61 preceding siblings ...)
  2012-03-30 19:49 ` [ 062/149] tcm_loop: Set residual field for SCSI commands Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 064/149] iscsi-target: Fix dynamic -> explict NodeACL pointer reference Greg KH
                   ` (85 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Roland Dreier, Andy Grover, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit d335e6054db616bce3f040e659fa38440518ad1d upstream.

Make iscsit_alloc_buffs() failure case for page_alloc_failed use correct
__free_page() SGL pointer, and return -ENOMEM for iscsit_allocate_iovecs
failure to push se_cmd->t_mem_sg release into iscsit_release_cmd()
callback during iscsit_add_reject_from_cmd() connection reset.

Also drop cmd->t_mem_sg = NULL assignment from page_alloc_failed
failure case.

Reported-by: Roland Dreier <roland@purestorage.com>
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/iscsi/iscsi_target.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -781,7 +781,7 @@ static int iscsit_alloc_buffs(struct isc
 	struct scatterlist *sgl;
 	u32 length = cmd->se_cmd.data_length;
 	int nents = DIV_ROUND_UP(length, PAGE_SIZE);
-	int i = 0, ret;
+	int i = 0, j = 0, ret;
 	/*
 	 * If no SCSI payload is present, allocate the default iovecs used for
 	 * iSCSI PDU Header
@@ -822,17 +822,15 @@ static int iscsit_alloc_buffs(struct isc
 	 */
         ret = iscsit_allocate_iovecs(cmd);
         if (ret < 0)
-		goto page_alloc_failed;
+		return -ENOMEM;
 
 	return 0;
 
 page_alloc_failed:
-	while (i >= 0) {
-		__free_page(sg_page(&sgl[i]));
-		i--;
-	}
-	kfree(cmd->t_mem_sg);
-	cmd->t_mem_sg = NULL;
+	while (j < i)
+		__free_page(sg_page(&sgl[j++]));
+
+	kfree(sgl);
 	return -ENOMEM;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 064/149] iscsi-target: Fix dynamic -> explict NodeACL pointer reference
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (62 preceding siblings ...)
  2012-03-30 19:49 ` [ 063/149] iscsi-target: Fix iscsit_alloc_buffs() failure cases Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 065/149] ALSA: hda - fix printing of high HDMI sample rates Greg KH
                   ` (84 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit d06283341aee9e48eff1b068779d340785c635ce upstream.

This patch fixes a free after use in lio_target_make_nodeacl() where
iscsi_node_acl was referenced from the original se_nacl_new allocation,
instead of from core_tpg_add_initiator_node_acl() in the case of dynamic
-> explict NodeACL conversion.

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/iscsi/iscsi_target_configfs.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

--- a/drivers/target/iscsi/iscsi_target_configfs.c
+++ b/drivers/target/iscsi/iscsi_target_configfs.c
@@ -816,9 +816,6 @@ static struct se_node_acl *lio_target_ma
 	if (!se_nacl_new)
 		return ERR_PTR(-ENOMEM);
 
-	acl = container_of(se_nacl_new, struct iscsi_node_acl,
-				se_node_acl);
-
 	cmdsn_depth = ISCSI_TPG_ATTRIB(tpg)->default_cmdsn_depth;
 	/*
 	 * se_nacl_new may be released by core_tpg_add_initiator_node_acl()
@@ -829,7 +826,8 @@ static struct se_node_acl *lio_target_ma
 	if (IS_ERR(se_nacl))
 		return se_nacl;
 
-	stats_cg = &acl->se_node_acl.acl_fabric_stat_group;
+	acl = container_of(se_nacl, struct iscsi_node_acl, se_node_acl);
+	stats_cg = &se_nacl->acl_fabric_stat_group;
 
 	stats_cg->default_groups = kzalloc(sizeof(struct config_group) * 2,
 				GFP_KERNEL);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 065/149] ALSA: hda - fix printing of high HDMI sample rates
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (63 preceding siblings ...)
  2012-03-30 19:49 ` [ 064/149] iscsi-target: Fix dynamic -> explict NodeACL pointer reference Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 066/149] usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH Greg KH
                   ` (83 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Anssi Hannula, Pierre-Louis Bossart, Takashi Iwai

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Anssi Hannula <anssi.hannula@iki.fi>

commit 25dc16f69892182192b1234594fd3cf342ad4195 upstream.

A previous commit af65cbf296 (ALSA: hdmi: fix printout of SAD sampling
rates) fixed the sample rates shown in /proc/asound/cardX/eldY and
kernel log to not be entirely wrong. However, a missing rate from the
array added in the patch causes HDMI rates 88.2 kHz, 96 kHz, 176.4 kHz,
and 192 kHz to be shown as 96 kHz, 176.4 kHz, 192 kHz, and 384 kHz,
respectively.

Fix the reporting by adding the ALSA rate 64 kHz into the conversion
array between 48 kHz and 88.2 kHz.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/pci/hda/hda_eld.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/sound/pci/hda/hda_eld.c
+++ b/sound/pci/hda/hda_eld.c
@@ -385,8 +385,8 @@ error:
 static void hdmi_print_pcm_rates(int pcm, char *buf, int buflen)
 {
 	static unsigned int alsa_rates[] = {
-		5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200,
-		96000, 176400, 192000, 384000
+		5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 64000,
+		88200, 96000, 176400, 192000, 384000
 	};
 	int i, j;
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 066/149] usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (64 preceding siblings ...)
  2012-03-30 19:49 ` [ 065/149] ALSA: hda - fix printing of high HDMI sample rates Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 067/149] udlfb: remove sysfs framebuffer device with USB .disconnect() Greg KH
                   ` (82 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Lothar Waßmann, Michal Nazarewicz

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 6776 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Lothar Waßmann <LW@KARO-electronics.de>

commit 8d0698428822ce63f7269e7fe81fc4580807b9ac upstream.

 commit 28824b18ac4705e876a282a15ea0de8fc957551f:
 |Author: Michal Nazarewicz <m.nazarewicz@samsung.com>
 |Date:   Wed May 5 12:53:13 2010 +0200
 |
 |    USB: gadget: __init and __exit tags removed
 |
 |    __init, __initdata and __exit tags have have been removed from
 |    various files to make it possible for gadgets that do not use
 |    the __init/__exit tags to use those.
 obviously missed (at least) this case leading to a section mismatch in
 g_ffs.c when compiling with CONFIG_USB_FUNCTIONFS_ETH enabled.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/usb/gadget/f_subset.c |   34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

--- a/drivers/usb/gadget/f_subset.c
+++ b/drivers/usb/gadget/f_subset.c
@@ -74,7 +74,7 @@ static inline struct f_gether *func_to_g
 
 /* interface descriptor: */
 
-static struct usb_interface_descriptor subset_data_intf __initdata = {
+static struct usb_interface_descriptor subset_data_intf = {
 	.bLength =		sizeof subset_data_intf,
 	.bDescriptorType =	USB_DT_INTERFACE,
 
@@ -87,7 +87,7 @@ static struct usb_interface_descriptor s
 	/* .iInterface = DYNAMIC */
 };
 
-static struct usb_cdc_header_desc mdlm_header_desc __initdata = {
+static struct usb_cdc_header_desc mdlm_header_desc = {
 	.bLength =		sizeof mdlm_header_desc,
 	.bDescriptorType =	USB_DT_CS_INTERFACE,
 	.bDescriptorSubType =	USB_CDC_HEADER_TYPE,
@@ -95,7 +95,7 @@ static struct usb_cdc_header_desc mdlm_h
 	.bcdCDC =		cpu_to_le16(0x0110),
 };
 
-static struct usb_cdc_mdlm_desc mdlm_desc __initdata = {
+static struct usb_cdc_mdlm_desc mdlm_desc = {
 	.bLength =		sizeof mdlm_desc,
 	.bDescriptorType =	USB_DT_CS_INTERFACE,
 	.bDescriptorSubType =	USB_CDC_MDLM_TYPE,
@@ -111,7 +111,7 @@ static struct usb_cdc_mdlm_desc mdlm_des
  * can't really use its struct.  All we do here is say that we're using
  * the submode of "SAFE" which directly matches the CDC Subset.
  */
-static u8 mdlm_detail_desc[] __initdata = {
+static u8 mdlm_detail_desc[] = {
 	6,
 	USB_DT_CS_INTERFACE,
 	USB_CDC_MDLM_DETAIL_TYPE,
@@ -121,7 +121,7 @@ static u8 mdlm_detail_desc[] __initdata
 	0,	/* network data capabilities ("raw" encapsulation) */
 };
 
-static struct usb_cdc_ether_desc ether_desc __initdata = {
+static struct usb_cdc_ether_desc ether_desc = {
 	.bLength =		sizeof ether_desc,
 	.bDescriptorType =	USB_DT_CS_INTERFACE,
 	.bDescriptorSubType =	USB_CDC_ETHERNET_TYPE,
@@ -136,7 +136,7 @@ static struct usb_cdc_ether_desc ether_d
 
 /* full speed support: */
 
-static struct usb_endpoint_descriptor fs_subset_in_desc __initdata = {
+static struct usb_endpoint_descriptor fs_subset_in_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -144,7 +144,7 @@ static struct usb_endpoint_descriptor fs
 	.bmAttributes =		USB_ENDPOINT_XFER_BULK,
 };
 
-static struct usb_endpoint_descriptor fs_subset_out_desc __initdata = {
+static struct usb_endpoint_descriptor fs_subset_out_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -152,7 +152,7 @@ static struct usb_endpoint_descriptor fs
 	.bmAttributes =		USB_ENDPOINT_XFER_BULK,
 };
 
-static struct usb_descriptor_header *fs_eth_function[] __initdata = {
+static struct usb_descriptor_header *fs_eth_function[] = {
 	(struct usb_descriptor_header *) &subset_data_intf,
 	(struct usb_descriptor_header *) &mdlm_header_desc,
 	(struct usb_descriptor_header *) &mdlm_desc,
@@ -165,7 +165,7 @@ static struct usb_descriptor_header *fs_
 
 /* high speed support: */
 
-static struct usb_endpoint_descriptor hs_subset_in_desc __initdata = {
+static struct usb_endpoint_descriptor hs_subset_in_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -173,7 +173,7 @@ static struct usb_endpoint_descriptor hs
 	.wMaxPacketSize =	cpu_to_le16(512),
 };
 
-static struct usb_endpoint_descriptor hs_subset_out_desc __initdata = {
+static struct usb_endpoint_descriptor hs_subset_out_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -181,7 +181,7 @@ static struct usb_endpoint_descriptor hs
 	.wMaxPacketSize =	cpu_to_le16(512),
 };
 
-static struct usb_descriptor_header *hs_eth_function[] __initdata = {
+static struct usb_descriptor_header *hs_eth_function[] = {
 	(struct usb_descriptor_header *) &subset_data_intf,
 	(struct usb_descriptor_header *) &mdlm_header_desc,
 	(struct usb_descriptor_header *) &mdlm_desc,
@@ -194,7 +194,7 @@ static struct usb_descriptor_header *hs_
 
 /* super speed support: */
 
-static struct usb_endpoint_descriptor ss_subset_in_desc __initdata = {
+static struct usb_endpoint_descriptor ss_subset_in_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -202,7 +202,7 @@ static struct usb_endpoint_descriptor ss
 	.wMaxPacketSize =	cpu_to_le16(1024),
 };
 
-static struct usb_endpoint_descriptor ss_subset_out_desc __initdata = {
+static struct usb_endpoint_descriptor ss_subset_out_desc = {
 	.bLength =		USB_DT_ENDPOINT_SIZE,
 	.bDescriptorType =	USB_DT_ENDPOINT,
 
@@ -210,7 +210,7 @@ static struct usb_endpoint_descriptor ss
 	.wMaxPacketSize =	cpu_to_le16(1024),
 };
 
-static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc __initdata = {
+static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc = {
 	.bLength =		sizeof ss_subset_bulk_comp_desc,
 	.bDescriptorType =	USB_DT_SS_ENDPOINT_COMP,
 
@@ -219,7 +219,7 @@ static struct usb_ss_ep_comp_descriptor
 	/* .bmAttributes =	0, */
 };
 
-static struct usb_descriptor_header *ss_eth_function[] __initdata = {
+static struct usb_descriptor_header *ss_eth_function[] = {
 	(struct usb_descriptor_header *) &subset_data_intf,
 	(struct usb_descriptor_header *) &mdlm_header_desc,
 	(struct usb_descriptor_header *) &mdlm_desc,
@@ -290,7 +290,7 @@ static void geth_disable(struct usb_func
 
 /* serial function driver setup/binding */
 
-static int __init
+static int
 geth_bind(struct usb_configuration *c, struct usb_function *f)
 {
 	struct usb_composite_dev *cdev = c->cdev;
@@ -404,7 +404,7 @@ geth_unbind(struct usb_configuration *c,
  * Caller must have called @gether_setup().  Caller is also responsible
  * for calling @gether_cleanup() before module unload.
  */
-int __init geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
+int geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
 {
 	struct f_gether	*geth;
 	int		status;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 067/149] udlfb: remove sysfs framebuffer device with USB .disconnect()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (65 preceding siblings ...)
  2012-03-30 19:49 ` [ 066/149] usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 068/149] tcm_fc: Fix fc_exch memory leak in ft_send_resp_status Greg KH
                   ` (81 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Bernie Thompson, Kay Sievers,
	Florian Tobias Schandinat

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Kay Sievers <kay.sievers@vrfy.org>

commit ce880cb860f36694d2cdebfac9e6ae18176fe4c4 upstream.

The USB graphics card driver delays the unregistering of the framebuffer
device to a workqueue, which breaks the userspace visible remove uevent
sequence. Recent userspace tools started to support USB graphics card
hotplug out-of-the-box and rely on proper events sent by the kernel.

The framebuffer device is a direct child of the USB interface which is
removed immediately after the USB .disconnect() callback. But the fb device
in /sys stays around until its final cleanup, at a time where all the parent
devices have been removed already.

To work around that, we remove the sysfs fb device directly in the USB
.disconnect() callback and leave only the cleanup of the internal fb
data to the delayed work.

Before:
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 remove   /2-1.2:1.0/graphics/fb0 (graphics)

After:
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)

Tested-by: Bernie Thompson <bernie@plugable.com>
Acked-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/video/fbmem.c |   18 +++++++++++++++++-
 drivers/video/udlfb.c |    2 +-
 include/linux/fb.h    |    1 +
 3 files changed, 19 insertions(+), 2 deletions(-)

--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1651,6 +1651,7 @@ static int do_unregister_framebuffer(str
 	if (ret)
 		return -EINVAL;
 
+	unlink_framebuffer(fb_info);
 	if (fb_info->pixmap.addr &&
 	    (fb_info->pixmap.flags & FB_PIXMAP_DEFAULT))
 		kfree(fb_info->pixmap.addr);
@@ -1658,7 +1659,6 @@ static int do_unregister_framebuffer(str
 	registered_fb[i] = NULL;
 	num_registered_fb--;
 	fb_cleanup_device(fb_info);
-	device_destroy(fb_class, MKDEV(FB_MAJOR, i));
 	event.info = fb_info;
 	fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event);
 
@@ -1667,6 +1667,22 @@ static int do_unregister_framebuffer(str
 	return 0;
 }
 
+int unlink_framebuffer(struct fb_info *fb_info)
+{
+	int i;
+
+	i = fb_info->node;
+	if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info)
+		return -EINVAL;
+
+	if (fb_info->dev) {
+		device_destroy(fb_class, MKDEV(FB_MAJOR, i));
+		fb_info->dev = NULL;
+	}
+	return 0;
+}
+EXPORT_SYMBOL(unlink_framebuffer);
+
 void remove_conflicting_framebuffers(struct apertures_struct *a,
 				     const char *name, bool primary)
 {
--- a/drivers/video/udlfb.c
+++ b/drivers/video/udlfb.c
@@ -1739,7 +1739,7 @@ static void dlfb_usb_disconnect(struct u
 	for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++)
 		device_remove_file(info->dev, &fb_device_attrs[i]);
 	device_remove_bin_file(info->dev, &edid_attr);
-
+	unlink_framebuffer(info);
 	usb_set_intfdata(interface, NULL);
 
 	/* if clients still have us open, will be freed on last close */
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -997,6 +997,7 @@ extern ssize_t fb_sys_write(struct fb_in
 /* drivers/video/fbmem.c */
 extern int register_framebuffer(struct fb_info *fb_info);
 extern int unregister_framebuffer(struct fb_info *fb_info);
+extern int unlink_framebuffer(struct fb_info *fb_info);
 extern void remove_conflicting_framebuffers(struct apertures_struct *a,
 				const char *name, bool primary);
 extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 068/149] tcm_fc: Fix fc_exch memory leak in ft_send_resp_status
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (66 preceding siblings ...)
  2012-03-30 19:49 ` [ 067/149] udlfb: remove sysfs framebuffer device with USB .disconnect() Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 069/149] md/bitmap: ensure to load bitmap when creating via sysfs Greg KH
                   ` (80 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Mark D Rustad, Kiran Patil, Robert Love,
	Andy Grover, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit 031ed4d565b31880a4136bb7366bc89f5b1dba7d upstream.

This patch fixes a bug in tcm_fc where fc_exch memory from fc_exch_mgr->ep_pool
is currently being leaked by ft_send_resp_status() usage.  Following current
code in ft_queue_status() response path, using lport->tt.seq_send() needs to be
followed by a lport->tt.exch_done() in order to release fc_exch memory back into
libfc_em kmem_cache.

ft_send_resp_status() code is currently used in pre submit se_cmd ft_send_work()
error exceptions, TM request setup exceptions, and main TM response callback
path in ft_queue_tm_resp().  This bugfix addresses the leak in these cases.

Cc: Mark D Rustad <mark.d.rustad@intel.com>
Cc: Kiran Patil <kiran.patil@intel.com>
Cc: Robert Love <robert.w.love@intel.com>
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/tcm_fc/tfc_cmd.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/target/tcm_fc/tfc_cmd.c
+++ b/drivers/target/tcm_fc/tfc_cmd.c
@@ -329,10 +329,12 @@ static void ft_send_resp_status(struct f
 
 	fc_fill_reply_hdr(fp, rx_fp, FC_RCTL_DD_CMD_STATUS, 0);
 	sp = fr_seq(fp);
-	if (sp)
+	if (sp) {
 		lport->tt.seq_send(lport, sp, fp);
-	else
+		lport->tt.exch_done(sp);
+	} else {
 		lport->tt.frame_send(lport, fp);
+	}
 }
 
 /*



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 069/149] md/bitmap: ensure to load bitmap when creating via sysfs.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (67 preceding siblings ...)
  2012-03-30 19:49 ` [ 068/149] tcm_fc: Fix fc_exch memory leak in ft_send_resp_status Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 070/149] md: dont set md arrays to readonly on shutdown Greg KH
                   ` (79 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, NeilBrown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.de>

commit 4474ca42e2577563a919fd3ed782e2ec55bf11a2 upstream.

When commit 69e51b449d383e (md/bitmap:  separate out loading a bitmap...)
created bitmap_load, it missed calling it after bitmap_create when a
bitmap is created through the sysfs interface.
So if a bitmap is added this way, we don't allocate memory properly
and can crash.

This is suitable for any -stable release since 2.6.35.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/bitmap.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1904,6 +1904,8 @@ location_store(struct mddev *mddev, cons
 			if (mddev->pers) {
 				mddev->pers->quiesce(mddev, 1);
 				rv = bitmap_create(mddev);
+				if (!rv)
+					rv = bitmap_load(mddev);
 				if (rv) {
 					bitmap_destroy(mddev);
 					mddev->bitmap_info.offset = 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 070/149] md: dont set md arrays to readonly on shutdown.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (68 preceding siblings ...)
  2012-03-30 19:49 ` [ 069/149] md/bitmap: ensure to load bitmap when creating via sysfs Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 071/149] md/raid1,raid10: avoid deadlock during resync/recovery Greg KH
                   ` (78 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, NeilBrown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.de>

commit c744a65c1e2d59acc54333ce80a5b0702a98010b upstream.

It seems that with recent kernel, writeback can still be happening
while shutdown is happening, and consequently data can be written
after the md reboot notifier switches all arrays to read-only.
This causes a BUG.

So don't switch them to read-only - just mark them clean and
set 'safemode' to '2' which mean that immediately after any
write the array will be switch back to 'clean'.

This could result in the shutdown happening when array is marked
dirty, thus forcing a resync on reboot.  However if you reboot
without performing a "sync" first, you get to keep both halves.

This is suitable for any stable kernel (though there might be some
conflicts with obvious fixes in earlier kernels).

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/md.c |   37 +++++++++++++++----------------------
 1 file changed, 15 insertions(+), 22 deletions(-)

--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -8097,30 +8097,23 @@ static int md_notify_reboot(struct notif
 	struct mddev *mddev;
 	int need_delay = 0;
 
-	if ((code == SYS_DOWN) || (code == SYS_HALT) || (code == SYS_POWER_OFF)) {
-
-		printk(KERN_INFO "md: stopping all md devices.\n");
-
-		for_each_mddev(mddev, tmp) {
-			if (mddev_trylock(mddev)) {
-				/* Force a switch to readonly even array
-				 * appears to still be in use.  Hence
-				 * the '100'.
-				 */
-				md_set_readonly(mddev, 100);
-				mddev_unlock(mddev);
-			}
-			need_delay = 1;
+	for_each_mddev(mddev, tmp) {
+		if (mddev_trylock(mddev)) {
+			__md_stop_writes(mddev);
+			mddev->safemode = 2;
+			mddev_unlock(mddev);
 		}
-		/*
-		 * certain more exotic SCSI devices are known to be
-		 * volatile wrt too early system reboots. While the
-		 * right place to handle this issue is the given
-		 * driver, we do want to have a safe RAID driver ...
-		 */
-		if (need_delay)
-			mdelay(1000*1);
+		need_delay = 1;
 	}
+	/*
+	 * certain more exotic SCSI devices are known to be
+	 * volatile wrt too early system reboots. While the
+	 * right place to handle this issue is the given
+	 * driver, we do want to have a safe RAID driver ...
+	 */
+	if (need_delay)
+		mdelay(1000*1);
+
 	return NOTIFY_DONE;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 071/149] md/raid1,raid10: avoid deadlock during resync/recovery.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (69 preceding siblings ...)
  2012-03-30 19:49 ` [ 070/149] md: dont set md arrays to readonly on shutdown Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 072/149] md: fix clearing of the changed flags for the bad blocks list Greg KH
                   ` (77 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Ray Morris, NeilBrown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.de>

commit d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf upstream.

If RAID1 or RAID10 is used under LVM or some other stacking
block device, it is possible to enter a deadlock during
resync or recovery.
This can happen if the upper level block device creates
two requests to the RAID1 or RAID10.  The first request gets
processed, blocks recovery and queue requests for underlying
requests in current->bio_list.  A resync request then starts
which will wait for those requests and block new IO.

But then the second request to the RAID1/10 will be attempted
and it cannot progress until the resync request completes,
which cannot progress until the underlying device requests complete,
which are on a queue behind that second request.

So allow that second request to proceed even though there is
a resync request about to start.

This is suitable for any -stable kernel.

Reported-by: Ray Morris <support@bettercgi.com>
Tested-by: Ray Morris <support@bettercgi.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/raid1.c  |   17 +++++++++++++++--
 drivers/md/raid10.c |   17 +++++++++++++++--
 2 files changed, 30 insertions(+), 4 deletions(-)

--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -731,9 +731,22 @@ static void wait_barrier(struct r1conf *
 	spin_lock_irq(&conf->resync_lock);
 	if (conf->barrier) {
 		conf->nr_waiting++;
-		wait_event_lock_irq(conf->wait_barrier, !conf->barrier,
+		/* Wait for the barrier to drop.
+		 * However if there are already pending
+		 * requests (preventing the barrier from
+		 * rising completely), and the
+		 * pre-process bio queue isn't empty,
+		 * then don't wait, as we need to empty
+		 * that queue to get the nr_pending
+		 * count down.
+		 */
+		wait_event_lock_irq(conf->wait_barrier,
+				    !conf->barrier ||
+				    (conf->nr_pending &&
+				     current->bio_list &&
+				     !bio_list_empty(current->bio_list)),
 				    conf->resync_lock,
-				    );
+			);
 		conf->nr_waiting--;
 	}
 	conf->nr_pending++;
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -790,9 +790,22 @@ static void wait_barrier(struct r10conf
 	spin_lock_irq(&conf->resync_lock);
 	if (conf->barrier) {
 		conf->nr_waiting++;
-		wait_event_lock_irq(conf->wait_barrier, !conf->barrier,
+		/* Wait for the barrier to drop.
+		 * However if there are already pending
+		 * requests (preventing the barrier from
+		 * rising completely), and the
+		 * pre-process bio queue isn't empty,
+		 * then don't wait, as we need to empty
+		 * that queue to get the nr_pending
+		 * count down.
+		 */
+		wait_event_lock_irq(conf->wait_barrier,
+				    !conf->barrier ||
+				    (conf->nr_pending &&
+				     current->bio_list &&
+				     !bio_list_empty(current->bio_list)),
 				    conf->resync_lock,
-				    );
+			);
 		conf->nr_waiting--;
 	}
 	conf->nr_pending++;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 072/149] md: fix clearing of the changed flags for the bad blocks list.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (70 preceding siblings ...)
  2012-03-30 19:49 ` [ 071/149] md/raid1,raid10: avoid deadlock during resync/recovery Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 073/149] drm/i915: Only clear the GPU domains upon a successful finish Greg KH
                   ` (76 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, NeilBrown

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.de>

commit d0962936bff659d20522555b517582a2715fd23f upstream.

In super_1_sync (the first hunk) we need to clear 'changed' before
checking read_seqretry(), otherwise we might race with other code
adding a bad block and so won't retry later.

In md_update_sb (the second hunk), in the case where there is no
metadata (neither persistent nor external), we treat any bad blocks as
an error.  However we need to clear the 'changed' flag before calling
md_ack_all_badblocks, else it won't do anything.

This patch is suitable for -stable release 3.0 and later.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/md.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1801,13 +1801,13 @@ retry:
 						| BB_LEN(internal_bb));
 				*bbp++ = cpu_to_le64(store_bb);
 			}
+			bb->changed = 0;
 			if (read_seqretry(&bb->lock, seq))
 				goto retry;
 
 			bb->sector = (rdev->sb_start +
 				      (int)le32_to_cpu(sb->bblog_offset));
 			bb->size = le16_to_cpu(sb->bblog_size);
-			bb->changed = 0;
 		}
 	}
 
@@ -2362,6 +2362,7 @@ repeat:
 			clear_bit(MD_CHANGE_PENDING, &mddev->flags);
 			list_for_each_entry(rdev, &mddev->disks, same_set) {
 				if (rdev->badblocks.changed) {
+					rdev->badblocks.changed = 0;
 					md_ack_all_badblocks(&rdev->badblocks);
 					md_error(mddev, rdev);
 				}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 073/149] drm/i915: Only clear the GPU domains upon a successful finish
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (71 preceding siblings ...)
  2012-03-30 19:49 ` [ 072/149] md: fix clearing of the changed flags for the bad blocks list Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 074/149] drm/radeon: Restrict offset for legacy hardware cursor Greg KH
                   ` (75 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Chris Wilson, Daniel Vetter, Eugeni Dodonov

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Chris Wilson <chris@chris-wilson.co.uk>

commit c501ae7f332cdaf42e31af30b72b4b66cbbb1604 upstream.

By clearing the GPU read domains before waiting upon the buffer, we run
the risk of the wait being interrupted and the domains prematurely
cleared. The next time we attempt to wait upon the buffer (after
userspace handles the signal), we believe that the buffer is idle and so
skip the wait.

There are a number of bugs across all generations which show signs of an
overly haste reuse of active buffers.

Such as:

  https://bugs.freedesktop.org/show_bug.cgi?id=29046
  https://bugs.freedesktop.org/show_bug.cgi?id=35863
  https://bugs.freedesktop.org/show_bug.cgi?id=38952
  https://bugs.freedesktop.org/show_bug.cgi?id=40282
  https://bugs.freedesktop.org/show_bug.cgi?id=41098
  https://bugs.freedesktop.org/show_bug.cgi?id=41102
  https://bugs.freedesktop.org/show_bug.cgi?id=41284
  https://bugs.freedesktop.org/show_bug.cgi?id=42141

A couple of those pre-date i915_gem_object_finish_gpu(), so may be
unrelated (such as a wild write from a userspace command buffer), but
this does look like a convincing cause for most of those bugs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/i915/i915_gem.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3084,10 +3084,13 @@ i915_gem_object_finish_gpu(struct drm_i9
 			return ret;
 	}
 
+	ret = i915_gem_object_wait_rendering(obj);
+	if (ret)
+		return ret;
+
 	/* Ensure that we invalidate the GPU's caches and TLBs. */
 	obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
-
-	return i915_gem_object_wait_rendering(obj);
+	return 0;
 }
 
 /**



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 074/149] drm/radeon: Restrict offset for legacy hardware cursor.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (72 preceding siblings ...)
  2012-03-30 19:49 ` [ 073/149] drm/i915: Only clear the GPU domains upon a successful finish Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 075/149] drm/radeon/kms: fix analog load detection on DVI-I connectors Greg KH
                   ` (74 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Michel Dänzer, Alex Deucher, Dave Airlie

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 4052 bytes --]

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michel Dänzer <michel.daenzer@amd.com>

commit c4353016dac10133fa5d8535af83f0c4845a2915 upstream.

The hardware only takes 27 bits for the offset, so larger offsets are
truncated, and the hardware cursor shows random bits other than the intended
ones.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46796

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

---
 drivers/gpu/drm/radeon/radeon_cursor.c |   13 +++++++++++--
 drivers/gpu/drm/radeon/radeon_object.c |   18 +++++++++++++++++-
 drivers/gpu/drm/radeon/radeon_object.h |    2 ++
 3 files changed, 30 insertions(+), 3 deletions(-)

--- a/drivers/gpu/drm/radeon/radeon_cursor.c
+++ b/drivers/gpu/drm/radeon/radeon_cursor.c
@@ -151,7 +151,9 @@ int radeon_crtc_cursor_set(struct drm_cr
 			   uint32_t height)
 {
 	struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
+	struct radeon_device *rdev = crtc->dev->dev_private;
 	struct drm_gem_object *obj;
+	struct radeon_bo *robj;
 	uint64_t gpu_addr;
 	int ret;
 
@@ -173,7 +175,15 @@ int radeon_crtc_cursor_set(struct drm_cr
 		return -ENOENT;
 	}
 
-	ret = radeon_gem_object_pin(obj, RADEON_GEM_DOMAIN_VRAM, &gpu_addr);
+	robj = gem_to_radeon_bo(obj);
+	ret = radeon_bo_reserve(robj, false);
+	if (unlikely(ret != 0))
+		goto fail;
+	/* Only 27 bit offset for legacy cursor */
+	ret = radeon_bo_pin_restricted(robj, RADEON_GEM_DOMAIN_VRAM,
+				       ASIC_IS_AVIVO(rdev) ? 0 : 1 << 27,
+				       &gpu_addr);
+	radeon_bo_unreserve(robj);
 	if (ret)
 		goto fail;
 
@@ -181,7 +191,6 @@ int radeon_crtc_cursor_set(struct drm_cr
 	radeon_crtc->cursor_height = height;
 
 	radeon_lock_cursor(crtc, true);
-	/* XXX only 27 bit offset for legacy cursor */
 	radeon_set_cursor(crtc, obj, gpu_addr);
 	radeon_show_cursor(crtc);
 	radeon_lock_cursor(crtc, false);
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -204,7 +204,8 @@ void radeon_bo_unref(struct radeon_bo **
 		*bo = NULL;
 }
 
-int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
+int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, u64 max_offset,
+			     u64 *gpu_addr)
 {
 	int r, i;
 
@@ -212,6 +213,7 @@ int radeon_bo_pin(struct radeon_bo *bo,
 		bo->pin_count++;
 		if (gpu_addr)
 			*gpu_addr = radeon_bo_gpu_offset(bo);
+		WARN_ON_ONCE(max_offset != 0);
 		return 0;
 	}
 	radeon_ttm_placement_from_domain(bo, domain);
@@ -219,6 +221,15 @@ int radeon_bo_pin(struct radeon_bo *bo,
 		/* force to pin into visible video ram */
 		bo->placement.lpfn = bo->rdev->mc.visible_vram_size >> PAGE_SHIFT;
 	}
+	if (max_offset) {
+		u64 lpfn = max_offset >> PAGE_SHIFT;
+
+		if (!bo->placement.lpfn)
+			bo->placement.lpfn = bo->rdev->mc.gtt_size >> PAGE_SHIFT;
+
+		if (lpfn < bo->placement.lpfn)
+			bo->placement.lpfn = lpfn;
+	}
 	for (i = 0; i < bo->placement.num_placement; i++)
 		bo->placements[i] |= TTM_PL_FLAG_NO_EVICT;
 	r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false, false);
@@ -232,6 +243,11 @@ int radeon_bo_pin(struct radeon_bo *bo,
 	return r;
 }
 
+int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
+{
+	return radeon_bo_pin_restricted(bo, domain, 0, gpu_addr);
+}
+
 int radeon_bo_unpin(struct radeon_bo *bo)
 {
 	int r, i;
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -108,6 +108,8 @@ extern int radeon_bo_kmap(struct radeon_
 extern void radeon_bo_kunmap(struct radeon_bo *bo);
 extern void radeon_bo_unref(struct radeon_bo **bo);
 extern int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr);
+extern int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain,
+				    u64 max_offset, u64 *gpu_addr);
 extern int radeon_bo_unpin(struct radeon_bo *bo);
 extern int radeon_bo_evict_vram(struct radeon_device *rdev);
 extern void radeon_bo_force_delete(struct radeon_device *rdev);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 075/149] drm/radeon/kms: fix analog load detection on DVI-I connectors
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (73 preceding siblings ...)
  2012-03-30 19:49 ` [ 074/149] drm/radeon: Restrict offset for legacy hardware cursor Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 076/149] drm/radeon/kms: add connector quirk for Fujitsu D3003-S2 board Greg KH
                   ` (73 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Alex Deucher, Dave Airlie

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alex Deucher <alexander.deucher@amd.com>

commit e00e8b5e760cbbe9067daeae5454d67c44c8d035 upstream.

We digital encoders have a detect function as well (for
DP to VGA bridges), so we make sure we choose the analog
one here.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=47007

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/radeon/radeon_connectors.c |    4 ++++
 1 file changed, 4 insertions(+)

--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -946,6 +946,10 @@ radeon_dvi_detect(struct drm_connector *
 
 			encoder = obj_to_encoder(obj);
 
+			if (encoder->encoder_type != DRM_MODE_ENCODER_DAC ||
+			    encoder->encoder_type != DRM_MODE_ENCODER_TVDAC)
+				continue;
+
 			encoder_funcs = encoder->helper_private;
 			if (encoder_funcs->detect) {
 				if (ret != connector_status_connected) {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 076/149] drm/radeon/kms: add connector quirk for Fujitsu D3003-S2 board
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (74 preceding siblings ...)
  2012-03-30 19:49 ` [ 075/149] drm/radeon/kms: fix analog load detection on DVI-I connectors Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 077/149] target: Dont set WBUS16 or SYNC bits in INQUIRY response Greg KH
                   ` (72 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Alex Deucher, Dave Airlie

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alex Deucher <alexander.deucher@amd.com>

commit 4c1b2d2da3451f5c8dd59bd7e05bd9729d2aee05 upstream.

vbios lists DVI-I port as VGA and DVI-D.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=47007

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/radeon/radeon_atombios.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -442,6 +442,20 @@ static bool radeon_atom_apply_quirks(str
 		struct radeon_device *rdev = dev->dev_private;
 		*i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93);
 	}
+
+	/* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
+	if ((dev->pdev->device == 0x9802) &&
+	    (dev->pdev->subsystem_vendor == 0x1734) &&
+	    (dev->pdev->subsystem_device == 0x11bd)) {
+		if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
+			*connector_type = DRM_MODE_CONNECTOR_DVII;
+			*line_mux = 0x3103;
+		} else if (*connector_type == DRM_MODE_CONNECTOR_DVID) {
+			*connector_type = DRM_MODE_CONNECTOR_DVII;
+		}
+	}
+
+
 	return true;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 077/149] target: Dont set WBUS16 or SYNC bits in INQUIRY response
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (75 preceding siblings ...)
  2012-03-30 19:49 ` [ 076/149] drm/radeon/kms: add connector quirk for Fujitsu D3003-S2 board Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 078/149] target: fix use after free in target_report_luns Greg KH
                   ` (71 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Roland Dreier, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roland Dreier <roland@purestorage.com>

commit effc6cc8828257c32c37635e737f14fd6e19ecd7 upstream.

SPC-4 says about the WBUS16 and SYNC bits:

    The meanings of these fields are specific to SPI-5 (see 6.4.3).
    For SCSI transport protocols other than the SCSI Parallel
    Interface, these fields are reserved.

We don't have a SPI fabric module, so we should never set these bits.
(The comment was misleading, since it only mentioned Sync but the
actual code set WBUS16 too).

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/target_core_cdb.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/target/target_core_cdb.c
+++ b/drivers/target/target_core_cdb.c
@@ -116,7 +116,7 @@ target_emulate_inquiry_std(struct se_cmd
 		goto out;
 	}
 
-	buf[7] = 0x32; /* Sync=1 and CmdQue=1 */
+	buf[7] = 0x2; /* CmdQue=1 */
 
 	/*
 	 * Do not include vendor, product, reversion info in INQUIRY



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 078/149] target: fix use after free in target_report_luns
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (76 preceding siblings ...)
  2012-03-30 19:49 ` [ 077/149] target: Dont set WBUS16 or SYNC bits in INQUIRY response Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 079/149] target: prevent NULL pointer dereference " Greg KH
                   ` (70 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Joern Engel, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: =?UTF-8?q?J=C3=B6rn=20Engel?= <joern@logfs.org>

commit 382436f8804fe1cb20b9a2a811a10eb2d8554721 upstream.

Fix possible NULL pointer dereference in target_report_luns failure path.

Signed-off-by: Joern Engel <joern@logfs.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/target_core_device.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -696,12 +696,12 @@ int target_report_luns(struct se_task *s
 	 * See SPC3 r07, page 159.
 	 */
 done:
-	transport_kunmap_data_sg(se_cmd);
 	lun_count *= 8;
 	buf[0] = ((lun_count >> 24) & 0xff);
 	buf[1] = ((lun_count >> 16) & 0xff);
 	buf[2] = ((lun_count >> 8) & 0xff);
 	buf[3] = (lun_count & 0xff);
+	transport_kunmap_data_sg(se_cmd);
 
 	se_task->task_scsi_status = GOOD;
 	transport_complete_task(se_task, 1);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 079/149] target: prevent NULL pointer dereference in target_report_luns
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (77 preceding siblings ...)
  2012-03-30 19:49 ` [ 078/149] target: fix use after free in target_report_luns Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 080/149] target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation Greg KH
                   ` (69 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Joern Engel, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: =?UTF-8?q?J=C3=B6rn=20Engel?= <joern@logfs.org>

commit 47f1b8803e1e358ebbf4f82bfdb98971c912a2c3 upstream.

transport_kmap_data_sg can return NULL.  I never saw this trigger, but
returning -ENOMEM seems better than a crash.  Also removes a pointless
case while at it.

Signed-off-by: Joern Engel <joern@logfs.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/target_core_device.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
@@ -658,7 +658,9 @@ int target_report_luns(struct se_task *s
 	unsigned char *buf;
 	u32 cdb_offset = 0, lun_count = 0, offset = 8, i;
 
-	buf = (unsigned char *) transport_kmap_data_sg(se_cmd);
+	buf = transport_kmap_data_sg(se_cmd);
+	if (!buf)
+		return -ENOMEM;
 
 	/*
 	 * If no struct se_session pointer is present, this struct se_cmd is



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 080/149] target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (78 preceding siblings ...)
  2012-03-30 19:49 ` [ 079/149] target: prevent NULL pointer dereference " Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 081/149] Bluetooth: Add AR30XX device ID on Asus laptops Greg KH
                   ` (68 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Roland Dreier, Nicholas Bellinger

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Roland Dreier <roland@purestorage.com>

commit 33395fb8a13731c7ef7b175dbf5a4d8a6738fe6c upstream.

The old code did (MSB << 8) & 0xff, which always evaluates to 0.  Just use
get_unaligned_be16() so we don't have to worry about whether our open-coded
version is correct or not.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/target_core_alua.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

--- a/drivers/target/target_core_alua.c
+++ b/drivers/target/target_core_alua.c
@@ -30,6 +30,7 @@
 #include <linux/export.h>
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
+#include <asm/unaligned.h>
 
 #include <target/target_core_base.h>
 #include <target/target_core_device.h>
@@ -268,8 +269,7 @@ int target_emulate_set_target_port_group
 		 * changed.
 		 */
 		if (primary) {
-			tg_pt_id = ((ptr[2] << 8) & 0xff);
-			tg_pt_id |= (ptr[3] & 0xff);
+			tg_pt_id = get_unaligned_be16(ptr + 2);
 			/*
 			 * Locate the matching target port group ID from
 			 * the global tg_pt_gp list
@@ -313,8 +313,7 @@ int target_emulate_set_target_port_group
 			 * the Target Port in question for the the incoming
 			 * SET_TARGET_PORT_GROUPS op.
 			 */
-			rtpi = ((ptr[2] << 8) & 0xff);
-			rtpi |= (ptr[3] & 0xff);
+			rtpi = get_unaligned_be16(ptr + 2);
 			/*
 			 * Locate the matching relative target port identifer
 			 * for the struct se_device storage object.



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 081/149] Bluetooth: Add AR30XX device ID on Asus laptops
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (79 preceding siblings ...)
  2012-03-30 19:49 ` [ 080/149] target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 082/149] HID: add extra hotkeys in Asus AIO keyboards Greg KH
                   ` (67 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Keng-Yu Lin, Gustavo F. Padovan, Johan Hedberg

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Keng-Yu Lin <kengyu@canonical.com>

commit 6b6ba88b5bb8779156b21bb957520a448c3642e2 upstream.

The ID is found on Asus K54HR and K53U.
Blacklist the AR3011-based device ID [0489:e03d]
and add to ath3k.c for firmware loading.

Below is the output of usb-devices script:

Before the fiwmware loading:

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0489 ProdID=e03d Rev=00.01
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

After the fiwmware loading:

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0cf3 ProdID=3005 Rev=00.01
C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

Signed-off-by: Keng-Yu Lin <kengyu@canonical.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/bluetooth/ath3k.c |    1 +
 drivers/bluetooth/btusb.c |    1 +
 2 files changed, 2 insertions(+)

--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -64,6 +64,7 @@ static struct usb_device_id ath3k_table[
 	{ USB_DEVICE(0x0CF3, 0x3002) },
 	{ USB_DEVICE(0x13d3, 0x3304) },
 	{ USB_DEVICE(0x0930, 0x0215) },
+	{ USB_DEVICE(0x0489, 0xE03D) },
 
 	/* Atheros AR9285 Malbec with sflash firmware */
 	{ USB_DEVICE(0x03F0, 0x311D) },
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -119,6 +119,7 @@ static struct usb_device_id blacklist_ta
 	{ USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE },
 	{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
 	{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
+	{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
 
 	/* Atheros AR9285 Malbec with sflash firmware */
 	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 082/149] HID: add extra hotkeys in Asus AIO keyboards
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (80 preceding siblings ...)
  2012-03-30 19:49 ` [ 081/149] Bluetooth: Add AR30XX device ID on Asus laptops Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 083/149] HID: add more " Greg KH
                   ` (66 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Keng-Yu Lin, Jiri Kosina

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Keng-Yu Lin <kengyu@canonical.com>

commit 3596bb929f2abd3433c2eaa5755fad48ac207af1 upstream.

The Asus All-In-One PC has a wireless keyboard with wifi toggle,
brightness up, brightness down and display off hotkeys.

This patch adds suppoort for these hotkeys.

Signed-off-by: Keng-Yu Lin <kengyu@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hid/hid-chicony.c |    5 +++++
 drivers/hid/hid-core.c    |    1 +
 drivers/hid/hid-ids.h     |    1 +
 3 files changed, 7 insertions(+)

--- a/drivers/hid/hid-chicony.c
+++ b/drivers/hid/hid-chicony.c
@@ -45,6 +45,10 @@ static int ch_input_mapping(struct hid_d
 	case 0xff09: ch_map_key_clear(BTN_9);	break;
 	case 0xff0a: ch_map_key_clear(BTN_A);	break;
 	case 0xff0b: ch_map_key_clear(BTN_B);	break;
+	case 0x00f1: ch_map_key_clear(KEY_WLAN);	break;
+	case 0x00f2: ch_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
+	case 0x00f3: ch_map_key_clear(KEY_BRIGHTNESSUP);	break;
+	case 0x00f4: ch_map_key_clear(KEY_DISPLAY_OFF);	break;
 	default:
 		return 0;
 	}
@@ -53,6 +57,7 @@ static int ch_input_mapping(struct hid_d
 
 static const struct hid_device_id ch_devices[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) },
 	{ }
 };
 MODULE_DEVICE_TABLE(hid, ch_devices);
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1394,6 +1394,7 @@ static const struct hid_device_id hid_ha
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT, USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_CVTOUCH, USB_DEVICE_ID_CVTOUCH_SCREEN) },
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -192,6 +192,7 @@
 #define USB_DEVICE_ID_CHICONY_TACTICAL_PAD	0x0418
 #define USB_DEVICE_ID_CHICONY_MULTI_TOUCH	0xb19d
 #define USB_DEVICE_ID_CHICONY_WIRELESS	0x0618
+#define USB_DEVICE_ID_CHICONY_WIRELESS2	0x1123
 
 #define USB_VENDOR_ID_CHUNGHWAT		0x2247
 #define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH	0x0001



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 083/149] HID: add more hotkeys in Asus AIO keyboards
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (81 preceding siblings ...)
  2012-03-30 19:49 ` [ 082/149] HID: add extra hotkeys in Asus AIO keyboards Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 084/149] pata_legacy: correctly mask recovery field for HT6560B Greg KH
                   ` (65 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Keng-Yu Lin, Jiri Kosina

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Keng-Yu Lin <kengyu@canonical.com>

commit 6c30d5a53229aad22bb675e0bd6eb518ecaa4316 upstream.

Add support for the camera key. The hotkey for
Asus S.H.E(Super Hybrid Engine) mode is mapped to KEY_KEY_PROG1
just for notifying the userspace.

Signed-off-by: Keng-Yu Lin <kengyu@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hid/hid-chicony.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/drivers/hid/hid-chicony.c
+++ b/drivers/hid/hid-chicony.c
@@ -49,6 +49,8 @@ static int ch_input_mapping(struct hid_d
 	case 0x00f2: ch_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
 	case 0x00f3: ch_map_key_clear(KEY_BRIGHTNESSUP);	break;
 	case 0x00f4: ch_map_key_clear(KEY_DISPLAY_OFF);	break;
+	case 0x00f7: ch_map_key_clear(KEY_CAMERA);	break;
+	case 0x00f8: ch_map_key_clear(KEY_PROG1);	break;
 	default:
 		return 0;
 	}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 084/149] pata_legacy: correctly mask recovery field for HT6560B
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (82 preceding siblings ...)
  2012-03-30 19:49 ` [ 083/149] HID: add more " Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 085/149] firewire: ohci: fix too-early completion of IR multichannel buffers Greg KH
                   ` (64 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Sergei Shtylyov, Jeff Garzik

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sergei Shtylyov <sshtylyov@ru.mvista.com>

commit 9716387311c790de381214c03e7f1b72b91a8189 upstream.

According to the HT6560H datasheet, the recovery timing field is 4-bit wide,
with a value of 0 meaning 16 cycles. Correct obvious thinko in the recovery
field mask.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/ata/pata_legacy.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/drivers/ata/pata_legacy.c
+++ b/drivers/ata/pata_legacy.c
@@ -401,8 +401,7 @@ static void ht6560b_set_piomode(struct a
 	ata_timing_compute(adev, adev->pio_mode, &t, 20000, 1000);
 
 	active = clamp_val(t.active, 2, 15);
-	recover = clamp_val(t.recover, 2, 16);
-	recover &= 0x15;
+	recover = clamp_val(t.recover, 2, 16) & 0x0F;
 
 	inb(0x3E6);
 	inb(0x3E6);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 085/149] firewire: ohci: fix too-early completion of IR multichannel buffers
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (83 preceding siblings ...)
  2012-03-30 19:49 ` [ 084/149] pata_legacy: correctly mask recovery field for HT6560B Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 19:49 ` [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page Greg KH
                   ` (63 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Clemens Ladisch, Stefan Richter

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Clemens Ladisch <clemens@ladisch.de>

commit 0c0efbacab8d70700d13301e0ae7975783c0cb0a upstream.

handle_ir_buffer_fill() assumed that a completed descriptor would be
indicated by a non-zero transfer_status (as in most other descriptors).
However, this field is written by the controller as soon as (the end of)
the first packet has been written into the buffer.  As a consequence, if
we happen to run into such a descriptor when the interrupt handler is
executed after such a packet has completed, the descriptor would be
taken out of the list of active descriptors as soon as the buffer had
been partially filled, so the event for the buffer being completely
filled would never be sent.

To fix this, handle descriptors only when they have been completely
filled, i.e., when res_count == 0.  (This also matches the condition
that is reported by the controller with an interrupt.)

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/firewire/ohci.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -2748,7 +2748,7 @@ static int handle_ir_buffer_fill(struct
 		container_of(context, struct iso_context, context);
 	u32 buffer_dma;
 
-	if (!last->transfer_status)
+	if (last->res_count != 0)
 		/* Descriptor(s) not done yet, stop iteration */
 		return 0;
 
@@ -2762,8 +2762,7 @@ static int handle_ir_buffer_fill(struct
 	if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS)
 		ctx->base.callback.mc(&ctx->base,
 				      le32_to_cpu(last->data_address) +
-				      le16_to_cpu(last->req_count) -
-				      le16_to_cpu(last->res_count),
+				      le16_to_cpu(last->req_count),
 				      ctx->base.callback_data);
 
 	return 1;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (84 preceding siblings ...)
  2012-03-30 19:49 ` [ 085/149] firewire: ohci: fix too-early completion of IR multichannel buffers Greg KH
@ 2012-03-30 19:49 ` Greg KH
  2012-03-30 21:30   ` Florian Tobias Schandinat
  2012-03-30 19:50 ` [ 087/149] KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" Greg KH
                   ` (62 subsequent siblings)
  148 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Wang YanQing, Florian Tobias Schandinat

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Wang YanQing <udknight@gmail.com>

commit ec0d22e4d563e7cce9f6678e2000900755c2989d upstream.

This patch fixes the oops below

[   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0
[   81.609384] uvesafb: protected mode interface info at c000:d350
[   81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e
[   81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
[   81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers
[   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used
[   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915
[   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
[   81.744153] BUG: unable to handle kernel paging request at c00cd3b3
[   81.744159] IP: [<c00cd3b3>] 0xc00cd3b2
[   81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163
[   81.744171] Oops: 0011 [#1] SMP
[   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect
[   81.744178]
[   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741
[   81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0
[   81.744187] EIP is at 0xc00cd3b3
[   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000
[   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00
[   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[   81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000)
[   81.744196] Stack:
[   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0
[   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000
[   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400
[   81.744210] Call Trace:
[   81.744215]  [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb]
[   81.744222]  [<c124a9bc>] fb_pan_display+0x10c/0x160
[   81.744226]  [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]
[   81.744230]  [<c12598dd>] bit_update_start+0x1d/0x50
[   81.744232]  [<c1255efe>] fbcon_switch+0x39e/0x550
[   81.744235]  [<c125a21a>] ? bit_cursor+0x4ea/0x560
[   81.744240]  [<c129b6cb>] redraw_screen+0x12b/0x220
[   81.744245]  [<c128843b>] ? tty_do_resize+0x3b/0xc0
[   81.744247]  [<c129ef42>] vc_do_resize+0x3d2/0x3e0
[   81.744250]  [<c129efb4>] vc_resize+0x14/0x20
[   81.744253]  [<c12586bd>] fbcon_init+0x29d/0x500
[   81.744255]  [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110
[   81.744258]  [<c129b378>] visual_init+0xb8/0x150
[   81.744261]  [<c129c16c>] bind_con_driver+0x16c/0x360
[   81.744264]  [<c129b47e>] ? register_con_driver+0x6e/0x190
[   81.744267]  [<c129c3a1>] take_over_console+0x41/0x50
[   81.744269]  [<c1257b7a>] fbcon_takeover+0x6a/0xd0
[   81.744272]  [<c12594b8>] fbcon_event_notify+0x758/0x790
[   81.744277]  [<c10929e2>] notifier_call_chain+0x42/0xb0
[   81.744280]  [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90
[   81.744283]  [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20
[   81.744285]  [<c124a5a1>] fb_notifier_call_chain+0x11/0x20
[   81.744288]  [<c124b759>] register_framebuffer+0x1d9/0x2b0
[   81.744293]  [<c1061c73>] ? ioremap_wc+0x33/0x40
[   81.744298]  [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb]
[   81.744302]  [<c12bb81f>] platform_drv_probe+0xf/0x20
[   81.744306]  [<c12ba558>] driver_probe_device+0x68/0x170
[   81.744309]  [<c12ba731>] __device_attach+0x41/0x50
[   81.744313]  [<c12b9088>] bus_for_each_drv+0x48/0x70
[   81.744316]  [<c12ba7f3>] device_attach+0x83/0xa0
[   81.744319]  [<c12ba6f0>] ? __driver_attach+0x90/0x90
[   81.744321]  [<c12b991f>] bus_probe_device+0x6f/0x90
[   81.744324]  [<c12b8a45>] device_add+0x5e5/0x680
[   81.744329]  [<c122a1a3>] ? kvasprintf+0x43/0x60
[   81.744332]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
[   81.744335]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
[   81.744339]  [<c12bbe9f>] platform_device_add+0xff/0x1b0
[   81.744343]  [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb]
[   81.744346]  [<c100111f>] do_one_initcall+0x2f/0x170
[   81.744350]  [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]
[   81.744355]  [<c10c6994>] sys_init_module+0xf4/0x1410
[   81.744359]  [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30
[   81.744363]  [<c144cb10>] sysenter_do_call+0x12/0x36
[   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66
[   81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00
[   81.744391] CR2: 00000000c00cd3b3
[   81.744393] ---[ end trace 18b2c87c925b54d6 ]---

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/video/uvesafb.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

--- a/drivers/video/uvesafb.c
+++ b/drivers/video/uvesafb.c
@@ -23,6 +23,7 @@
 #include <video/uvesafb.h>
 #ifdef CONFIG_X86
 #include <video/vga.h>
+#include <linux/pci.h>
 #endif
 #ifdef CONFIG_MTRR
 #include <asm/mtrr.h>
@@ -815,8 +816,15 @@ static int __devinit uvesafb_vbe_init(st
 	par->pmi_setpal = pmi_setpal;
 	par->ypan = ypan;
 
-	if (par->pmi_setpal || par->ypan)
-		uvesafb_vbe_getpmi(task, par);
+	if (par->pmi_setpal || par->ypan) {
+		if (pcibios_enabled) {
+			uvesafb_vbe_getpmi(task, par);
+		} else {
+			par->pmi_setpal = par->ypan = 0;
+			printk(KERN_WARNING "uvesafb: PCI BIOS area is NX."
+				"Can't use protected mode interface\n");
+		}
+	}
 #else
 	/* The protected mode interface is not available on non-x86. */
 	par->pmi_setpal = par->ypan = 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 087/149] KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid"
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (85 preceding siblings ...)
  2012-03-30 19:49 ` [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 088/149] KVM: x86: fix missing checks in syscall emulation Greg KH
                   ` (61 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Stephan Baerwolf, Marcelo Tosatti, Stefan Bader

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf@tu-ilmenau.de>

commit bdb42f5afebe208eae90406959383856ae2caf2b upstream.

In order to be able to proceed checks on CPU-specific properties
within the emulator, function "get_cpuid" is introduced.
With "get_cpuid" it is possible to virtually call the guests
"cpuid"-opcode without changing the VM's context.

[mtosatti: cleanup/beautify code]

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/include/asm/kvm_emulate.h |    3 +++
 arch/x86/kvm/x86.c                 |   23 +++++++++++++++++++++++
 2 files changed, 26 insertions(+)

--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -189,6 +189,9 @@ struct x86_emulate_ops {
 	int (*intercept)(struct x86_emulate_ctxt *ctxt,
 			 struct x86_instruction_info *info,
 			 enum x86_intercept_stage stage);
+
+	bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt,
+			 u32 *eax, u32 *ebx, u32 *ecx, u32 *edx);
 };
 
 typedef u32 __attribute__((vector_size(16))) sse128_t;
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4655,6 +4655,28 @@ static int emulator_intercept(struct x86
 	return kvm_x86_ops->check_intercept(emul_to_vcpu(ctxt), info, stage);
 }
 
+static bool emulator_get_cpuid(struct x86_emulate_ctxt *ctxt,
+			       u32 *eax, u32 *ebx, u32 *ecx, u32 *edx)
+{
+	struct kvm_cpuid_entry2 *cpuid = NULL;
+
+	if (eax && ecx)
+		cpuid = kvm_find_cpuid_entry(emul_to_vcpu(ctxt),
+					    *eax, *ecx);
+
+	if (cpuid) {
+		*eax = cpuid->eax;
+		*ecx = cpuid->ecx;
+		if (ebx)
+			*ebx = cpuid->ebx;
+		if (edx)
+			*edx = cpuid->edx;
+		return true;
+	}
+
+	return false;
+}
+
 static struct x86_emulate_ops emulate_ops = {
 	.read_std            = kvm_read_guest_virt_system,
 	.write_std           = kvm_write_guest_virt_system,
@@ -4685,6 +4707,7 @@ static struct x86_emulate_ops emulate_op
 	.get_fpu             = emulator_get_fpu,
 	.put_fpu             = emulator_put_fpu,
 	.intercept           = emulator_intercept,
+	.get_cpuid           = emulator_get_cpuid,
 };
 
 static void cache_all_regs(struct kvm_vcpu *vcpu)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 088/149] KVM: x86: fix missing checks in syscall emulation
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (86 preceding siblings ...)
  2012-03-30 19:50 ` [ 087/149] KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 089/149] NFS: Properly handle the case where the delegation is revoked Greg KH
                   ` (60 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Stephan Baerwolf, Marcelo Tosatti, Stefan Bader

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf@tu-ilmenau.de>

commit c2226fc9e87ba3da060e47333657cd6616652b84 upstream.

On hosts without this patch, 32bit guests will crash (and 64bit guests
may behave in a wrong way) for example by simply executing following
nasm-demo-application:

    [bits 32]
    global _start
    SECTION .text
    _start: syscall

(I tested it with winxp and linux - both always crashed)

    Disassembly of section .text:

    00000000 <_start>:
       0:   0f 05                   syscall

The reason seems a missing "invalid opcode"-trap (int6) for the
syscall opcode "0f05", which is not available on Intel CPUs
within non-longmodes, as also on some AMD CPUs within legacy-mode.
(depending on CPU vendor, MSR_EFER and cpuid)

Because previous mentioned OSs may not engage corresponding
syscall target-registers (STAR, LSTAR, CSTAR), they remain
NULL and (non trapping) syscalls are leading to multiple
faults and finally crashs.

Depending on the architecture (AMD or Intel) pretended by
guests, various checks according to vendor's documentation
are implemented to overcome the current issue and behave
like the CPUs physical counterparts.

[mtosatti: cleanup/beautify code]

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/include/asm/kvm_emulate.h |   13 +++++++++
 arch/x86/kvm/emulate.c             |   51 +++++++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+)

--- a/arch/x86/include/asm/kvm_emulate.h
+++ b/arch/x86/include/asm/kvm_emulate.h
@@ -300,6 +300,19 @@ struct x86_emulate_ctxt {
 #define X86EMUL_MODE_PROT     (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \
 			       X86EMUL_MODE_PROT64)
 
+/* CPUID vendors */
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163
+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_edx 0x69746e65
+
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx 0x69444d41
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx 0x21726574
+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_edx 0x74656273
+
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ebx 0x756e6547
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ecx 0x6c65746e
+#define X86EMUL_CPUID_VENDOR_GenuineIntel_edx 0x49656e69
+
 enum x86_intercept_stage {
 	X86_ICTP_NONE = 0,   /* Allow zero-init to not match anything */
 	X86_ICPT_PRE_EXCEPT,
--- a/arch/x86/kvm/emulate.c
+++ b/arch/x86/kvm/emulate.c
@@ -1877,6 +1877,51 @@ setup_syscalls_segments(struct x86_emula
 	ss->p = 1;
 }
 
+static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt)
+{
+	struct x86_emulate_ops *ops = ctxt->ops;
+	u32 eax, ebx, ecx, edx;
+
+	/*
+	 * syscall should always be enabled in longmode - so only become
+	 * vendor specific (cpuid) if other modes are active...
+	 */
+	if (ctxt->mode == X86EMUL_MODE_PROT64)
+		return true;
+
+	eax = 0x00000000;
+	ecx = 0x00000000;
+	if (ops->get_cpuid(ctxt, &eax, &ebx, &ecx, &edx)) {
+		/*
+		 * Intel ("GenuineIntel")
+		 * remark: Intel CPUs only support "syscall" in 64bit
+		 * longmode. Also an 64bit guest with a
+		 * 32bit compat-app running will #UD !! While this
+		 * behaviour can be fixed (by emulating) into AMD
+		 * response - CPUs of AMD can't behave like Intel.
+		 */
+		if (ebx == X86EMUL_CPUID_VENDOR_GenuineIntel_ebx &&
+		    ecx == X86EMUL_CPUID_VENDOR_GenuineIntel_ecx &&
+		    edx == X86EMUL_CPUID_VENDOR_GenuineIntel_edx)
+			return false;
+
+		/* AMD ("AuthenticAMD") */
+		if (ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx &&
+		    ecx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx &&
+		    edx == X86EMUL_CPUID_VENDOR_AuthenticAMD_edx)
+			return true;
+
+		/* AMD ("AMDisbetter!") */
+		if (ebx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx &&
+		    ecx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx &&
+		    edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx)
+			return true;
+	}
+
+	/* default: (not Intel, not AMD), apply Intel's stricter rules... */
+	return false;
+}
+
 static int em_syscall(struct x86_emulate_ctxt *ctxt)
 {
 	struct x86_emulate_ops *ops = ctxt->ops;
@@ -1890,9 +1935,15 @@ static int em_syscall(struct x86_emulate
 	    ctxt->mode == X86EMUL_MODE_VM86)
 		return emulate_ud(ctxt);
 
+	if (!(em_syscall_is_enabled(ctxt)))
+		return emulate_ud(ctxt);
+
 	ops->get_msr(ctxt, MSR_EFER, &efer);
 	setup_syscalls_segments(ctxt, &cs, &ss);
 
+	if (!(efer & EFER_SCE))
+		return emulate_ud(ctxt);
+
 	ops->get_msr(ctxt, MSR_STAR, &msr_data);
 	msr_data >>= 32;
 	cs_sel = (u16)(msr_data & 0xfffc);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 089/149] NFS: Properly handle the case where the delegation is revoked
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (87 preceding siblings ...)
  2012-03-30 19:50 ` [ 088/149] KVM: x86: fix missing checks in syscall emulation Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 090/149] NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE Greg KH
                   ` (59 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5 upstream.

If we know that the delegation stateid is bad or revoked, we need to
remove that delegation as soon as possible, and then mark all the
stateids that relied on that delegation for recovery. We cannot use
the delegation as part of the recovery process.

Also note that NFSv4.1 uses a different error code (NFS4ERR_DELEG_REVOKED)
to indicate that the delegation was revoked.

Finally, ensure that setlk() and setattr() can both recover safely from
a revoked delegation.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/delegation.c |   11 +++++++++++
 fs/nfs/delegation.h |    1 +
 fs/nfs/nfs4_fs.h    |    2 ++
 fs/nfs/nfs4proc.c   |   18 ++++++++++++++++--
 fs/nfs/nfs4state.c  |   29 +++++++++++++++++++++++++++--
 5 files changed, 57 insertions(+), 4 deletions(-)

--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -466,6 +466,17 @@ static void nfs_delegation_run_state_man
 		nfs4_schedule_state_manager(clp);
 }
 
+void nfs_remove_bad_delegation(struct inode *inode)
+{
+	struct nfs_delegation *delegation;
+
+	delegation = nfs_detach_delegation(NFS_I(inode), NFS_SERVER(inode));
+	if (delegation) {
+		nfs_inode_find_state_and_recover(inode, &delegation->stateid);
+		nfs_free_delegation(delegation);
+	}
+}
+
 /**
  * nfs_expire_all_delegation_types
  * @clp: client to process
--- a/fs/nfs/delegation.h
+++ b/fs/nfs/delegation.h
@@ -45,6 +45,7 @@ void nfs_expire_unreferenced_delegations
 void nfs_handle_cb_pathdown(struct nfs_client *clp);
 int nfs_client_return_marked_delegations(struct nfs_client *clp);
 int nfs_delegations_present(struct nfs_client *clp);
+void nfs_remove_bad_delegation(struct inode *inode);
 
 void nfs_delegation_mark_reclaim(struct nfs_client *clp);
 void nfs_delegation_reap_unclaimed(struct nfs_client *clp);
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -324,6 +324,8 @@ extern void nfs4_put_open_state(struct n
 extern void nfs4_close_state(struct nfs4_state *, fmode_t);
 extern void nfs4_close_sync(struct nfs4_state *, fmode_t);
 extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t);
+extern void nfs_inode_find_state_and_recover(struct inode *inode,
+		const nfs4_stateid *stateid);
 extern void nfs4_schedule_lease_recovery(struct nfs_client *);
 extern void nfs4_schedule_state_manager(struct nfs_client *);
 extern void nfs4_schedule_path_down_recovery(struct nfs_client *clp);
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -263,8 +263,11 @@ static int nfs4_handle_exception(struct
 	switch(errorcode) {
 		case 0:
 			return 0;
+		case -NFS4ERR_DELEG_REVOKED:
 		case -NFS4ERR_ADMIN_REVOKED:
 		case -NFS4ERR_BAD_STATEID:
+			if (state != NULL)
+				nfs_remove_bad_delegation(state->inode);
 		case -NFS4ERR_OPENMODE:
 			if (state == NULL)
 				break;
@@ -1316,8 +1319,11 @@ int nfs4_open_delegation_recall(struct n
 				 * The show must go on: exit, but mark the
 				 * stateid as needing recovery.
 				 */
+			case -NFS4ERR_DELEG_REVOKED:
 			case -NFS4ERR_ADMIN_REVOKED:
 			case -NFS4ERR_BAD_STATEID:
+				nfs_inode_find_state_and_recover(state->inode,
+						stateid);
 				nfs4_schedule_stateid_recovery(server, state);
 			case -EKEYEXPIRED:
 				/*
@@ -1893,7 +1899,9 @@ static int nfs4_do_setattr(struct inode
 			   struct nfs4_state *state)
 {
 	struct nfs_server *server = NFS_SERVER(inode);
-	struct nfs4_exception exception = { };
+	struct nfs4_exception exception = {
+		.state = state,
+	};
 	int err;
 	do {
 		err = nfs4_handle_exception(server,
@@ -3707,8 +3715,11 @@ nfs4_async_handle_error(struct rpc_task
 	if (task->tk_status >= 0)
 		return 0;
 	switch(task->tk_status) {
+		case -NFS4ERR_DELEG_REVOKED:
 		case -NFS4ERR_ADMIN_REVOKED:
 		case -NFS4ERR_BAD_STATEID:
+			if (state != NULL)
+				nfs_remove_bad_delegation(state->inode);
 		case -NFS4ERR_OPENMODE:
 			if (state == NULL)
 				break;
@@ -4526,7 +4537,9 @@ out:
 
 static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
 {
-	struct nfs4_exception exception = { };
+	struct nfs4_exception exception = {
+		.state = state,
+	};
 	int err;
 
 	do {
@@ -4619,6 +4632,7 @@ int nfs4_lock_delegation_recall(struct n
 				 * The show must go on: exit, but mark the
 				 * stateid as needing recovery.
 				 */
+			case -NFS4ERR_DELEG_REVOKED:
 			case -NFS4ERR_ADMIN_REVOKED:
 			case -NFS4ERR_BAD_STATEID:
 			case -NFS4ERR_OPENMODE:
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1071,12 +1071,37 @@ void nfs4_schedule_stateid_recovery(cons
 {
 	struct nfs_client *clp = server->nfs_client;
 
-	if (test_and_clear_bit(NFS_DELEGATED_STATE, &state->flags))
-		nfs_async_inode_return_delegation(state->inode, &state->stateid);
 	nfs4_state_mark_reclaim_nograce(clp, state);
 	nfs4_schedule_state_manager(clp);
 }
 
+void nfs_inode_find_state_and_recover(struct inode *inode,
+		const nfs4_stateid *stateid)
+{
+	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;
+	struct nfs_inode *nfsi = NFS_I(inode);
+	struct nfs_open_context *ctx;
+	struct nfs4_state *state;
+	bool found = false;
+
+	spin_lock(&inode->i_lock);
+	list_for_each_entry(ctx, &nfsi->open_files, list) {
+		state = ctx->state;
+		if (state == NULL)
+			continue;
+		if (!test_bit(NFS_DELEGATED_STATE, &state->flags))
+			continue;
+		if (memcmp(state->stateid.data, stateid->data, sizeof(state->stateid.data)) != 0)
+			continue;
+		nfs4_state_mark_reclaim_nograce(clp, state);
+		found = true;
+	}
+	spin_unlock(&inode->i_lock);
+	if (found)
+		nfs4_schedule_state_manager(clp);
+}
+
+
 static int nfs4_reclaim_locks(struct nfs4_state *state, const struct nfs4_state_recovery_ops *ops)
 {
 	struct inode *inode = state->inode;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 090/149] NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (88 preceding siblings ...)
  2012-03-30 19:50 ` [ 089/149] NFS: Properly handle the case where the delegation is revoked Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 091/149] xfs: fix inode lookup race Greg KH
                   ` (58 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Miklos Szeredi, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit 3114ea7a24d3264c090556a2444fc6d2c06176d4 upstream.

If a setattr() fails because of an NFS4ERR_OPENMODE error, it is
probably due to us holding a read delegation. Ensure that the
recovery routines return that delegation in this case.

Reported-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4_fs.h  |    1 +
 fs/nfs/nfs4proc.c |   13 ++++++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
@@ -191,6 +191,7 @@ struct nfs4_exception {
 	long timeout;
 	int retry;
 	struct nfs4_state *state;
+	struct inode *inode;
 };
 
 struct nfs4_state_recovery_ops {
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -257,18 +257,28 @@ static int nfs4_handle_exception(struct
 {
 	struct nfs_client *clp = server->nfs_client;
 	struct nfs4_state *state = exception->state;
+	struct inode *inode = exception->inode;
 	int ret = errorcode;
 
 	exception->retry = 0;
 	switch(errorcode) {
 		case 0:
 			return 0;
+		case -NFS4ERR_OPENMODE:
+			if (nfs_have_delegation(inode, FMODE_READ)) {
+				nfs_inode_return_delegation(inode);
+				exception->retry = 1;
+				return 0;
+			}
+			if (state == NULL)
+				break;
+			nfs4_schedule_stateid_recovery(server, state);
+			goto wait_on_recovery;
 		case -NFS4ERR_DELEG_REVOKED:
 		case -NFS4ERR_ADMIN_REVOKED:
 		case -NFS4ERR_BAD_STATEID:
 			if (state != NULL)
 				nfs_remove_bad_delegation(state->inode);
-		case -NFS4ERR_OPENMODE:
 			if (state == NULL)
 				break;
 			nfs4_schedule_stateid_recovery(server, state);
@@ -1901,6 +1911,7 @@ static int nfs4_do_setattr(struct inode
 	struct nfs_server *server = NFS_SERVER(inode);
 	struct nfs4_exception exception = {
 		.state = state,
+		.inode = inode,
 	};
 	int err;
 	do {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 091/149] xfs: fix inode lookup race
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (89 preceding siblings ...)
  2012-03-30 19:50 ` [ 090/149] NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 092/149] CIFS: Respect negotiated MaxMpxCount Greg KH
                   ` (57 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Dave Chinner, Christoph Hellwig, Ben Myers

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Chinner <dchinner@redhat.com>

commit f30d500f809eca67a21704347ab14bb35877b5ee upstream.

When we get concurrent lookups of the same inode that is not in the
per-AG inode cache, there is a race condition that triggers warnings
in unlock_new_inode() indicating that we are initialising an inode
that isn't in a the correct state for a new inode.

When we do an inode lookup via a file handle or a bulkstat, we don't
serialise lookups at a higher level through the dentry cache (i.e.
pathless lookup), and so we can get concurrent lookups of the same
inode.

The race condition is between the insertion of the inode into the
cache in the case of a cache miss and a concurrently lookup:

Thread 1			Thread 2
xfs_iget()
  xfs_iget_cache_miss()
    xfs_iread()
    lock radix tree
    radix_tree_insert()
				rcu_read_lock
				radix_tree_lookup
				lock inode flags
				XFS_INEW not set
				igrab()
				unlock inode flags
				rcu_read_unlock
				use uninitialised inode
				.....
    lock inode flags
    set XFS_INEW
    unlock inode flags
    unlock radix tree
  xfs_setup_inode()
    inode flags = I_NEW
    unlock_new_inode()
      WARNING as inode flags != I_NEW

This can lead to inode corruption, inode list corruption, etc, and
is generally a bad thing to occur.

Fix this by setting XFS_INEW before inserting the inode into the
radix tree. This will ensure any concurrent lookup will find the new
inode with XFS_INEW set and that forces the lookup to wait until the
XFS_INEW flag is removed before allowing the lookup to succeed.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/xfs/xfs_iget.c |   18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -353,9 +353,20 @@ xfs_iget_cache_miss(
 			BUG();
 	}
 
-	spin_lock(&pag->pag_ici_lock);
+	/*
+	 * These values must be set before inserting the inode into the radix
+	 * tree as the moment it is inserted a concurrent lookup (allowed by the
+	 * RCU locking mechanism) can find it and that lookup must see that this
+	 * is an inode currently under construction (i.e. that XFS_INEW is set).
+	 * The ip->i_flags_lock that protects the XFS_INEW flag forms the
+	 * memory barrier that ensures this detection works correctly at lookup
+	 * time.
+	 */
+	ip->i_udquot = ip->i_gdquot = NULL;
+	xfs_iflags_set(ip, XFS_INEW);
 
 	/* insert the new inode */
+	spin_lock(&pag->pag_ici_lock);
 	error = radix_tree_insert(&pag->pag_ici_root, agino, ip);
 	if (unlikely(error)) {
 		WARN_ON(error != -EEXIST);
@@ -363,11 +374,6 @@ xfs_iget_cache_miss(
 		error = EAGAIN;
 		goto out_preload_end;
 	}
-
-	/* These values _must_ be set before releasing the radix tree lock! */
-	ip->i_udquot = ip->i_gdquot = NULL;
-	xfs_iflags_set(ip, XFS_INEW);
-
 	spin_unlock(&pag->pag_ici_lock);
 	radix_tree_preload_end();
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 092/149] CIFS: Respect negotiated MaxMpxCount
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (90 preceding siblings ...)
  2012-03-30 19:50 ` [ 091/149] xfs: fix inode lookup race Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 093/149] cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next Greg KH
                   ` (56 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jeff Layton, Pavel Shilovsky, Steve French

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Pavel Shilovsky <piastry@etersoft.ru>

commit 10b9b98e41ba248a899f6175ce96ee91431b6194 upstream.

Some servers sets this value less than 50 that was hardcoded and
we lost the connection if when we exceed this limit. Fix this by
respecting this value - not sending more than the server allows.

Reviewed-by: Jeff Layton <jlayton@samba.org>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/cifs/cifsfs.c    |    8 ++++----
 fs/cifs/cifsglob.h  |   10 +++-------
 fs/cifs/cifssmb.c   |    9 +++++++--
 fs/cifs/connect.c   |   11 ++++-------
 fs/cifs/dir.c       |    6 ++++--
 fs/cifs/file.c      |    4 ++--
 fs/cifs/transport.c |    4 ++--
 7 files changed, 26 insertions(+), 26 deletions(-)

--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -76,7 +76,7 @@ MODULE_PARM_DESC(cifs_min_small, "Small
 unsigned int cifs_max_pending = CIFS_MAX_REQ;
 module_param(cifs_max_pending, int, 0444);
 MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. "
-				   "Default: 50 Range: 2 to 256");
+				   "Default: 32767 Range: 2 to 32767.");
 unsigned short echo_retries = 5;
 module_param(echo_retries, ushort, 0644);
 MODULE_PARM_DESC(echo_retries, "Number of echo attempts before giving up and "
@@ -1116,9 +1116,9 @@ init_cifs(void)
 	if (cifs_max_pending < 2) {
 		cifs_max_pending = 2;
 		cFYI(1, "cifs_max_pending set to min of 2");
-	} else if (cifs_max_pending > 256) {
-		cifs_max_pending = 256;
-		cFYI(1, "cifs_max_pending set to max of 256");
+	} else if (cifs_max_pending > CIFS_MAX_REQ) {
+		cifs_max_pending = CIFS_MAX_REQ;
+		cFYI(1, "cifs_max_pending set to max of %u", CIFS_MAX_REQ);
 	}
 
 	rc = cifs_fscache_register();
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -55,14 +55,9 @@
 
 /*
  * MAX_REQ is the maximum number of requests that WE will send
- * on one socket concurrently. It also matches the most common
- * value of max multiplex returned by servers.  We may
- * eventually want to use the negotiated value (in case
- * future servers can handle more) when we are more confident that
- * we will not have problems oveloading the socket with pending
- * write data.
+ * on one socket concurrently.
  */
-#define CIFS_MAX_REQ 50
+#define CIFS_MAX_REQ 32767
 
 #define RFC1001_NAME_LEN 15
 #define RFC1001_NAME_LEN_WITH_NULL (RFC1001_NAME_LEN + 1)
@@ -263,6 +258,7 @@ struct TCP_Server_Info {
 	bool session_estab; /* mark when very first sess is established */
 	u16 dialect; /* dialect index that server chose */
 	enum securityEnum secType;
+	bool oplocks:1; /* enable oplocks */
 	unsigned int maxReq;	/* Clients should submit no more */
 	/* than maxReq distinct unanswered SMBs to the server when using  */
 	/* multiplexed reads or writes */
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -458,7 +458,10 @@ CIFSSMBNegotiate(unsigned int xid, struc
 			goto neg_err_exit;
 		}
 		server->sec_mode = (__u8)le16_to_cpu(rsp->SecurityMode);
-		server->maxReq = le16_to_cpu(rsp->MaxMpxCount);
+		server->maxReq = min_t(unsigned int,
+				       le16_to_cpu(rsp->MaxMpxCount),
+				       cifs_max_pending);
+		server->oplocks = server->maxReq > 1 ? enable_oplocks : false;
 		server->maxBuf = le16_to_cpu(rsp->MaxBufSize);
 		server->max_vcs = le16_to_cpu(rsp->MaxNumberVcs);
 		/* even though we do not use raw we might as well set this
@@ -564,7 +567,9 @@ CIFSSMBNegotiate(unsigned int xid, struc
 
 	/* one byte, so no need to convert this or EncryptionKeyLen from
 	   little endian */
-	server->maxReq = le16_to_cpu(pSMBr->MaxMpxCount);
+	server->maxReq = min_t(unsigned int, le16_to_cpu(pSMBr->MaxMpxCount),
+			       cifs_max_pending);
+	server->oplocks = server->maxReq > 1 ? enable_oplocks : false;
 	/* probably no need to store and check maxvcs */
 	server->maxBuf = le32_to_cpu(pSMBr->MaxBufferSize);
 	server->max_rw = le32_to_cpu(pSMBr->MaxRawSize);
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -625,14 +625,10 @@ static void clean_demultiplex_info(struc
 	spin_unlock(&GlobalMid_Lock);
 	wake_up_all(&server->response_q);
 
-	/*
-	 * Check if we have blocked requests that need to free. Note that
-	 * cifs_max_pending is normally 50, but can be set at module install
-	 * time to as little as two.
-	 */
+	/* Check if we have blocked requests that need to free. */
 	spin_lock(&GlobalMid_Lock);
-	if (atomic_read(&server->inFlight) >= cifs_max_pending)
-		atomic_set(&server->inFlight, cifs_max_pending - 1);
+	if (atomic_read(&server->inFlight) >= server->maxReq)
+		atomic_set(&server->inFlight, server->maxReq - 1);
 	/*
 	 * We do not want to set the max_pending too low or we could end up
 	 * with the counter going negative.
@@ -1890,6 +1886,7 @@ cifs_get_tcp_session(struct smb_vol *vol
 	tcp_ses->noautotune = volume_info->noautotune;
 	tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay;
 	atomic_set(&tcp_ses->inFlight, 0);
+	tcp_ses->maxReq = 1; /* enough to send negotiate request */
 	init_waitqueue_head(&tcp_ses->response_q);
 	init_waitqueue_head(&tcp_ses->request_q);
 	INIT_LIST_HEAD(&tcp_ses->pending_mid_q);
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -171,7 +171,7 @@ cifs_create(struct inode *inode, struct
 	}
 	tcon = tlink_tcon(tlink);
 
-	if (enable_oplocks)
+	if (tcon->ses->server->oplocks)
 		oplock = REQ_OPLOCK;
 
 	if (nd)
@@ -492,7 +492,7 @@ cifs_lookup(struct inode *parent_dir_ino
 {
 	int xid;
 	int rc = 0; /* to get around spurious gcc warning, set to zero here */
-	__u32 oplock = enable_oplocks ? REQ_OPLOCK : 0;
+	__u32 oplock;
 	__u16 fileHandle = 0;
 	bool posix_open = false;
 	struct cifs_sb_info *cifs_sb;
@@ -518,6 +518,8 @@ cifs_lookup(struct inode *parent_dir_ino
 	}
 	pTcon = tlink_tcon(tlink);
 
+	oplock = pTcon->ses->server->oplocks ? REQ_OPLOCK : 0;
+
 	/*
 	 * Don't allow the separator character in a path component.
 	 * The VFS will not allow "/", but "\" is allowed by posix.
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -380,7 +380,7 @@ int cifs_open(struct inode *inode, struc
 	cFYI(1, "inode = 0x%p file flags are 0x%x for %s",
 		 inode, file->f_flags, full_path);
 
-	if (enable_oplocks)
+	if (tcon->ses->server->oplocks)
 		oplock = REQ_OPLOCK;
 	else
 		oplock = 0;
@@ -505,7 +505,7 @@ static int cifs_reopen_file(struct cifsF
 	cFYI(1, "inode = 0x%p file flags 0x%x for %s",
 		 inode, pCifsFile->f_flags, full_path);
 
-	if (enable_oplocks)
+	if (tcon->ses->server->oplocks)
 		oplock = REQ_OPLOCK;
 	else
 		oplock = 0;
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -265,12 +265,12 @@ static int wait_for_free_request(struct
 
 	spin_lock(&GlobalMid_Lock);
 	while (1) {
-		if (atomic_read(&server->inFlight) >= cifs_max_pending) {
+		if (atomic_read(&server->inFlight) >= server->maxReq) {
 			spin_unlock(&GlobalMid_Lock);
 			cifs_num_waiters_inc(server);
 			wait_event(server->request_q,
 				   atomic_read(&server->inFlight)
-				     < cifs_max_pending);
+				     < server->maxReq);
 			cifs_num_waiters_dec(server);
 			spin_lock(&GlobalMid_Lock);
 		} else {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 093/149] cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (91 preceding siblings ...)
  2012-03-30 19:50 ` [ 092/149] CIFS: Respect negotiated MaxMpxCount Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 094/149] CIFS: Fix a spurious error in cifs_push_posix_locks Greg KH
                   ` (55 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Thomas Hadig, Jeff Layton, Steve French

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jeff Layton <jlayton@redhat.com>

commit 1daaae8fa4afe3df78ca34e724ed7e8187e4eb32 upstream.

This patch fixes an issue when cifs_mount receives a
STATUS_BAD_NETWORK_NAME error during cifs_get_tcon but is able to
continue after an DFS ROOT referral. In this case, the return code
variable is not reset prior to trying to mount from the system referred
to. Thus, is_path_accessible is not executed and the final DFS referral
is not performed causing a mount error.

Use case: In DNS, example.com  resolves to the secondary AD server
ad2.example.com Our primary domain controller is ad1.example.com and has
a DFS redirection set up from \\ad1\share\Users to \\files\share\Users.
Mounting \\example.com\share\Users fails.

Regression introduced by commit 724d9f1.

Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru
Signed-off-by: Thomas Hadig <thomas@intapp.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/cifs/connect.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3217,7 +3217,7 @@ cifs_ra_pages(struct cifs_sb_info *cifs_
 int
 cifs_mount(struct cifs_sb_info *cifs_sb, struct smb_vol *volume_info)
 {
-	int rc = 0;
+	int rc;
 	int xid;
 	struct cifs_ses *pSesInfo;
 	struct cifs_tcon *tcon;
@@ -3244,6 +3244,7 @@ try_mount_again:
 		FreeXid(xid);
 	}
 #endif
+	rc = 0;
 	tcon = NULL;
 	pSesInfo = NULL;
 	srvTcp = NULL;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 094/149] CIFS: Fix a spurious error in cifs_push_posix_locks
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (92 preceding siblings ...)
  2012-03-30 19:50 ` [ 093/149] cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 095/149] UBI: fix error handling in ubi_scan() Greg KH
                   ` (54 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Pavel Shilovsky, Jeff Layton,
	Ben Hutchings, Steve French

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Pavel Shilovsky <piastry@etersoft.ru>

commit ce85852b90a214cf577fc1b4f49d99fd7e98784a upstream.

Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Reported-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/cifs/file.c |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -960,9 +960,9 @@ cifs_push_posix_locks(struct cifsFileInf
 	INIT_LIST_HEAD(&locks_to_send);
 
 	/*
-	 * Allocating count locks is enough because no locks can be added to
-	 * the list while we are holding cinode->lock_mutex that protects
-	 * locking operations of this inode.
+	 * Allocating count locks is enough because no FL_POSIX locks can be
+	 * added to the list while we are holding cinode->lock_mutex that
+	 * protects locking operations of this inode.
 	 */
 	for (; i < count; i++) {
 		lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
@@ -973,18 +973,20 @@ cifs_push_posix_locks(struct cifsFileInf
 		list_add_tail(&lck->llist, &locks_to_send);
 	}
 
-	i = 0;
 	el = locks_to_send.next;
 	lock_flocks();
 	cifs_for_each_lock(cfile->dentry->d_inode, before) {
+		flock = *before;
+		if ((flock->fl_flags & FL_POSIX) == 0)
+			continue;
 		if (el == &locks_to_send) {
-			/* something is really wrong */
+			/*
+			 * The list ended. We don't have enough allocated
+			 * structures - something is really wrong.
+			 */
 			cERROR(1, "Can't push all brlocks!");
 			break;
 		}
-		flock = *before;
-		if ((flock->fl_flags & FL_POSIX) == 0)
-			continue;
 		length = 1 + flock->fl_end - flock->fl_start;
 		if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK)
 			type = CIFS_RDLCK;
@@ -996,7 +998,6 @@ cifs_push_posix_locks(struct cifsFileInf
 		lck->length = length;
 		lck->type = type;
 		lck->offset = flock->fl_start;
-		i++;
 		el = el->next;
 	}
 	unlock_flocks();



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 095/149] UBI: fix error handling in ubi_scan()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (93 preceding siblings ...)
  2012-03-30 19:50 ` [ 094/149] CIFS: Fix a spurious error in cifs_push_posix_locks Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 096/149] UBI: fix eraseblock picking criteria Greg KH
                   ` (53 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Richard Weinberger, Artem Bityutskiy

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Richard Weinberger <richard@nod.at>

commit a29852be492d61001d86c6ebf5fff9b93d7b4be9 upstream.

Two bad things can happen in ubi_scan():
1. If kmem_cache_create() fails we jump to out_si and call
   ubi_scan_destroy_si() which calls kmem_cache_destroy().
   But si->scan_leb_slab is NULL.
2. If process_eb() fails we jump to out_vidh, call
   kmem_cache_destroy() and ubi_scan_destroy_si() which calls
   again kmem_cache_destroy().

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mtd/ubi/scan.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/mtd/ubi/scan.c
+++ b/drivers/mtd/ubi/scan.c
@@ -1174,7 +1174,7 @@ struct ubi_scan_info *ubi_scan(struct ub
 
 	ech = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL);
 	if (!ech)
-		goto out_slab;
+		goto out_si;
 
 	vidh = ubi_zalloc_vid_hdr(ubi, GFP_KERNEL);
 	if (!vidh)
@@ -1235,8 +1235,6 @@ out_vidh:
 	ubi_free_vid_hdr(ubi, vidh);
 out_ech:
 	kfree(ech);
-out_slab:
-	kmem_cache_destroy(si->scan_leb_slab);
 out_si:
 	ubi_scan_destroy_si(si);
 	return ERR_PTR(err);
@@ -1325,7 +1323,9 @@ void ubi_scan_destroy_si(struct ubi_scan
 		}
 	}
 
-	kmem_cache_destroy(si->scan_leb_slab);
+	if (si->scan_leb_slab)
+		kmem_cache_destroy(si->scan_leb_slab);
+
 	kfree(si);
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 096/149] UBI: fix eraseblock picking criteria
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (94 preceding siblings ...)
  2012-03-30 19:50 ` [ 095/149] UBI: fix error handling in ubi_scan() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 097/149] SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() Greg KH
                   ` (52 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Shmulik Ladkani, Artem Bityutskiy

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

commit 7eb3aa65853e1b223bfc786b023b702018cb76c0 upstream.

The 'find_wl_entry()' function expects the maximum difference as the second
argument, not the maximum absolute value. So the "unknown" eraseblock picking
was incorrect, as Shmulik Ladkani spotted. This patch fixes the issue.

Reported-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Reviewed-by: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/mtd/ubi/wl.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

--- a/drivers/mtd/ubi/wl.c
+++ b/drivers/mtd/ubi/wl.c
@@ -389,7 +389,7 @@ static struct ubi_wl_entry *find_wl_entr
  */
 int ubi_wl_get_peb(struct ubi_device *ubi, int dtype)
 {
-	int err, medium_ec;
+	int err;
 	struct ubi_wl_entry *e, *first, *last;
 
 	ubi_assert(dtype == UBI_LONGTERM || dtype == UBI_SHORTTERM ||
@@ -427,7 +427,7 @@ retry:
 		 * For unknown data we pick a physical eraseblock with medium
 		 * erase counter. But we by no means can pick a physical
 		 * eraseblock with erase counter greater or equivalent than the
-		 * lowest erase counter plus %WL_FREE_MAX_DIFF.
+		 * lowest erase counter plus %WL_FREE_MAX_DIFF/2.
 		 */
 		first = rb_entry(rb_first(&ubi->free), struct ubi_wl_entry,
 					u.rb);
@@ -436,10 +436,8 @@ retry:
 		if (last->ec - first->ec < WL_FREE_MAX_DIFF)
 			e = rb_entry(ubi->free.rb_node,
 					struct ubi_wl_entry, u.rb);
-		else {
-			medium_ec = (first->ec + WL_FREE_MAX_DIFF)/2;
-			e = find_wl_entry(&ubi->free, medium_ec);
-		}
+		else
+			e = find_wl_entry(&ubi->free, WL_FREE_MAX_DIFF/2);
 		break;
 	case UBI_SHORTTERM:
 		/*



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 097/149] SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (95 preceding siblings ...)
  2012-03-30 19:50 ` [ 096/149] UBI: fix eraseblock picking criteria Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 098/149] usbnet: increase URB reference count before usb_unlink_urb Greg KH
                   ` (51 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Andy Adamson, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit 540a0f7584169651f485e8ab67461fcb06934e38 upstream.

The problem is that for the case of priority queues, we
have to assume that __rpc_remove_wait_queue_priority will move new
elements from the tk_wait.links lists into the queue->tasks[] list.
We therefore cannot use list_for_each_entry_safe() on queue->tasks[],
since that will skip these new tasks that __rpc_remove_wait_queue_priority
is adding.

Without this fix, rpc_wake_up and rpc_wake_up_status will both fail
to wake up all functions on priority wait queues, which can result
in some nasty hangs.

Reported-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/sunrpc/sched.c |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -500,14 +500,18 @@ EXPORT_SYMBOL_GPL(rpc_wake_up_next);
  */
 void rpc_wake_up(struct rpc_wait_queue *queue)
 {
-	struct rpc_task *task, *next;
 	struct list_head *head;
 
 	spin_lock_bh(&queue->lock);
 	head = &queue->tasks[queue->maxpriority];
 	for (;;) {
-		list_for_each_entry_safe(task, next, head, u.tk_wait.list)
+		while (!list_empty(head)) {
+			struct rpc_task *task;
+			task = list_first_entry(head,
+					struct rpc_task,
+					u.tk_wait.list);
 			rpc_wake_up_task_queue_locked(queue, task);
+		}
 		if (head == &queue->tasks[0])
 			break;
 		head--;
@@ -525,13 +529,16 @@ EXPORT_SYMBOL_GPL(rpc_wake_up);
  */
 void rpc_wake_up_status(struct rpc_wait_queue *queue, int status)
 {
-	struct rpc_task *task, *next;
 	struct list_head *head;
 
 	spin_lock_bh(&queue->lock);
 	head = &queue->tasks[queue->maxpriority];
 	for (;;) {
-		list_for_each_entry_safe(task, next, head, u.tk_wait.list) {
+		while (!list_empty(head)) {
+			struct rpc_task *task;
+			task = list_first_entry(head,
+					struct rpc_task,
+					u.tk_wait.list);
 			task->tk_status = status;
 			rpc_wake_up_task_queue_locked(queue, task);
 		}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 098/149] usbnet: increase URB reference count before usb_unlink_urb
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (96 preceding siblings ...)
  2012-03-30 19:50 ` [ 097/149] SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 099/149] usbnet: dont clear urb->dev in tx_complete Greg KH
                   ` (50 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Sebastian Andrzej Siewior, Alan Stern,
	Oliver Neukum, Dave Jones, Ming Lei, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "tom.leiming@gmail.com" <tom.leiming@gmail.com>

commit 0956a8c20b23d429e79ff86d4325583fc06f9eb4 upstream.

Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock, but it makes usb_unlink_urb
racing with defer_bh, and the URB to being unlinked may be freed before
or during calling usb_unlink_urb, so use-after-free problem may be
triggerd inside usb_unlink_urb.

The patch fixes the use-after-free problem by increasing URB
reference count with skb queue lock held before calling
usb_unlink_urb, so the URB won't be freed until return from
usb_unlink_urb.

Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oliver@neukum.org>
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/usb/usbnet.c |    9 +++++++++
 1 file changed, 9 insertions(+)

--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -589,6 +589,14 @@ static int unlink_urbs (struct usbnet *d
 		entry = (struct skb_data *) skb->cb;
 		urb = entry->urb;
 
+		/*
+		 * Get reference count of the URB to avoid it to be
+		 * freed during usb_unlink_urb, which may trigger
+		 * use-after-free problem inside usb_unlink_urb since
+		 * usb_unlink_urb is always racing with .complete
+		 * handler(include defer_bh).
+		 */
+		usb_get_urb(urb);
 		spin_unlock_irqrestore(&q->lock, flags);
 		// during some PM-driven resume scenarios,
 		// these (async) unlinks complete immediately
@@ -597,6 +605,7 @@ static int unlink_urbs (struct usbnet *d
 			netdev_dbg(dev->net, "unlink urb err, %d\n", retval);
 		else
 			count++;
+		usb_put_urb(urb);
 		spin_lock_irqsave(&q->lock, flags);
 	}
 	spin_unlock_irqrestore (&q->lock, flags);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 099/149] usbnet: dont clear urb->dev in tx_complete
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (97 preceding siblings ...)
  2012-03-30 19:50 ` [ 098/149] usbnet: increase URB reference count before usb_unlink_urb Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 100/149] e1000e: Avoid wrong check on TX hang Greg KH
                   ` (49 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Alan Stern, Oliver Neukum, Ming Lei,
	David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "tom.leiming@gmail.com" <tom.leiming@gmail.com>

commit 5d5440a835710d09f0ef18da5000541ec98b537a upstream.

URB unlinking is always racing with its completion and tx_complete
may be called before or during running usb_unlink_urb, so tx_complete
must not clear urb->dev since it will be used in unlink path,
otherwise invalid memory accesses or usb device leak may be caused
inside usb_unlink_urb.

Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/usb/usbnet.c |    1 -
 1 file changed, 1 deletion(-)

--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1037,7 +1037,6 @@ static void tx_complete (struct urb *urb
 	}
 
 	usb_autopm_put_interface_async(dev->intf);
-	urb->dev = NULL;
 	entry->state = tx_done;
 	defer_bh(dev, skb, &dev->txq);
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 100/149] e1000e: Avoid wrong check on TX hang
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (98 preceding siblings ...)
  2012-03-30 19:50 ` [ 099/149] usbnet: dont clear urb->dev in tx_complete Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 101/149] x86-32: Fix endless loop when processing signals for kernel tasks Greg KH
                   ` (48 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Michael Wang, Flavio Leitner,
	Jesse Brandeburg, Aaron Brown, Jeff Kirsher

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

commit 09357b00255c233705b1cf6d76a8d147340545b8 upstream.

Based on the original patch submitted my Michael Wang
<wangyun@linux.vnet.ibm.com>.
Descriptors may not be write-back while checking TX hang with flag
FLAG2_DMA_BURST on.
So when we detect hang, we just flush the descriptor and detect
again for once.

-v2 change 1 to true and 0 to false and remove extra ()

CC: Michael Wang <wangyun@linux.vnet.ibm.com>
CC: Flavio Leitner <fbl@redhat.com>
Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/net/ethernet/intel/e1000e/e1000.h  |    1 +
 drivers/net/ethernet/intel/e1000e/netdev.c |   23 ++++++++++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

--- a/drivers/net/ethernet/intel/e1000e/e1000.h
+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
@@ -309,6 +309,7 @@ struct e1000_adapter {
 	u32 txd_cmd;
 
 	bool detect_tx_hung;
+	bool tx_hang_recheck;
 	u8 tx_timeout_factor;
 
 	u32 tx_int_delay;
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1030,6 +1030,7 @@ static void e1000_print_hw_hang(struct w
 	struct e1000_adapter *adapter = container_of(work,
 	                                             struct e1000_adapter,
 	                                             print_hang_task);
+	struct net_device *netdev = adapter->netdev;
 	struct e1000_ring *tx_ring = adapter->tx_ring;
 	unsigned int i = tx_ring->next_to_clean;
 	unsigned int eop = tx_ring->buffer_info[i].next_to_watch;
@@ -1041,6 +1042,21 @@ static void e1000_print_hw_hang(struct w
 	if (test_bit(__E1000_DOWN, &adapter->state))
 		return;
 
+	if (!adapter->tx_hang_recheck &&
+	    (adapter->flags2 & FLAG2_DMA_BURST)) {
+		/* May be block on write-back, flush and detect again
+		 * flush pending descriptor writebacks to memory
+		 */
+		ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD);
+		/* execute the writes immediately */
+		e1e_flush();
+		adapter->tx_hang_recheck = true;
+		return;
+	}
+	/* Real hang detected */
+	adapter->tx_hang_recheck = false;
+	netif_stop_queue(netdev);
+
 	e1e_rphy(hw, PHY_STATUS, &phy_status);
 	e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status);
 	e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status);
@@ -1154,10 +1170,10 @@ static bool e1000_clean_tx_irq(struct e1
 		if (tx_ring->buffer_info[i].time_stamp &&
 		    time_after(jiffies, tx_ring->buffer_info[i].time_stamp
 			       + (adapter->tx_timeout_factor * HZ)) &&
-		    !(er32(STATUS) & E1000_STATUS_TXOFF)) {
+		    !(er32(STATUS) & E1000_STATUS_TXOFF))
 			schedule_work(&adapter->print_hang_task);
-			netif_stop_queue(netdev);
-		}
+		else
+			adapter->tx_hang_recheck = false;
 	}
 	adapter->total_tx_bytes += total_tx_bytes;
 	adapter->total_tx_packets += total_tx_packets;
@@ -3782,6 +3798,7 @@ static int e1000_open(struct net_device
 
 	e1000_irq_enable(adapter);
 
+	adapter->tx_hang_recheck = false;
 	netif_start_queue(netdev);
 
 	adapter->idle_check = true;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 101/149] x86-32: Fix endless loop when processing signals for kernel tasks
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (99 preceding siblings ...)
  2012-03-30 19:50 ` [ 100/149] e1000e: Avoid wrong check on TX hang Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 102/149] proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate() Greg KH
                   ` (47 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Dmitry Adamushko, Oleg Nesterov,
	Roland McGrath, H. Peter Anvin

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dmitry Adamushko <dmitry.adamushko@gmail.com>

commit 29a2e2836ff9ea65a603c89df217f4198973a74f upstream.

The problem occurs on !CONFIG_VM86 kernels [1] when a kernel-mode task
returns from a system call with a pending signal.

A real-life scenario is a child of 'khelper' returning from a failed
kernel_execve() in ____call_usermodehelper() [ kernel/kmod.c ].
kernel_execve() fails due to a pending SIGKILL, which is the result of
"kill -9 -1" (at least, busybox's init does it upon reboot).

The loop is as follows:

* syscall_exit_work:
 - work_pending:            // start_of_the_loop
 - work_notify_sig:
   - do_notify_resume()
     - do_signal()
       - if (!user_mode(regs)) return;
 - resume_userspace         // TIF_SIGPENDING is still set
 - work_pending             // so we call work_pending => goto
                            // start_of_the_loop

More information can be found in another LKML thread:
http://www.serverphorums.com/read.php?12,457826

[1] the problem was also seen on MIPS.

Signed-off-by: Dmitry Adamushko <dmitry.adamushko@gmail.com>
Link: http://lkml.kernel.org/r/1332448765.2299.68.camel@dimm
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Roland McGrath <roland@hack.frob.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/entry_32.S |   17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -99,12 +99,6 @@
 #endif
 .endm
 
-#ifdef CONFIG_VM86
-#define resume_userspace_sig	check_userspace
-#else
-#define resume_userspace_sig	resume_userspace
-#endif
-
 /*
  * User gs save/restore
  *
@@ -328,10 +322,19 @@ ret_from_exception:
 	preempt_stop(CLBR_ANY)
 ret_from_intr:
 	GET_THREAD_INFO(%ebp)
-check_userspace:
+resume_userspace_sig:
+#ifdef CONFIG_VM86
 	movl PT_EFLAGS(%esp), %eax	# mix EFLAGS and CS
 	movb PT_CS(%esp), %al
 	andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax
+#else
+	/*
+	 * We can be coming here from a syscall done in the kernel space,
+	 * e.g. a failed kernel_execve().
+	 */
+	movl PT_CS(%esp), %eax
+	andl $SEGMENT_RPL_MASK, %eax
+#endif
 	cmpl $USER_RPL, %eax
 	jb resume_kernel		# not returning to v8086 or userspace
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 102/149] proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (100 preceding siblings ...)
  2012-03-30 19:50 ` [ 101/149] x86-32: Fix endless loop when processing signals for kernel tasks Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 103/149] iommu/amd: Fix section warning for prealloc_protection_domains Greg KH
                   ` (46 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Eric W. Biederman, Justin Pettit,
	Pravin B Shelar, Jesse Gross, David Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Pravin B Shelar <pshelar@nicira.com>

commit 1b26c9b334044cff6d1d2698f2be41bc7d9a0864 upstream.

The namespace cleanup path leaks a dentry which holds a reference count
on a network namespace.  Keeping that network namespace from being freed
when the last user goes away.  Leaving things like vlan devices in the
leaked network namespace.

If you use ip netns add for much real work this problem becomes apparent
pretty quickly.  It light testing the problem hides because frequently
you simply don't notice the leak.

Use d_set_d_op() so that DCACHE_OP_* flags are set correctly.

This issue exists back to 3.0.

Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Cc: David Miller <davem@davemloft.net>
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/proc/namespaces.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/proc/namespaces.c
+++ b/fs/proc/namespaces.c
@@ -54,7 +54,7 @@ static struct dentry *proc_ns_instantiat
 	ei->ns_ops    = ns_ops;
 	ei->ns	      = ns;
 
-	dentry->d_op = &pid_dentry_operations;
+	d_set_d_op(dentry, &pid_dentry_operations);
 	d_add(dentry, inode);
 	/* Close the race of the process dying before we return the dentry */
 	if (pid_revalidate(dentry, NULL))



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 103/149] iommu/amd: Fix section warning for prealloc_protection_domains
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (101 preceding siblings ...)
  2012-03-30 19:50 ` [ 102/149] proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 104/149] sysctl: protect poll() in entries that may go away Greg KH
                   ` (45 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Steffen Persvold, Joerg Roedel

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Steffen Persvold <sp@numascale.com>

commit cebd5fa4d3046d5b43ce1836a0120612822a7fb0 upstream.

Fix the following section warning in drivers/iommu/amd_iommu.c :

WARNING: vmlinux.o(.text+0x526e77): Section mismatch in reference from the function prealloc_protection_domains() to the function .init.text:alloc_passthrough_domain()
The function prealloc_protection_domains() references
the function __init alloc_passthrough_domain().
This is often because prealloc_protection_domains lacks a __init
annotation or the annotation of alloc_passthrough_domain is wrong.

Signed-off-by: Steffen Persvold <sp@numascale.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/iommu/amd_iommu.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -2432,7 +2432,7 @@ static int amd_iommu_dma_supported(struc
  * we don't need to preallocate the protection domains anymore.
  * For now we have to.
  */
-static void prealloc_protection_domains(void)
+static void __init prealloc_protection_domains(void)
 {
 	struct pci_dev *dev = NULL;
 	struct dma_ops_domain *dma_dom;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 104/149] sysctl: protect poll() in entries that may go away
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (102 preceding siblings ...)
  2012-03-30 19:50 ` [ 103/149] iommu/amd: Fix section warning for prealloc_protection_domains Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 105/149] hwmon: (fam15h_power) Correct sign extension of running_avg_capture Greg KH
                   ` (44 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Dave Jones, Lucas De Marchi, Al Viro,
	Alexey Dobriyan, Eric W. Biederman

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Lucas De Marchi <lucas.demarchi@profusion.mobi>

commit 4e474a00d7ff746ed177ddae14fa8b2d4bad7a00 upstream.

Protect code accessing ctl_table by grabbing the header with grab_header()
and after releasing with sysctl_head_finish().  This is needed if poll()
is called in entries created by modules: currently only hostname and
domainname support poll(), but this bug may be triggered when/if modules
use it and if user called poll() in a file that doesn't support it.

Dave Jones reported the following when using a syscall fuzzer while
hibernating/resuming:

RIP: 0010:[<ffffffff81233e3e>]  [<ffffffff81233e3e>] proc_sys_poll+0x4e/0x90
RAX: 0000000000000145 RBX: ffff88020cab6940 RCX: 0000000000000000
RDX: ffffffff81233df0 RSI: 6b6b6b6b6b6b6b6b RDI: ffff88020cab6940
[ ... ]
Code: 00 48 89 fb 48 89 f1 48 8b 40 30 4c 8b 60 e8 b8 45 01 00 00 49 83
7c 24 28 00 74 2e 49 8b 74 24 30 48 85 f6 74 24 48 85 c9 75 32 <8b> 16
b8 45 01 00 00 48 63 d2 49 39 d5 74 10 8b 06 48 98 48 89

If an entry goes away while we are polling() it, ctl_table may not exist
anymore.

Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/proc/proc_sysctl.c |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -188,20 +188,32 @@ static ssize_t proc_sys_write(struct fil
 
 static int proc_sys_open(struct inode *inode, struct file *filp)
 {
+	struct ctl_table_header *head = grab_header(inode);
 	struct ctl_table *table = PROC_I(inode)->sysctl_entry;
 
+	/* sysctl was unregistered */
+	if (IS_ERR(head))
+		return PTR_ERR(head);
+
 	if (table->poll)
 		filp->private_data = proc_sys_poll_event(table->poll);
 
+	sysctl_head_finish(head);
+
 	return 0;
 }
 
 static unsigned int proc_sys_poll(struct file *filp, poll_table *wait)
 {
 	struct inode *inode = filp->f_path.dentry->d_inode;
+	struct ctl_table_header *head = grab_header(inode);
 	struct ctl_table *table = PROC_I(inode)->sysctl_entry;
-	unsigned long event = (unsigned long)filp->private_data;
 	unsigned int ret = DEFAULT_POLLMASK;
+	unsigned long event;
+
+	/* sysctl was unregistered */
+	if (IS_ERR(head))
+		return POLLERR | POLLHUP;
 
 	if (!table->proc_handler)
 		goto out;
@@ -209,6 +221,7 @@ static unsigned int proc_sys_poll(struct
 	if (!table->poll)
 		goto out;
 
+	event = (unsigned long)filp->private_data;
 	poll_wait(filp, &table->poll->wait, wait);
 
 	if (event != atomic_read(&table->poll->event)) {
@@ -217,6 +230,8 @@ static unsigned int proc_sys_poll(struct
 	}
 
 out:
+	sysctl_head_finish(head);
+
 	return ret;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 105/149] hwmon: (fam15h_power) Correct sign extension of running_avg_capture
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (103 preceding siblings ...)
  2012-03-30 19:50 ` [ 104/149] sysctl: protect poll() in entries that may go away Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 106/149] [media] lgdt330x: fix signedness error in i2c_read_demod_bytes() Greg KH
                   ` (43 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Andre Przywara, Andreas Herrmann,
	Guenter Roeck, Jean Delvare

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andreas Herrmann <andreas.herrmann3@amd.com>

commit fc0900cbda9243957d812cd6b4cc87965f9fe75f upstream.

Wrong bit was used for sign extension which caused wrong end results.
Thanks to Andre for spotting this bug.

Reported-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Acked-by: Guenter Roeck <guenter.roeck@ericsson.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/hwmon/fam15h_power.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/hwmon/fam15h_power.c
+++ b/drivers/hwmon/fam15h_power.c
@@ -60,7 +60,7 @@ static ssize_t show_power(struct device
 	pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5),
 				  REG_TDP_RUNNING_AVERAGE, &val);
 	running_avg_capture = (val >> 4) & 0x3fffff;
-	running_avg_capture = sign_extend32(running_avg_capture, 22);
+	running_avg_capture = sign_extend32(running_avg_capture, 21);
 	running_avg_range = val & 0xf;
 
 	pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5),



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 106/149] [media] lgdt330x: fix signedness error in i2c_read_demod_bytes()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (104 preceding siblings ...)
  2012-03-30 19:50 ` [ 105/149] hwmon: (fam15h_power) Correct sign extension of running_avg_capture Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 107/149] [media] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5 Greg KH
                   ` (42 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Xi Wang, Mauro Carvalho Chehab

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Xi Wang <xi.wang@gmail.com>

commit 34817174fca0c5512c2d5b6ea0fc37a0337ce1d8 upstream.

The error handling in lgdt3303_read_status() and lgdt330x_read_ucblocks()
doesn't work, because i2c_read_demod_bytes() returns a u8 and (err < 0)
is always false.

        err = i2c_read_demod_bytes(state, 0x58, buf, 1);
        if (err < 0)
                return err;

Change the return type of i2c_read_demod_bytes() to int.  Also change
the return value on error to -EIO to make (err < 0) work.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/dvb/frontends/lgdt330x.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/media/dvb/frontends/lgdt330x.c
+++ b/drivers/media/dvb/frontends/lgdt330x.c
@@ -104,8 +104,8 @@ static int i2c_write_demod_bytes (struct
  * then reads the data returned for (len) bytes.
  */
 
-static u8 i2c_read_demod_bytes (struct lgdt330x_state* state,
-			       enum I2C_REG reg, u8* buf, int len)
+static int i2c_read_demod_bytes(struct lgdt330x_state *state,
+				enum I2C_REG reg, u8 *buf, int len)
 {
 	u8 wr [] = { reg };
 	struct i2c_msg msg [] = {
@@ -118,6 +118,8 @@ static u8 i2c_read_demod_bytes (struct l
 	ret = i2c_transfer(state->i2c, msg, 2);
 	if (ret != 2) {
 		printk(KERN_WARNING "lgdt330x: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __func__, state->config->demod_address, reg, ret);
+		if (ret >= 0)
+			ret = -EIO;
 	} else {
 		ret = 0;
 	}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 107/149] [media] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (105 preceding siblings ...)
  2012-03-30 19:50 ` [ 106/149] [media] lgdt330x: fix signedness error in i2c_read_demod_bytes() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 108/149] [media] mxl111sf: fix error on stream stop in mxl111sf_ep6_streaming_ctrl() Greg KH
                   ` (41 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Michael Krufky, Mike Isely, Mauro Carvalho Chehab

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michael Krufky <mkrufky@linuxtv.org>

commit 9ab2393fc3e460cd2040de1483918eb17abb822f upstream.

The D1F5 revision of the WinTV HVR-1900 uses a tda18271c2 tuner
instead of a tda18271c1 tuner as used in revision D1E9. To
account for this, we must hardcode the frontend configuration
to use the same IF frequency configuration for both revisions
of the device.

6MHz DVB-T is unaffected by this issue, as the recommended
IF Frequency configuration for 6MHz DVB-T is the same on both
c1 and c2 revisions of the tda18271 tuner.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Cc: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/video/pvrusb2/pvrusb2-devattr.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
@@ -320,7 +320,17 @@ static struct tda829x_config tda829x_no_
 	.probe_tuner = TDA829X_DONT_PROBE,
 };
 
+static struct tda18271_std_map hauppauge_tda18271_dvbt_std_map = {
+        .dvbt_6   = { .if_freq = 3300, .agc_mode = 3, .std = 4,
+                      .if_lvl = 1, .rfagc_top = 0x37, },
+        .dvbt_7   = { .if_freq = 3800, .agc_mode = 3, .std = 5,
+                      .if_lvl = 1, .rfagc_top = 0x37, },
+        .dvbt_8   = { .if_freq = 4300, .agc_mode = 3, .std = 6,
+                      .if_lvl = 1, .rfagc_top = 0x37, },
+};
+
 static struct tda18271_config hauppauge_tda18271_dvb_config = {
+	.std_map = &hauppauge_tda18271_dvbt_std_map,
 	.gate    = TDA18271_GATE_ANALOG,
 	.output_opt = TDA18271_OUTPUT_LT_OFF,
 };



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 108/149] [media] mxl111sf: fix error on stream stop in mxl111sf_ep6_streaming_ctrl()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (106 preceding siblings ...)
  2012-03-30 19:50 ` [ 107/149] [media] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5 Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 109/149] NFSv4: Rate limit the state manager warning messages Greg KH
                   ` (40 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Michael Krufky, Mauro Carvalho Chehab

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michael Krufky <mkrufky@linuxtv.org>

commit 3be5bb71fbf18f83cb88b54a62a78e03e5a4f30a upstream.

Remove unnecessary register access in mxl111sf_ep6_streaming_ctrl()

This code breaks driver operation in kernel 3.3 and later, although
it works properly in 3.2  Disable register access to 0x12 for now.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/media/dvb/dvb-usb/mxl111sf.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

--- a/drivers/media/dvb/dvb-usb/mxl111sf.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf.c
@@ -351,15 +351,13 @@ static int mxl111sf_ep6_streaming_ctrl(s
 					      adap_state->ep6_clockphase,
 					      0, 0);
 		mxl_fail(ret);
+#if 0
 	} else {
 		ret = mxl111sf_disable_656_port(state);
 		mxl_fail(ret);
+#endif
 	}
 
-	mxl111sf_read_reg(state, 0x12, &tmp);
-	tmp &= ~0x04;
-	mxl111sf_write_reg(state, 0x12, tmp);
-
 	return ret;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 109/149] NFSv4: Rate limit the state manager warning messages
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (107 preceding siblings ...)
  2012-03-30 19:50 ` [ 108/149] [media] mxl111sf: fix error on stream stop in mxl111sf_ep6_streaming_ctrl() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 110/149] PM / Hibernate: Enable usermodehelpers in hibernate() error path Greg KH
                   ` (39 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit 9a3ba432330e504ac61ff0043dbdaba7cea0e35a upstream.

Prevent the state manager from filling up system logs when recovery
fails on the server.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/callback_xdr.c |    4 +++-
 fs/nfs/nfs4proc.c     |    2 +-
 fs/nfs/nfs4state.c    |    4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

--- a/fs/nfs/callback_xdr.c
+++ b/fs/nfs/callback_xdr.c
@@ -9,6 +9,8 @@
 #include <linux/sunrpc/svc.h>
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
+#include <linux/ratelimit.h>
+#include <linux/printk.h>
 #include <linux/slab.h>
 #include <linux/sunrpc/bc_xprt.h>
 #include "nfs4_fs.h"
@@ -167,7 +169,7 @@ static __be32 decode_compound_hdr_arg(st
 	if (hdr->minorversion <= 1) {
 		hdr->cb_ident = ntohl(*p++); /* ignored by v4.1 */
 	} else {
-		printk(KERN_WARNING "%s: NFSv4 server callback with "
+		pr_warn_ratelimited("NFS: %s: NFSv4 server callback with "
 			"illegal minor version %u!\n",
 			__func__, hdr->minorversion);
 		return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1838,7 +1838,7 @@ static struct nfs4_state *nfs4_do_open(s
 		 * the user though...
 		 */
 		if (status == -NFS4ERR_BAD_SEQID) {
-			printk(KERN_WARNING "NFS: v4 server %s "
+			pr_warn_ratelimited("NFS: v4 server %s "
 					" returned a bad sequence-id error!\n",
 					NFS_SERVER(dir)->nfs_client->cl_hostname);
 			exception.retry = 1;
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -935,7 +935,7 @@ static void nfs_increment_seqid(int stat
 		case -NFS4ERR_BAD_SEQID:
 			if (seqid->sequence->flags & NFS_SEQID_CONFIRMED)
 				return;
-			printk(KERN_WARNING "NFS: v4 server returned a bad"
+			pr_warn_ratelimited("NFS: v4 server returned a bad"
 					" sequence-id error on an"
 					" unconfirmed sequence %p!\n",
 					seqid->sequence);
@@ -1764,7 +1764,7 @@ static void nfs4_state_manager(struct nf
 	} while (atomic_read(&clp->cl_count) > 1);
 	return;
 out_error:
-	printk(KERN_WARNING "Error: state manager failed on NFSv4 server %s"
+	pr_warn_ratelimited("NFS: state manager failed on NFSv4 server %s"
 			" with error %d\n", clp->cl_hostname, -status);
 	nfs4_end_drain_session(clp);
 	nfs4_clear_state_manager_bit(clp);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 110/149] PM / Hibernate: Enable usermodehelpers in hibernate() error path
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (108 preceding siblings ...)
  2012-03-30 19:50 ` [ 109/149] NFSv4: Rate limit the state manager warning messages Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 111/149] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer Greg KH
                   ` (38 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Srivatsa S. Bhat, Rafael J. Wysocki

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>

commit 05b4877f6a4f1ba4952d1222213d262bf8c132b7 upstream.

If create_basic_memory_bitmaps() fails, usermodehelpers are not re-enabled
before returning. Fix this. And while at it, reword the goto labels so that
they look more meaningful.

Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/power/hibernate.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -648,7 +648,7 @@ int hibernate(void)
 	/* Allocate memory management structures */
 	error = create_basic_memory_bitmaps();
 	if (error)
-		goto Exit;
+		goto Enable_umh;
 
 	printk(KERN_INFO "PM: Syncing filesystems ... ");
 	sys_sync();
@@ -656,7 +656,7 @@ int hibernate(void)
 
 	error = prepare_processes();
 	if (error)
-		goto Finish;
+		goto Free_bitmaps;
 
 	error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
 	if (error)
@@ -689,8 +689,9 @@ int hibernate(void)
 
  Thaw:
 	thaw_processes();
- Finish:
+ Free_bitmaps:
 	free_basic_memory_bitmaps();
+ Enable_umh:
 	usermodehelper_enable();
  Exit:
 	pm_notifier_call_chain(PM_POST_HIBERNATION);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 111/149] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (109 preceding siblings ...)
  2012-03-30 19:50 ` [ 110/149] PM / Hibernate: Enable usermodehelpers in hibernate() error path Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 112/149] ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc Greg KH
                   ` (37 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Eric Sandeen, Theodore Tso

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Eric Sandeen <sandeen@redhat.com>

commit 15291164b22a357cb211b618adfef4fa82fc0de3 upstream.

journal_unmap_buffer()'s zap_buffer: code clears a lot of buffer head
state ala discard_buffer(), but does not touch _Delay or _Unwritten as
discard_buffer() does.

This can be problematic in some areas of the ext4 code which assume
that if they have found a buffer marked unwritten or delay, then it's
a live one.  Perhaps those spots should check whether it is mapped
as well, but if jbd2 is going to tear down a buffer, let's really
tear it down completely.

Without this I get some fsx failures on sub-page-block filesystems
up until v3.2, at which point 4e96b2dbbf1d7e81f22047a50f862555a6cb87cb
and 189e868fa8fdca702eb9db9d8afc46b5cb9144c9 make the failures go
away, because buried within that large change is some more flag
clearing.  I still think it's worth doing in jbd2, since
->invalidatepage leads here directly, and it's the right place
to clear away these flags.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/jbd2/transaction.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -1948,6 +1948,8 @@ zap_buffer_unlocked:
 	clear_buffer_mapped(bh);
 	clear_buffer_req(bh);
 	clear_buffer_new(bh);
+	clear_buffer_delay(bh);
+	clear_buffer_unwritten(bh);
 	bh->b_bdev = NULL;
 	return may_free;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 112/149] ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (110 preceding siblings ...)
  2012-03-30 19:50 ` [ 111/149] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 113/149] ext4: fix race between unwritten extent conversion and truncate Greg KH
                   ` (36 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Lukas Czerner, Theodore Tso

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Lukas Czerner <lczerner@redhat.com>

commit 3d2b158262826e8b75bbbfb7b97010838dd92ac7 upstream.

Ext4 does not support data journalling with delayed allocation enabled.
We even do not allow to mount the file system with delayed allocation
and data journalling enabled, however it can be set via FS_IOC_SETFLAGS
so we can hit the inode with EXT4_INODE_JOURNAL_DATA set even on file
system mounted with delayed allocation (default) and that's where
problem arises. The easies way to reproduce this problem is with the
following set of commands:

 mkfs.ext4 /dev/sdd
 mount /dev/sdd /mnt/test1
 dd if=/dev/zero of=/mnt/test1/file bs=1M count=4
 chattr +j /mnt/test1/file
 dd if=/dev/zero of=/mnt/test1/file bs=1M count=4 conv=notrunc
 chattr -j /mnt/test1/file

Additionally it can be reproduced quite reliably with xfstests 272 and
269. In fact the above reproducer is a part of test 272.

To fix this we should ignore the EXT4_INODE_JOURNAL_DATA inode flag if
the file system is mounted with delayed allocation. This can be easily
done by fixing ext4_should_*_data() functions do ignore data journal
flag when delalloc is set (suggested by Ted). We also have to set the
appropriate address space operations for the inode (again, ignoring data
journal flag if delalloc enabled).

Additionally this commit introduces ext4_inode_journal_mode() function
because ext4_should_*_data() has already had a lot of common code and
this change is putting it all into one function so it is easier to
read.

Successfully tested with xfstests in following configurations:

delalloc + data=ordered
delalloc + data=writeback
data=journal
nodelalloc + data=ordered
nodelalloc + data=writeback
nodelalloc + data=journal

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/ext4_jbd2.h |   56 ++++++++++++++++++++++++++--------------------------
 fs/ext4/inode.c     |   36 ++++++++++++++++++++-------------
 2 files changed, 51 insertions(+), 41 deletions(-)

--- a/fs/ext4/ext4_jbd2.h
+++ b/fs/ext4/ext4_jbd2.h
@@ -261,43 +261,45 @@ static inline void ext4_update_inode_fsy
 /* super.c */
 int ext4_force_commit(struct super_block *sb);
 
-static inline int ext4_should_journal_data(struct inode *inode)
+/*
+ * Ext4 inode journal modes
+ */
+#define EXT4_INODE_JOURNAL_DATA_MODE	0x01 /* journal data mode */
+#define EXT4_INODE_ORDERED_DATA_MODE	0x02 /* ordered data mode */
+#define EXT4_INODE_WRITEBACK_DATA_MODE	0x04 /* writeback data mode */
+
+static inline int ext4_inode_journal_mode(struct inode *inode)
 {
 	if (EXT4_JOURNAL(inode) == NULL)
-		return 0;
-	if (!S_ISREG(inode->i_mode))
-		return 1;
-	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
-		return 1;
-	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
-		return 1;
-	return 0;
+		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
+	/* We do not support data journalling with delayed allocation */
+	if (!S_ISREG(inode->i_mode) ||
+	    test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
+		return EXT4_INODE_JOURNAL_DATA_MODE;	/* journal data */
+	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA) &&
+	    !test_opt(inode->i_sb, DELALLOC))
+		return EXT4_INODE_JOURNAL_DATA_MODE;	/* journal data */
+	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
+		return EXT4_INODE_ORDERED_DATA_MODE;	/* ordered */
+	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
+		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
+	else
+		BUG();
+}
+
+static inline int ext4_should_journal_data(struct inode *inode)
+{
+	return ext4_inode_journal_mode(inode) & EXT4_INODE_JOURNAL_DATA_MODE;
 }
 
 static inline int ext4_should_order_data(struct inode *inode)
 {
-	if (EXT4_JOURNAL(inode) == NULL)
-		return 0;
-	if (!S_ISREG(inode->i_mode))
-		return 0;
-	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
-		return 0;
-	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
-		return 1;
-	return 0;
+	return ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE;
 }
 
 static inline int ext4_should_writeback_data(struct inode *inode)
 {
-	if (EXT4_JOURNAL(inode) == NULL)
-		return 1;
-	if (!S_ISREG(inode->i_mode))
-		return 0;
-	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
-		return 0;
-	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
-		return 1;
-	return 0;
+	return ext4_inode_journal_mode(inode) & EXT4_INODE_WRITEBACK_DATA_MODE;
 }
 
 /*
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -2480,13 +2480,14 @@ static int ext4_da_write_end(struct file
 	int write_mode = (int)(unsigned long)fsdata;
 
 	if (write_mode == FALL_BACK_TO_NONDELALLOC) {
-		if (ext4_should_order_data(inode)) {
+		switch (ext4_inode_journal_mode(inode)) {
+		case EXT4_INODE_ORDERED_DATA_MODE:
 			return ext4_ordered_write_end(file, mapping, pos,
 					len, copied, page, fsdata);
-		} else if (ext4_should_writeback_data(inode)) {
+		case EXT4_INODE_WRITEBACK_DATA_MODE:
 			return ext4_writeback_write_end(file, mapping, pos,
 					len, copied, page, fsdata);
-		} else {
+		default:
 			BUG();
 		}
 	}
@@ -3084,18 +3085,25 @@ static const struct address_space_operat
 
 void ext4_set_aops(struct inode *inode)
 {
-	if (ext4_should_order_data(inode) &&
-		test_opt(inode->i_sb, DELALLOC))
-		inode->i_mapping->a_ops = &ext4_da_aops;
-	else if (ext4_should_order_data(inode))
-		inode->i_mapping->a_ops = &ext4_ordered_aops;
-	else if (ext4_should_writeback_data(inode) &&
-		 test_opt(inode->i_sb, DELALLOC))
-		inode->i_mapping->a_ops = &ext4_da_aops;
-	else if (ext4_should_writeback_data(inode))
-		inode->i_mapping->a_ops = &ext4_writeback_aops;
-	else
+	switch (ext4_inode_journal_mode(inode)) {
+	case EXT4_INODE_ORDERED_DATA_MODE:
+		if (test_opt(inode->i_sb, DELALLOC))
+			inode->i_mapping->a_ops = &ext4_da_aops;
+		else
+			inode->i_mapping->a_ops = &ext4_ordered_aops;
+		break;
+	case EXT4_INODE_WRITEBACK_DATA_MODE:
+		if (test_opt(inode->i_sb, DELALLOC))
+			inode->i_mapping->a_ops = &ext4_da_aops;
+		else
+			inode->i_mapping->a_ops = &ext4_writeback_aops;
+		break;
+	case EXT4_INODE_JOURNAL_DATA_MODE:
 		inode->i_mapping->a_ops = &ext4_journalled_aops;
+		break;
+	default:
+		BUG();
+	}
 }
 
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 113/149] ext4: fix race between unwritten extent conversion and truncate
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (111 preceding siblings ...)
  2012-03-30 19:50 ` [ 112/149] ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 114/149] ext4: fix race between sync and completed io work Greg KH
                   ` (35 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jan Kara, Jeff Moyer, Theodore Tso

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jeff Moyer <jmoyer@redhat.com>

commit 266991b13890049ee1a6bb95b9817f06339ee3d7 upstream.

The following comment in ext4_end_io_dio caught my attention:

	/* XXX: probably should move into the real I/O completion handler */
        inode_dio_done(inode);

The truncate code takes i_mutex, then calls inode_dio_wait.  Because the
ext4 code path above will end up dropping the mutex before it is
reacquired by the worker thread that does the extent conversion, it
seems to me that the truncate can happen out of order.  Jan Kara
mentioned that this might result in error messages in the system logs,
but that should be the extent of the "damage."

The fix is pretty straight-forward: don't call inode_dio_done until the
extent conversion is complete.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/ext4.h    |    1 +
 fs/ext4/inode.c   |   10 +++++-----
 fs/ext4/page-io.c |    2 ++
 3 files changed, 8 insertions(+), 5 deletions(-)

--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -184,6 +184,7 @@ struct mpage_da_data {
 #define	EXT4_IO_END_UNWRITTEN	0x0001
 #define EXT4_IO_END_ERROR	0x0002
 #define EXT4_IO_END_QUEUED	0x0004
+#define EXT4_IO_END_DIRECT	0x0008
 
 struct ext4_io_page {
 	struct page	*p_page;
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -2794,9 +2794,6 @@ out:
 
 	/* queue the work to convert unwritten extents to written */
 	queue_work(wq, &io_end->work);
-
-	/* XXX: probably should move into the real I/O completion handler */
-	inode_dio_done(inode);
 }
 
 static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate)
@@ -2920,9 +2917,12 @@ static ssize_t ext4_ext_direct_IO(int rw
 		iocb->private = NULL;
 		EXT4_I(inode)->cur_aio_dio = NULL;
 		if (!is_sync_kiocb(iocb)) {
-			iocb->private = ext4_init_io_end(inode, GFP_NOFS);
-			if (!iocb->private)
+			ext4_io_end_t *io_end =
+				ext4_init_io_end(inode, GFP_NOFS);
+			if (!io_end)
 				return -ENOMEM;
+			io_end->flag |= EXT4_IO_END_DIRECT;
+			iocb->private = io_end;
 			/*
 			 * we save the io structure for current async
 			 * direct IO, so that later ext4_map_blocks()
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -111,6 +111,8 @@ int ext4_end_io_nolock(ext4_io_end_t *io
 	if (io->iocb)
 		aio_complete(io->iocb, io->result, 0);
 
+	if (io->flag & EXT4_IO_END_DIRECT)
+		inode_dio_done(inode);
 	/* Wake up anyone waiting on unwritten extent conversion */
 	if (atomic_dec_and_test(&EXT4_I(inode)->i_aiodio_unwritten))
 		wake_up_all(ext4_ioend_wq(io->inode));



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 114/149] ext4: fix race between sync and completed io work
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (112 preceding siblings ...)
  2012-03-30 19:50 ` [ 113/149] ext4: fix race between unwritten extent conversion and truncate Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 115/149] ext4: check for zero length extent Greg KH
                   ` (34 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Jeff Moyer, Theodore Tso

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jeff Moyer <jmoyer@redhat.com>

commit 491caa43639abcffaa645fbab372a7ef4ce2975c upstream.

The following command line will leave the aio-stress process unkillable
on an ext4 file system (in my case, mounted on /mnt/test):

aio-stress -t 20 -s 10 -O -S -o 2 -I 1000 /mnt/test/aiostress.3561.4 /mnt/test/aiostress.3561.4.20 /mnt/test/aiostress.3561.4.19 /mnt/test/aiostress.3561.4.18 /mnt/test/aiostress.3561.4.17 /mnt/test/aiostress.3561.4.16 /mnt/test/aiostress.3561.4.15 /mnt/test/aiostress.3561.4.14 /mnt/test/aiostress.3561.4.13 /mnt/test/aiostress.3561.4.12 /mnt/test/aiostress.3561.4.11 /mnt/test/aiostress.3561.4.10 /mnt/test/aiostress.3561.4.9 /mnt/test/aiostress.3561.4.8 /mnt/test/aiostress.3561.4.7 /mnt/test/aiostress.3561.4.6 /mnt/test/aiostress.3561.4.5 /mnt/test/aiostress.3561.4.4 /mnt/test/aiostress.3561.4.3 /mnt/test/aiostress.3561.4.2

This is using the aio-stress program from the xfstests test suite.
That particular command line tells aio-stress to do random writes to
20 files from 20 threads (one thread per file).  The files are NOT
preallocated, so you will get writes to random offsets within the
file, thus creating holes and extending i_size.  It also opens the
file with O_DIRECT and O_SYNC.

On to the problem.  When an I/O requires unwritten extent conversion,
it is queued onto the completed_io_list for the ext4 inode.  Two code
paths will pull work items from this list.  The first is the
ext4_end_io_work routine, and the second is ext4_flush_completed_IO,
which is called via the fsync path (and O_SYNC handling, as well).
There are two issues I've found in these code paths.  First, if the
fsync path beats the work routine to a particular I/O, the work
routine will free the io_end structure!  It does not take into account
the fact that the io_end may still be in use by the fsync path.  I've
fixed this issue by adding yet another IO_END flag, indicating that
the io_end is being processed by the fsync path.

The second problem is that the work routine will make an assignment to
io->flag outside of the lock.  I have witnessed this result in a hang
at umount.  Moving the flag setting inside the lock resolved that
problem.

The problem was introduced by commit b82e384c7b ("ext4: optimize
locking for end_io extent conversion"), which first appeared in 3.2.
As such, the fix should be backported to that release (probably along
with the unwritten extent conversion race fix).

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/ext4.h    |    1 +
 fs/ext4/fsync.c   |    2 ++
 fs/ext4/page-io.c |    9 +++++++--
 3 files changed, 10 insertions(+), 2 deletions(-)

--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -185,6 +185,7 @@ struct mpage_da_data {
 #define EXT4_IO_END_ERROR	0x0002
 #define EXT4_IO_END_QUEUED	0x0004
 #define EXT4_IO_END_DIRECT	0x0008
+#define EXT4_IO_END_IN_FSYNC	0x0010
 
 struct ext4_io_page {
 	struct page	*p_page;
--- a/fs/ext4/fsync.c
+++ b/fs/ext4/fsync.c
@@ -89,6 +89,7 @@ int ext4_flush_completed_IO(struct inode
 		io = list_entry(ei->i_completed_io_list.next,
 				ext4_io_end_t, list);
 		list_del_init(&io->list);
+		io->flag |= EXT4_IO_END_IN_FSYNC;
 		/*
 		 * Calling ext4_end_io_nolock() to convert completed
 		 * IO to written.
@@ -108,6 +109,7 @@ int ext4_flush_completed_IO(struct inode
 		if (ret < 0)
 			ret2 = ret;
 		spin_lock_irqsave(&ei->i_completed_io_lock, flags);
+		io->flag &= ~EXT4_IO_END_IN_FSYNC;
 	}
 	spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
 	return (ret2 < 0) ? ret2 : 0;
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -130,12 +130,18 @@ static void ext4_end_io_work(struct work
 	unsigned long		flags;
 
 	spin_lock_irqsave(&ei->i_completed_io_lock, flags);
+	if (io->flag & EXT4_IO_END_IN_FSYNC)
+		goto requeue;
 	if (list_empty(&io->list)) {
 		spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
 		goto free;
 	}
 
 	if (!mutex_trylock(&inode->i_mutex)) {
+		bool was_queued;
+requeue:
+		was_queued = !!(io->flag & EXT4_IO_END_QUEUED);
+		io->flag |= EXT4_IO_END_QUEUED;
 		spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
 		/*
 		 * Requeue the work instead of waiting so that the work
@@ -148,9 +154,8 @@ static void ext4_end_io_work(struct work
 		 * yield the cpu if it sees an end_io request that has already
 		 * been requeued.
 		 */
-		if (io->flag & EXT4_IO_END_QUEUED)
+		if (was_queued)
 			yield();
-		io->flag |= EXT4_IO_END_QUEUED;
 		return;
 	}
 	list_del_init(&io->list);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 115/149] ext4: check for zero length extent
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (113 preceding siblings ...)
  2012-03-30 19:50 ` [ 114/149] ext4: fix race between sync and completed io work Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 116/149] vfs: fix d_ancestor() case in d_materialize_unique Greg KH
                   ` (33 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Theodore Tso

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Theodore Ts'o <tytso@mit.edu>

commit 31d4f3a2f3c73f279ff96a7135d7202ef6833f12 upstream.

Explicitly test for an extent whose length is zero, and flag that as a
corrupted extent.

This avoids a kernel BUG_ON assertion failure.

Tested: Without this patch, the file system image found in
tests/f_ext_zero_len/image.gz in the latest e2fsprogs sources causes a
kernel panic.  With this patch, an ext4 file system error is noted
instead, and the file system is marked as being corrupted.

https://bugzilla.kernel.org/show_bug.cgi?id=42859

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/extents.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -301,6 +301,8 @@ static int ext4_valid_extent(struct inod
 	ext4_fsblk_t block = ext4_ext_pblock(ext);
 	int len = ext4_ext_get_actual_len(ext);
 
+	if (len == 0)
+		return 0;
 	return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, len);
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 116/149] vfs: fix d_ancestor() case in d_materialize_unique
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (114 preceding siblings ...)
  2012-03-30 19:50 ` [ 115/149] ext4: check for zero length extent Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 117/149] ARM: tegra: select required CPU and L2 errata options Greg KH
                   ` (32 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Michel Lespinasse

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michel Lespinasse <walken@google.com>

commit b18dafc86bb879d2f38a1743985d7ceb283c2f4d upstream.

In d_materialise_unique() there are 3 subcases to the 'aliased dentry'
case; in two subcases the inode i_lock is properly released but this
does not occur in the -ELOOP subcase.

This seems to have been introduced by commit 1836750115f2 ("fix loop
checks in d_materialise_unique()").

Signed-off-by: Michel Lespinasse <walken@google.com>
[ Added a comment, and moved the unlock to where we generate the -ELOOP,
  which seems to be more natural.

  You probably can't actually trigger this without a buggy network file
  server - d_materialize_unique() is for finding aliases on non-local
  filesystems, and the d_ancestor() case is for a hardlinked directory
  loop.

  But we should be robust in the case of such buggy servers anyway. ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/dcache.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -2357,6 +2357,7 @@ struct dentry *d_materialise_unique(stru
 			if (d_ancestor(alias, dentry)) {
 				/* Check for loops */
 				actual = ERR_PTR(-ELOOP);
+				spin_unlock(&inode->i_lock);
 			} else if (IS_ROOT(alias)) {
 				/* Is this an anonymous mountpoint that we
 				 * could splice into our tree? */
@@ -2366,7 +2367,7 @@ struct dentry *d_materialise_unique(stru
 				goto found;
 			} else {
 				/* Nope, but we must(!) avoid directory
-				 * aliasing */
+				 * aliasing. This drops inode->i_lock */
 				actual = __d_unalias(inode, dentry, alias);
 			}
 			write_sequnlock(&rename_lock);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 117/149] ARM: tegra: select required CPU and L2 errata options
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (115 preceding siblings ...)
  2012-03-30 19:50 ` [ 116/149] vfs: fix d_ancestor() case in d_materialize_unique Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 118/149] udf: Fix deadlock in udf_release_file() Greg KH
                   ` (31 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Stephen Warren, Olof Johansson

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Stephen Warren <swarren@nvidia.com>

commit f35b431dde39fb40944d1024f08d88fbf04a3193 upstream.

The ARM IP revisions in Tegra are:
Tegra20: CPU r1p1, PL310 r2p0
Tegra30: CPU A01=r2p7/>=A02=r2p9, NEON r2p3-50, PL310 r3p1-50

Based on work by Olof Johansson, although the actual list of errata is
somewhat different here, since I added a bunch more and removed one PL310
erratum that doesn't seem applicable.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/mach-tegra/Kconfig |   12 ++++++++++++
 1 file changed, 12 insertions(+)

--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -13,6 +13,13 @@ config ARCH_TEGRA_2x_SOC
 	select USB_ARCH_HAS_EHCI if USB_SUPPORT
 	select USB_ULPI if USB_SUPPORT
 	select USB_ULPI_VIEWPORT if USB_SUPPORT
+	select ARM_ERRATA_720789
+	select ARM_ERRATA_742230
+	select ARM_ERRATA_751472
+	select ARM_ERRATA_754327
+	select ARM_ERRATA_764369
+	select PL310_ERRATA_727915 if CACHE_L2X0
+	select PL310_ERRATA_769419 if CACHE_L2X0
 	help
 	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
 	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
@@ -54,6 +61,11 @@ config MACH_SEABOARD
 config MACH_TEGRA_DT
 	bool "Generic Tegra board (FDT support)"
 	select USE_OF
+	select ARM_ERRATA_743622
+	select ARM_ERRATA_751472
+	select ARM_ERRATA_754322
+	select ARM_ERRATA_764369
+	select PL310_ERRATA_769419 if CACHE_L2X0
 	help
 	  Support for generic nVidia Tegra boards using Flattened Device Tree
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 118/149] udf: Fix deadlock in udf_release_file()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (116 preceding siblings ...)
  2012-03-30 19:50 ` [ 117/149] ARM: tegra: select required CPU and L2 errata options Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 119/149] gpio/omap: fix _set_gpio_irqenable implementation Greg KH
                   ` (30 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Al Viro, Namjae Jeon, Jan Kara

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jan Kara <jack@suse.cz>

commit a0391a3ae91d301c0e59368531a4de5f0b122bcf upstream.

udf_release_file() can be called from munmap() path with mmap_sem held.  Thus
we cannot take i_mutex there because that ranks above mmap_sem. Luckily,
i_mutex is not needed in udf_release_file() anymore since protection by
i_data_sem is enough to protect from races with write and truncate.

Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Reviewed-by: Namjae Jeon <linkinjeon@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/udf/file.c |    2 --
 1 file changed, 2 deletions(-)

--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -201,12 +201,10 @@ out:
 static int udf_release_file(struct inode *inode, struct file *filp)
 {
 	if (filp->f_mode & FMODE_WRITE) {
-		mutex_lock(&inode->i_mutex);
 		down_write(&UDF_I(inode)->i_data_sem);
 		udf_discard_prealloc(inode);
 		udf_truncate_tail_extent(inode);
 		up_write(&UDF_I(inode)->i_data_sem);
-		mutex_unlock(&inode->i_mutex);
 	}
 	return 0;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 119/149] gpio/omap: fix _set_gpio_irqenable implementation
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (117 preceding siblings ...)
  2012-03-30 19:50 ` [ 118/149] udf: Fix deadlock in udf_release_file() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 120/149] gpio/davinci: fix oops on unbanked gpio irq request Greg KH
                   ` (29 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Tarun Kanti DebBarma, Santosh Shilimkar,
	Felipe Balbi, Kevin Hilman

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tarun Kanti DebBarma <tarun.kanti@ti.com>

commit 8276536cec38bc6bde30d0aa67716f22b9b9705a upstream.

This function should be capable of both enabling and disabling interrupts
based upon the *enable* parameter. Right now the function only enables
the interrupt and *enable* is not used at all. So add the interrupt
disable capability also using the parameter.

Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@ti.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Felipe Balbi <balbi@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpio/gpio-omap.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -508,7 +508,10 @@ static void _disable_gpio_irqbank(struct
 
 static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable)
 {
-	_enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
+	if (enable)
+		_enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
+	else
+		_disable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
 }
 
 /*



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 120/149] gpio/davinci: fix oops on unbanked gpio irq request
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (118 preceding siblings ...)
  2012-03-30 19:50 ` [ 119/149] gpio/omap: fix _set_gpio_irqenable implementation Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 121/149] gpio/davinci: fix enabling unbanked GPIO IRQs Greg KH
                   ` (28 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jon Povey, Sekhar Nori, Grant Likely

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sekhar Nori <nsekhar@ti.com>

commit ab2dde9924dd1ddb791fa8b14aa52e1df681e20c upstream.

Unbanked GPIO irq setup code was overwriting chip_data leading
to the following oops on request_irq()

Unable to handle kernel paging request at virtual address febfffff
pgd = c22dc000
[febfffff] *pgd=00000000
Internal error: Oops: 801 [#1] PREEMPT
Modules linked in: mcu(+) edmak irqk cmemk
CPU: 0    Not tainted  (3.0.0-rc7+ #93)
PC is at irq_gc_mask_set_bit+0x68/0x7c
LR is at vprintk+0x22c/0x484
pc : [<c0080c0c>]    lr : [<c00457e0>]    psr: 60000093
sp : c33e3ba0  ip : c33e3af0  fp : c33e3bc4
r10: c04555bc  r9 : c33d4340  r8 : 60000013
r7 : 0000002d  r6 : c04555bc  r5 : fec67010  r4 : 00000000
r3 : c04734c8  r2 : fec00000  r1 : ffffffff  r0 : 00000026
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 0005317f  Table: 822dc000  DAC: 00000015
Process modprobe (pid: 526, stack limit = 0xc33e2270)
Stack: (0xc33e3ba0 to 0xc33e4000)
3ba0: 00000000 c007d3d4 c33e3bcc c04555bc c04555bc c33d4340 c33e3bdc c33e3bc8
3bc0: c007f5f8 c0080bb4 00000000 c04555bc c33e3bf4 c33e3be0 c007f654 c007f5c0
3be0: 00000000 c04555bc c33e3c24 c33e3bf8 c007e6e8 c007f618 c01f2284 c0350af8
3c00: c0405214 bf016c98 00000001 00000000 c33dc008 0000002d c33e3c54 c33e3c28
3c20: c007e888 c007e408 00000001 c23ef880 c33dc000 00000000 c33dc080 c25caa00
3c40: c0487498 bf017078 c33e3c94 c33e3c58 bf016b44 c007e7d4 bf017078 c33dc008
3c60: c25caa08 c33dc008 c33e3c84 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3c80: c0496d60 bf017484 c33e3ca4 c33e3c98 c022a698 bf01692c c33e3cd4 c33e3ca8
3ca0: c01f5d88 c022a688 00000000 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
3cc0: c0496d60 00000000 c33e3cec c33e3cd8 c01f5f8c c01f5d10 00000000 c33e3cf0
3ce0: c33e3d14 c33e3cf0 c01f5210 c01f5f58 c303cb48 c25ecf94 c25caa00 c25caa00
3d00: c25caa34 c33e3dd8 c33e3d34 c33e3d18 c01f6044 c01f51b8 c0496d3c c25caa00
3d20: c044e918 c33e3dd8 c33e3d44 c33e3d38 c01f4ff4 c01f5fcc c33e3d94 c33e3d48
3d40: c01f3d10 c01f4fd8 00000000 c044e918 00000000 00000000 c01f52c0 c034d570
3d60: c33e3d84 c33e3d70 c022bf84 c25caa00 00000000 c044e918 c33e3dd8 c25c2e00
3d80: c0496d60 bf01763c c33e3db4 c33e3d98 c022b1a0 c01f384c c25caa00 c33e3dd8
3da0: 00000000 c33e3dd8 c33e3dd4 c33e3db8 c022b27c c022b0e8 00000000 bf01763c
3dc0: c0451c80 c33e3dd8 c33e3e34 c33e3dd8 bf016f60 c022b210 5f75636d 746e6f63
3de0: 006c6f72 00000000 00000000 00000000 00000000 00000000 00000000 bf0174bc
3e00: 00000000 00989680 00000000 00000020 c0451c80 c0451c80 bf0174dc c01f5eb0
3e20: c33f0f00 bf0174dc c33e3e44 c33e3e38 c01f72f4 bf016e2c c33e3e74 c33e3e48
3e40: c01f5d88 c01f72e4 00000000 c0451c80 c0451cb4 bf0174dc c01f5eb0 c33f0f00
3e60: c0473100 00000000 c33e3e94 c33e3e78 c01f5f44 c01f5d10 00000000 c33e3e98
3e80: bf0174dc c01f5eb0 c33e3ebc c33e3e98 c01f5534 c01f5ec0 c303c038 c3061c30
3ea0: 00003cd8 00098258 bf0174dc c0462ac8 c33e3ecc c33e3ec0 c01f5bec c01f54dc
3ec0: c33e3efc c33e3ed0 c01f4d30 c01f5bdc bf0173a0 c33e2000 00003cd8 00098258
3ee0: bf0174dc c33e2000 c00301a4 bf019000 c33e3f1c c33e3f00 c01f6588 c01f4c8c
3f00: 00003cd8 00098258 00000000 c33e2000 c33e3f2c c33e3f20 c01f777c c01f6524
3f20: c33e3f3c c33e3f30 bf019014 c01f7740 c33e3f7c c33e3f40 c002f3ec bf019010
3f40: 00000000 00003cd8 00098258 bf017518 00000000 00003cd8 00098258 bf017518
3f60: 00000000 c00301a4 c33e2000 00000000 c33e3fa4 c33e3f80 c007b934 c002f3c4
3f80: c00b307c c00b2f48 00003cd8 00000000 00000003 00000080 00000000 c33e3fa8
3fa0: c0030020 c007b8b8 00003cd8 00000000 00098288 00003cd8 00098258 00098240
3fc0: 00003cd8 00000000 00000003 00000080 00098008 00098028 00098288 00000001
3fe0: be892998 be892988 00013d7c 40178740 60000010 00098288 09089041 00200845
Backtrace:
[<c0080ba4>] (irq_gc_mask_set_bit+0x0/0x7c) from [<c007f5f8>] (irq_enable+0x48/0x58)
 r6:c33d4340 r5:c04555bc r4:c04555bc
[<c007f5b0>] (irq_enable+0x0/0x58) from [<c007f654>] (irq_startup+0x4c/0x54)
 r5:c04555bc r4:00000000
[<c007f608>] (irq_startup+0x0/0x54) from [<c007e6e8>] (__setup_irq+0x2f0/0x3cc)
 r5:c04555bc r4:00000000
[<c007e3f8>] (__setup_irq+0x0/0x3cc) from [<c007e888>] (request_threaded_irq+0xc4/0x110)
 r8:0000002d r7:c33dc008 r6:00000000 r5:00000001 r4:bf016c98
[<c007e7c4>] (request_threaded_irq+0x0/0x110) from [<bf016b44>] (mcu_spi_probe+0x228/0x37c [mcu])
[<bf01691c>] (mcu_spi_probe+0x0/0x37c [mcu]) from [<c022a698>] (spi_drv_probe+0x20/0x24)
[<c022a678>] (spi_drv_probe+0x0/0x24) from [<c01f5d88>] (driver_probe_device+0x88/0x1b0)
[<c01f5d00>] (driver_probe_device+0x0/0x1b0) from [<c01f5f8c>] (__device_attach+0x44/0x48)
[<c01f5f48>] (__device_attach+0x0/0x48) from [<c01f5210>] (bus_for_each_drv+0x68/0x94)
 r5:c33e3cf0 r4:00000000
[<c01f51a8>] (bus_for_each_drv+0x0/0x94) from [<c01f6044>] (device_attach+0x88/0xa0)
 r7:c33e3dd8 r6:c25caa34 r5:c25caa00 r4:c25caa00
[<c01f5fbc>] (device_attach+0x0/0xa0) from [<c01f4ff4>] (bus_probe_device+0x2c/0x4c)
 r7:c33e3dd8 r6:c044e918 r5:c25caa00 r4:c0496d3c
[<c01f4fc8>] (bus_probe_device+0x0/0x4c) from [<c01f3d10>] (device_add+0x4d4/0x648)
[<c01f383c>] (device_add+0x0/0x648) from [<c022b1a0>] (spi_add_device+0xc8/0x128)
[<c022b0d8>] (spi_add_device+0x0/0x128) from [<c022b27c>] (spi_new_device+0x7c/0xb4)
 r7:c33e3dd8 r6:00000000 r5:c33e3dd8 r4:c25caa00
[<c022b200>] (spi_new_device+0x0/0xb4) from [<bf016f60>] (mcu_probe+0x144/0x224 [mcu])
 r7:c33e3dd8 r6:c0451c80 r5:bf01763c r4:00000000
[<bf016e1c>] (mcu_probe+0x0/0x224 [mcu]) from [<c01f72f4>] (platform_drv_probe+0x20/0x24)
[<c01f72d4>] (platform_drv_probe+0x0/0x24) from [<c01f5d88>] (driver_probe_device+0x88/0x1b0)
[<c01f5d00>] (driver_probe_device+0x0/0x1b0) from [<c01f5f44>] (__driver_attach+0x94/0x98)
[<c01f5eb0>] (__driver_attach+0x0/0x98) from [<c01f5534>] (bus_for_each_dev+0x68/0x94)
 r7:c01f5eb0 r6:bf0174dc r5:c33e3e98 r4:00000000
[<c01f54cc>] (bus_for_each_dev+0x0/0x94) from [<c01f5bec>] (driver_attach+0x20/0x28)
 r7:c0462ac8 r6:bf0174dc r5:00098258 r4:00003cd8
[<c01f5bcc>] (driver_attach+0x0/0x28) from [<c01f4d30>] (bus_add_driver+0xb4/0x258)
[<c01f4c7c>] (bus_add_driver+0x0/0x258) from [<c01f6588>] (driver_register+0x74/0x158)
[<c01f6514>] (driver_register+0x0/0x158) from [<c01f777c>] (platform_driver_register+0x4c/0x60)
 r7:c33e2000 r6:00000000 r5:00098258 r4:00003cd8
[<c01f7730>] (platform_driver_register+0x0/0x60) from [<bf019014>] (mcu_init+0x14/0x20 [mcu])
[<bf019000>] (mcu_init+0x0/0x20 [mcu]) from [<c002f3ec>] (do_one_initcall+0x38/0x170)
[<c002f3b4>] (do_one_initcall+0x0/0x170) from [<c007b934>] (sys_init_module+0x8c/0x1a4)
[<c007b8a8>] (sys_init_module+0x0/0x1a4) from [<c0030020>] (ret_fast_syscall+0x0/0x2c)
 r7:00000080 r6:00000003 r5:00000000 r4:00003cd8
Code: e1844003 e585400c e596300c e5932064 (e7814002)

Fix the issue.

Reported-by: Jon Povey <Jon.Povey@racelogic.co.uk>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpio/gpio-davinci.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

--- a/drivers/gpio/gpio-davinci.c
+++ b/drivers/gpio/gpio-davinci.c
@@ -313,10 +313,16 @@ static int gpio_to_irq_unbanked(struct g
 		return -ENODEV;
 }
 
-static int gpio_irq_type_unbanked(struct irq_data *d, unsigned trigger)
+static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger)
 {
-	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
-	u32 mask = (u32) irq_data_get_irq_handler_data(d);
+	struct davinci_gpio_controller *d;
+	struct davinci_gpio_regs __iomem *g;
+	struct davinci_soc_info *soc_info = &davinci_soc_info;
+	u32 mask;
+
+	d = (struct davinci_gpio_controller *)data->handler_data;
+	g = (struct davinci_gpio_regs __iomem *)d->regs;
+	mask = __gpio_mask(data->irq - soc_info->gpio_irq);
 
 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
 		return -EINVAL;
@@ -400,8 +406,7 @@ static int __init davinci_gpio_irq_setup
 		/* set the direct IRQs up to use that irqchip */
 		for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) {
 			irq_set_chip(irq, &gpio_irqchip_unbanked);
-			irq_set_handler_data(irq, (void *)__gpio_mask(gpio));
-			irq_set_chip_data(irq, (__force void *)g);
+			irq_set_handler_data(irq, &chips[gpio / 32]);
 			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
 		}
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 121/149] gpio/davinci: fix enabling unbanked GPIO IRQs
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (119 preceding siblings ...)
  2012-03-30 19:50 ` [ 120/149] gpio/davinci: fix oops on unbanked gpio irq request Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 122/149] dm crypt: fix mempool deadlock Greg KH
                   ` (27 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jon Povey, Sekhar Nori, Grant Likely

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sekhar Nori <nsekhar@ti.com>

commit 81b279d80a63628e580c71a31d30a8c3b3047ad4 upstream.

Unbanked GPIO IRQ handling code made a copy of just
the irq_chip structure for GPIO IRQ lines which caused
problems after the generic IRQ chip conversion because
there was no valid irq_chip_type structure with the
right "regs" populated. irq_gc_mask_set_bit() was
therefore accessing random addresses.

Fix it by making a copy of irq_chip_type structure
instead. This will ensure sane register offsets.

Reported-by: Jon Povey <Jon.Povey@racelogic.co.uk>
Tested-by: Jon Povey <Jon.Povey@racelogic.co.uk>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpio/gpio-davinci.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

--- a/drivers/gpio/gpio-davinci.c
+++ b/drivers/gpio/gpio-davinci.c
@@ -386,7 +386,7 @@ static int __init davinci_gpio_irq_setup
 	 * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs.
 	 */
 	if (soc_info->gpio_unbanked) {
-		static struct irq_chip gpio_irqchip_unbanked;
+		static struct irq_chip_type gpio_unbanked;
 
 		/* pass "bank 0" GPIO IRQs to AINTC */
 		chips[0].chip.to_irq = gpio_to_irq_unbanked;
@@ -394,9 +394,10 @@ static int __init davinci_gpio_irq_setup
 
 		/* AINTC handles mask/unmask; GPIO handles triggering */
 		irq = bank_irq;
-		gpio_irqchip_unbanked = *irq_get_chip(irq);
-		gpio_irqchip_unbanked.name = "GPIO-AINTC";
-		gpio_irqchip_unbanked.irq_set_type = gpio_irq_type_unbanked;
+		gpio_unbanked = *container_of(irq_get_chip(irq),
+					      struct irq_chip_type, chip);
+		gpio_unbanked.chip.name = "GPIO-AINTC";
+		gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked;
 
 		/* default trigger: both edges */
 		g = gpio2regs(0);
@@ -405,7 +406,7 @@ static int __init davinci_gpio_irq_setup
 
 		/* set the direct IRQs up to use that irqchip */
 		for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) {
-			irq_set_chip(irq, &gpio_irqchip_unbanked);
+			irq_set_chip(irq, &gpio_unbanked.chip);
 			irq_set_handler_data(irq, &chips[gpio / 32]);
 			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
 		}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 122/149] dm crypt: fix mempool deadlock
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (120 preceding siblings ...)
  2012-03-30 19:50 ` [ 121/149] gpio/davinci: fix enabling unbanked GPIO IRQs Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 123/149] dm crypt: add missing error handling Greg KH
                   ` (26 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Mikulas Patocka, Milan Broz, Alasdair G Kergon

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mikulas Patocka <mpatocka@redhat.com>

commit aeb2deae2660a1773c83d3c6e9e6575daa3855d6 upstream.

This patch fixes a possible deadlock in dm-crypt's mempool use.

Currently, dm-crypt reserves a mempool of MIN_BIO_PAGES reserved pages.
It allocates first MIN_BIO_PAGES with non-failing allocation (the allocation
cannot fail and waits until the mempool is refilled). Further pages are
allocated with different gfp flags that allow failing.

Because allocations may be done in parallel, this code can deadlock. Example:
There are two processes, each tries to allocate MIN_BIO_PAGES and the processes
run simultaneously.
It may end up in a situation where each process allocates (MIN_BIO_PAGES / 2)
pages. The mempool is exhausted. Each process waits for more pages to be freed
to the mempool, which never happens.

To avoid this deadlock scenario, this patch changes the code so that only
the first page is allocated with non-failing gfp mask. Allocation of further
pages may fail.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-crypt.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -176,7 +176,6 @@ struct crypt_config {
 
 #define MIN_IOS        16
 #define MIN_POOL_PAGES 32
-#define MIN_BIO_PAGES  8
 
 static struct kmem_cache *_crypt_io_pool;
 
@@ -848,12 +847,11 @@ static struct bio *crypt_alloc_buffer(st
 		}
 
 		/*
-		 * if additional pages cannot be allocated without waiting,
-		 * return a partially allocated bio, the caller will then try
-		 * to allocate additional bios while submitting this partial bio
+		 * If additional pages cannot be allocated without waiting,
+		 * return a partially-allocated bio.  The caller will then try
+		 * to allocate more bios while submitting this partial bio.
 		 */
-		if (i == (MIN_BIO_PAGES - 1))
-			gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT;
+		gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT;
 
 		len = (size > PAGE_SIZE) ? PAGE_SIZE : size;
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 123/149] dm crypt: add missing error handling
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (121 preceding siblings ...)
  2012-03-30 19:50 ` [ 122/149] dm crypt: fix mempool deadlock Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 124/149] dm exception store: fix init error path Greg KH
                   ` (25 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Mikulas Patocka, Milan Broz, Alasdair G Kergon

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mikulas Patocka <mpatocka@redhat.com>

commit 72c6e7afc43e19f68a31dea204fc366624d6eee9 upstream.

Always set io->error to -EIO when an error is detected in dm-crypt.

There were cases where an error code would be set only if we finish
processing the last sector. If there were other encryption operations in
flight, the error would be ignored and bio would be returned with
success as if no error happened.

This bug is present in kcryptd_crypt_write_convert, kcryptd_crypt_read_convert
and kcryptd_async_done.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-crypt.c |   28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -1044,16 +1044,14 @@ static void kcryptd_queue_io(struct dm_c
 	queue_work(cc->io_queue, &io->work);
 }
 
-static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io,
-					  int error, int async)
+static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io, int async)
 {
 	struct bio *clone = io->ctx.bio_out;
 	struct crypt_config *cc = io->target->private;
 
-	if (unlikely(error < 0)) {
+	if (unlikely(io->error < 0)) {
 		crypt_free_buffer_pages(cc, clone);
 		bio_put(clone);
-		io->error = -EIO;
 		crypt_dec_pending(io);
 		return;
 	}
@@ -1104,12 +1102,16 @@ static void kcryptd_crypt_write_convert(
 		sector += bio_sectors(clone);
 
 		crypt_inc_pending(io);
+
 		r = crypt_convert(cc, &io->ctx);
+		if (r < 0)
+			io->error = -EIO;
+
 		crypt_finished = atomic_dec_and_test(&io->ctx.pending);
 
 		/* Encryption was already finished, submit io now */
 		if (crypt_finished) {
-			kcryptd_crypt_write_io_submit(io, r, 0);
+			kcryptd_crypt_write_io_submit(io, 0);
 
 			/*
 			 * If there was an error, do not try next fragments.
@@ -1160,11 +1162,8 @@ static void kcryptd_crypt_write_convert(
 	crypt_dec_pending(io);
 }
 
-static void kcryptd_crypt_read_done(struct dm_crypt_io *io, int error)
+static void kcryptd_crypt_read_done(struct dm_crypt_io *io)
 {
-	if (unlikely(error < 0))
-		io->error = -EIO;
-
 	crypt_dec_pending(io);
 }
 
@@ -1179,9 +1178,11 @@ static void kcryptd_crypt_read_convert(s
 			   io->sector);
 
 	r = crypt_convert(cc, &io->ctx);
+	if (r < 0)
+		io->error = -EIO;
 
 	if (atomic_dec_and_test(&io->ctx.pending))
-		kcryptd_crypt_read_done(io, r);
+		kcryptd_crypt_read_done(io);
 
 	crypt_dec_pending(io);
 }
@@ -1202,15 +1203,18 @@ static void kcryptd_async_done(struct cr
 	if (!error && cc->iv_gen_ops && cc->iv_gen_ops->post)
 		error = cc->iv_gen_ops->post(cc, iv_of_dmreq(cc, dmreq), dmreq);
 
+	if (error < 0)
+		io->error = -EIO;
+
 	mempool_free(req_of_dmreq(cc, dmreq), cc->req_pool);
 
 	if (!atomic_dec_and_test(&ctx->pending))
 		return;
 
 	if (bio_data_dir(io->base_bio) == READ)
-		kcryptd_crypt_read_done(io, error);
+		kcryptd_crypt_read_done(io);
 	else
-		kcryptd_crypt_write_io_submit(io, error, 1);
+		kcryptd_crypt_write_io_submit(io, 1);
 }
 
 static void kcryptd_crypt(struct work_struct *work)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 124/149] dm exception store: fix init error path
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (122 preceding siblings ...)
  2012-03-30 19:50 ` [ 123/149] dm crypt: add missing error handling Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 125/149] dm persistent data: fix btree rebalancing after remove Greg KH
                   ` (24 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Andrei Warkentin, Mike Snitzer, Alasdair G Kergon

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Andrei Warkentin <andrey.warkentin@gmail.com>

commit aadbe266f2f89ccc68b52f4effc7b3a8b29521ef upstream.

Call the correct exit function on failure in dm_exception_store_init.

Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com>
Acked-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-exception-store.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/md/dm-exception-store.c
+++ b/drivers/md/dm-exception-store.c
@@ -283,7 +283,7 @@ int dm_exception_store_init(void)
 	return 0;
 
 persistent_fail:
-	dm_persistent_snapshot_exit();
+	dm_transient_snapshot_exit();
 transient_fail:
 	return r;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 125/149] dm persistent data: fix btree rebalancing after remove
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (123 preceding siblings ...)
  2012-03-30 19:50 ` [ 124/149] dm exception store: fix init error path Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 126/149] dm thin: fix stacked bi_next usage Greg KH
                   ` (23 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Joe Thornber, Mike Snitzer, Alasdair G Kergon

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Joe Thornber <ejt@redhat.com>

commit b0988900bae9ecf968a8a8d086a9eec671a9517a upstream.

When we remove an entry from a node we sometimes rebalance with it's
two neighbours.  This wasn't being done correctly; in some cases
entries have to move all the way from the right neighbour to the left
neighbour, or vice versa.  This patch pretty much re-writes the
balancing code to fix it.

This code is barely used currently; only when you delete a thin
device, and then only if you have hundreds of them in the same pool.
Once we have discard support, which removes mappings, this will be used
much more heavily.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/persistent-data/dm-btree-remove.c |  174 +++++++++++++++------------
 1 file changed, 99 insertions(+), 75 deletions(-)

--- a/drivers/md/persistent-data/dm-btree-remove.c
+++ b/drivers/md/persistent-data/dm-btree-remove.c
@@ -128,18 +128,9 @@ static void delete_at(struct node *n, un
 	n->header.nr_entries = cpu_to_le32(nr_entries - 1);
 }
 
-static unsigned del_threshold(struct node *n)
-{
-	return le32_to_cpu(n->header.max_entries) / 3;
-}
-
 static unsigned merge_threshold(struct node *n)
 {
-	/*
-	 * The extra one is because we know we're potentially going to
-	 * delete an entry.
-	 */
-	return 2 * (le32_to_cpu(n->header.max_entries) / 3) + 1;
+	return le32_to_cpu(n->header.max_entries) / 3;
 }
 
 struct child {
@@ -188,6 +179,15 @@ static int exit_child(struct dm_btree_in
 
 static void shift(struct node *left, struct node *right, int count)
 {
+	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
+	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
+	uint32_t r_max_entries = le32_to_cpu(right->header.max_entries);
+
+	BUG_ON(max_entries != r_max_entries);
+	BUG_ON(nr_left - count > max_entries);
+	BUG_ON(nr_right + count > max_entries);
+
 	if (!count)
 		return;
 
@@ -199,13 +199,8 @@ static void shift(struct node *left, str
 		node_shift(right, count);
 	}
 
-	left->header.nr_entries =
-		cpu_to_le32(le32_to_cpu(left->header.nr_entries) - count);
-	BUG_ON(le32_to_cpu(left->header.nr_entries) > le32_to_cpu(left->header.max_entries));
-
-	right->header.nr_entries =
-		cpu_to_le32(le32_to_cpu(right->header.nr_entries) + count);
-	BUG_ON(le32_to_cpu(right->header.nr_entries) > le32_to_cpu(right->header.max_entries));
+	left->header.nr_entries = cpu_to_le32(nr_left - count);
+	right->header.nr_entries = cpu_to_le32(nr_right + count);
 }
 
 static void __rebalance2(struct dm_btree_info *info, struct node *parent,
@@ -215,8 +210,9 @@ static void __rebalance2(struct dm_btree
 	struct node *right = r->n;
 	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
 	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
+	unsigned threshold = 2 * merge_threshold(left) + 1;
 
-	if (nr_left + nr_right <= merge_threshold(left)) {
+	if (nr_left + nr_right < threshold) {
 		/*
 		 * Merge
 		 */
@@ -234,9 +230,6 @@ static void __rebalance2(struct dm_btree
 		 * Rebalance.
 		 */
 		unsigned target_left = (nr_left + nr_right) / 2;
-		unsigned shift_ = nr_left - target_left;
-		BUG_ON(le32_to_cpu(left->header.max_entries) <= nr_left - shift_);
-		BUG_ON(le32_to_cpu(right->header.max_entries) <= nr_right + shift_);
 		shift(left, right, nr_left - target_left);
 		*key_ptr(parent, r->index) = right->keys[0];
 	}
@@ -272,6 +265,84 @@ static int rebalance2(struct shadow_spin
 	return exit_child(info, &right);
 }
 
+/*
+ * We dump as many entries from center as possible into left, then the rest
+ * in right, then rebalance2.  This wastes some cpu, but I want something
+ * simple atm.
+ */
+static void delete_center_node(struct dm_btree_info *info, struct node *parent,
+			       struct child *l, struct child *c, struct child *r,
+			       struct node *left, struct node *center, struct node *right,
+			       uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
+{
+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
+	unsigned shift = min(max_entries - nr_left, nr_center);
+
+	BUG_ON(nr_left + shift > max_entries);
+	node_copy(left, center, -shift);
+	left->header.nr_entries = cpu_to_le32(nr_left + shift);
+
+	if (shift != nr_center) {
+		shift = nr_center - shift;
+		BUG_ON((nr_right + shift) > max_entries);
+		node_shift(right, shift);
+		node_copy(center, right, shift);
+		right->header.nr_entries = cpu_to_le32(nr_right + shift);
+	}
+	*key_ptr(parent, r->index) = right->keys[0];
+
+	delete_at(parent, c->index);
+	r->index--;
+
+	dm_tm_dec(info->tm, dm_block_location(c->block));
+	__rebalance2(info, parent, l, r);
+}
+
+/*
+ * Redistributes entries among 3 sibling nodes.
+ */
+static void redistribute3(struct dm_btree_info *info, struct node *parent,
+			  struct child *l, struct child *c, struct child *r,
+			  struct node *left, struct node *center, struct node *right,
+			  uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
+{
+	int s;
+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
+	unsigned target = (nr_left + nr_center + nr_right) / 3;
+	BUG_ON(target > max_entries);
+
+	if (nr_left < nr_right) {
+		s = nr_left - target;
+
+		if (s < 0 && nr_center < -s) {
+			/* not enough in central node */
+			shift(left, center, nr_center);
+			s = nr_center - target;
+			shift(left, right, s);
+			nr_right += s;
+		} else
+			shift(left, center, s);
+
+		shift(center, right, target - nr_right);
+
+	} else {
+		s = target - nr_right;
+		if (s > 0 && nr_center < s) {
+			/* not enough in central node */
+			shift(center, right, nr_center);
+			s = target - nr_center;
+			shift(left, right, s);
+			nr_left -= s;
+		} else
+			shift(center, right, s);
+
+		shift(left, center, nr_left - target);
+	}
+
+	*key_ptr(parent, c->index) = center->keys[0];
+	*key_ptr(parent, r->index) = right->keys[0];
+}
+
 static void __rebalance3(struct dm_btree_info *info, struct node *parent,
 			 struct child *l, struct child *c, struct child *r)
 {
@@ -282,62 +353,18 @@ static void __rebalance3(struct dm_btree
 	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
 	uint32_t nr_center = le32_to_cpu(center->header.nr_entries);
 	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
-	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
 
-	unsigned target;
+	unsigned threshold = merge_threshold(left) * 4 + 1;
 
 	BUG_ON(left->header.max_entries != center->header.max_entries);
 	BUG_ON(center->header.max_entries != right->header.max_entries);
 
-	if (((nr_left + nr_center + nr_right) / 2) < merge_threshold(center)) {
-		/*
-		 * Delete center node:
-		 *
-		 * We dump as many entries from center as possible into
-		 * left, then the rest in right, then rebalance2.  This
-		 * wastes some cpu, but I want something simple atm.
-		 */
-		unsigned shift = min(max_entries - nr_left, nr_center);
-
-		BUG_ON(nr_left + shift > max_entries);
-		node_copy(left, center, -shift);
-		left->header.nr_entries = cpu_to_le32(nr_left + shift);
-
-		if (shift != nr_center) {
-			shift = nr_center - shift;
-			BUG_ON((nr_right + shift) >= max_entries);
-			node_shift(right, shift);
-			node_copy(center, right, shift);
-			right->header.nr_entries = cpu_to_le32(nr_right + shift);
-		}
-		*key_ptr(parent, r->index) = right->keys[0];
-
-		delete_at(parent, c->index);
-		r->index--;
-
-		dm_tm_dec(info->tm, dm_block_location(c->block));
-		__rebalance2(info, parent, l, r);
-
-		return;
-	}
-
-	/*
-	 * Rebalance
-	 */
-	target = (nr_left + nr_center + nr_right) / 3;
-	BUG_ON(target > max_entries);
-
-	/*
-	 * Adjust the left node
-	 */
-	shift(left, center, nr_left - target);
-
-	/*
-	 * Adjust the right node
-	 */
-	shift(center, right, target - nr_right);
-	*key_ptr(parent, c->index) = center->keys[0];
-	*key_ptr(parent, r->index) = right->keys[0];
+	if ((nr_left + nr_center + nr_right) < threshold)
+		delete_center_node(info, parent, l, c, r, left, center, right,
+				   nr_left, nr_center, nr_right);
+	else
+		redistribute3(info, parent, l, c, r, left, center, right,
+			      nr_left, nr_center, nr_right);
 }
 
 static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info,
@@ -441,9 +468,6 @@ static int rebalance_children(struct sha
 	if (r)
 		return r;
 
-	if (child_entries > del_threshold(n))
-		return 0;
-
 	has_left_sibling = i > 0;
 	has_right_sibling = i < (le32_to_cpu(n->header.nr_entries) - 1);
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 126/149] dm thin: fix stacked bi_next usage
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (124 preceding siblings ...)
  2012-03-30 19:50 ` [ 125/149] dm persistent data: fix btree rebalancing after remove Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 127/149] backlight: fix typo in tosa_lcd.c Greg KH
                   ` (22 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Joe Thornber, Mike Snitzer, Alasdair G Kergon

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Joe Thornber <ejt@redhat.com>

commit 6f94a4c45a6f744383f9f695dde019998db3df55 upstream.

Avoid using the bi_next field for the holder of a cell when deferring
bios because a stacked device below might change it.  Store the
holder in a new field in struct cell instead.

When a cell is created, the bio that triggered creation (the holder) was
added to the same bio list as subsequent bios.  In some cases we pass
this holder bio directly to devices underneath.  If those devices use
the bi_next field there will be trouble...

This also simplifies some code that had to work out which bio was the
holder.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-thin.c |  126 +++++++++++++++++++++++++++++----------------------
 1 file changed, 74 insertions(+), 52 deletions(-)

--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -124,7 +124,7 @@ struct cell {
 	struct hlist_node list;
 	struct bio_prison *prison;
 	struct cell_key key;
-	unsigned count;
+	struct bio *holder;
 	struct bio_list bios;
 };
 
@@ -220,54 +220,59 @@ static struct cell *__search_bucket(stru
  * This may block if a new cell needs allocating.  You must ensure that
  * cells will be unlocked even if the calling thread is blocked.
  *
- * Returns the number of entries in the cell prior to the new addition
- * or < 0 on failure.
+ * Returns 1 if the cell was already held, 0 if @inmate is the new holder.
  */
 static int bio_detain(struct bio_prison *prison, struct cell_key *key,
 		      struct bio *inmate, struct cell **ref)
 {
-	int r;
+	int r = 1;
 	unsigned long flags;
 	uint32_t hash = hash_key(prison, key);
-	struct cell *uninitialized_var(cell), *cell2 = NULL;
+	struct cell *cell, *cell2;
 
 	BUG_ON(hash > prison->nr_buckets);
 
 	spin_lock_irqsave(&prison->lock, flags);
-	cell = __search_bucket(prison->cells + hash, key);
 
-	if (!cell) {
-		/*
-		 * Allocate a new cell
-		 */
-		spin_unlock_irqrestore(&prison->lock, flags);
-		cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO);
-		spin_lock_irqsave(&prison->lock, flags);
-
-		/*
-		 * We've been unlocked, so we have to double check that
-		 * nobody else has inserted this cell in the meantime.
-		 */
-		cell = __search_bucket(prison->cells + hash, key);
-
-		if (!cell) {
-			cell = cell2;
-			cell2 = NULL;
-
-			cell->prison = prison;
-			memcpy(&cell->key, key, sizeof(cell->key));
-			cell->count = 0;
-			bio_list_init(&cell->bios);
-			hlist_add_head(&cell->list, prison->cells + hash);
-		}
+	cell = __search_bucket(prison->cells + hash, key);
+	if (cell) {
+		bio_list_add(&cell->bios, inmate);
+		goto out;
 	}
 
-	r = cell->count++;
-	bio_list_add(&cell->bios, inmate);
+	/*
+	 * Allocate a new cell
+	 */
 	spin_unlock_irqrestore(&prison->lock, flags);
+	cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO);
+	spin_lock_irqsave(&prison->lock, flags);
 
-	if (cell2)
+	/*
+	 * We've been unlocked, so we have to double check that
+	 * nobody else has inserted this cell in the meantime.
+	 */
+	cell = __search_bucket(prison->cells + hash, key);
+	if (cell) {
 		mempool_free(cell2, prison->cell_pool);
+		bio_list_add(&cell->bios, inmate);
+		goto out;
+	}
+
+	/*
+	 * Use new cell.
+	 */
+	cell = cell2;
+
+	cell->prison = prison;
+	memcpy(&cell->key, key, sizeof(cell->key));
+	cell->holder = inmate;
+	bio_list_init(&cell->bios);
+	hlist_add_head(&cell->list, prison->cells + hash);
+
+	r = 0;
+
+out:
+	spin_unlock_irqrestore(&prison->lock, flags);
 
 	*ref = cell;
 
@@ -283,8 +288,8 @@ static void __cell_release(struct cell *
 
 	hlist_del(&cell->list);
 
-	if (inmates)
-		bio_list_merge(inmates, &cell->bios);
+	bio_list_add(inmates, cell->holder);
+	bio_list_merge(inmates, &cell->bios);
 
 	mempool_free(cell, prison->cell_pool);
 }
@@ -305,22 +310,44 @@ static void cell_release(struct cell *ce
  * bio may be in the cell.  This function releases the cell, and also does
  * a sanity check.
  */
+static void __cell_release_singleton(struct cell *cell, struct bio *bio)
+{
+	hlist_del(&cell->list);
+	BUG_ON(cell->holder != bio);
+	BUG_ON(!bio_list_empty(&cell->bios));
+}
+
 static void cell_release_singleton(struct cell *cell, struct bio *bio)
 {
-	struct bio_prison *prison = cell->prison;
-	struct bio_list bios;
-	struct bio *b;
 	unsigned long flags;
-
-	bio_list_init(&bios);
+	struct bio_prison *prison = cell->prison;
 
 	spin_lock_irqsave(&prison->lock, flags);
-	__cell_release(cell, &bios);
+	__cell_release_singleton(cell, bio);
 	spin_unlock_irqrestore(&prison->lock, flags);
+}
+
+/*
+ * Sometimes we don't want the holder, just the additional bios.
+ */
+static void __cell_release_no_holder(struct cell *cell, struct bio_list *inmates)
+{
+	struct bio_prison *prison = cell->prison;
+
+	hlist_del(&cell->list);
+	bio_list_merge(inmates, &cell->bios);
+
+	mempool_free(cell, prison->cell_pool);
+}
+
+static void cell_release_no_holder(struct cell *cell, struct bio_list *inmates)
+{
+	unsigned long flags;
+	struct bio_prison *prison = cell->prison;
 
-	b = bio_list_pop(&bios);
-	BUG_ON(b != bio);
-	BUG_ON(!bio_list_empty(&bios));
+	spin_lock_irqsave(&prison->lock, flags);
+	__cell_release_no_holder(cell, inmates);
+	spin_unlock_irqrestore(&prison->lock, flags);
 }
 
 static void cell_error(struct cell *cell)
@@ -800,21 +827,16 @@ static void cell_defer(struct thin_c *tc
  * Same as cell_defer above, except it omits one particular detainee,
  * a write bio that covers the block and has already been processed.
  */
-static void cell_defer_except(struct thin_c *tc, struct cell *cell,
-			      struct bio *exception)
+static void cell_defer_except(struct thin_c *tc, struct cell *cell)
 {
 	struct bio_list bios;
-	struct bio *bio;
 	struct pool *pool = tc->pool;
 	unsigned long flags;
 
 	bio_list_init(&bios);
-	cell_release(cell, &bios);
 
 	spin_lock_irqsave(&pool->lock, flags);
-	while ((bio = bio_list_pop(&bios)))
-		if (bio != exception)
-			bio_list_add(&pool->deferred_bios, bio);
+	cell_release_no_holder(cell, &pool->deferred_bios);
 	spin_unlock_irqrestore(&pool->lock, flags);
 
 	wake_worker(pool);
@@ -854,7 +876,7 @@ static void process_prepared_mapping(str
 	 * the bios in the cell.
 	 */
 	if (bio) {
-		cell_defer_except(tc, m->cell, bio);
+		cell_defer_except(tc, m->cell);
 		bio_endio(bio, 0);
 	} else
 		cell_defer(tc, m->cell, m->data_block);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 127/149] backlight: fix typo in tosa_lcd.c
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (125 preceding siblings ...)
  2012-03-30 19:50 ` [ 126/149] dm thin: fix stacked bi_next usage Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 128/149] xfs: Fix oops on IO error during xlog_recover_process_iunlinks() Greg KH
                   ` (21 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Masanari Iida

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Masanari Iida <standby24x7@gmail.com>

commit 8da00edc1069f01c34510fa405dc15d96c090a3f upstream.

Fix typo in drivers/video/backlight/tosa_lcd.c
"tosa_lcd_reume" should be "tosa_lcd_resume".

Signed-off-by: Masanari Iida <standby24x7@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>

---
 drivers/video/backlight/tosa_lcd.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/video/backlight/tosa_lcd.c
+++ b/drivers/video/backlight/tosa_lcd.c
@@ -271,7 +271,7 @@ static int tosa_lcd_resume(struct spi_de
 }
 #else
 #define tosa_lcd_suspend	NULL
-#define tosa_lcd_reume NULL
+#define tosa_lcd_resume NULL
 #endif
 
 static struct spi_driver tosa_lcd_driver = {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 128/149] xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (126 preceding siblings ...)
  2012-03-30 19:50 ` [ 127/149] backlight: fix typo in tosa_lcd.c Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 129/149] slub: Do not hold slub_lock when calling sysfs_slab_add() Greg KH
                   ` (20 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Jan Kara, Dave Chinner, Ben Myers

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jan Kara <jack@suse.cz>

commit d97d32edcd732110758799ae60af725e5110b3dc upstream.

When an IO error happens during inode deletion run from
xlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent
attempt to read buffers fails. Code in xlog_recover_process_iunlinks() does not
count with the fact that read of a buffer which was read a while ago can
really fail which results in the oops on
  agi = XFS_BUF_TO_AGI(agibp);

Fix the problem by cleaning up the buffer handling in
xlog_recover_process_iunlinks() as suggested by Dave Chinner. We release buffer
lock but keep buffer reference to AG buffer. That is enough for buffer to stay
pinned in memory and we don't have to call xfs_read_agi() all the time.

Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/xfs/xfs_log_recover.c |   33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -3161,37 +3161,26 @@ xlog_recover_process_iunlinks(
 			 */
 			continue;
 		}
+		/*
+		 * Unlock the buffer so that it can be acquired in the normal
+		 * course of the transaction to truncate and free each inode.
+		 * Because we are not racing with anyone else here for the AGI
+		 * buffer, we don't even need to hold it locked to read the
+		 * initial unlinked bucket entries out of the buffer. We keep
+		 * buffer reference though, so that it stays pinned in memory
+		 * while we need the buffer.
+		 */
 		agi = XFS_BUF_TO_AGI(agibp);
+		xfs_buf_unlock(agibp);
 
 		for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) {
 			agino = be32_to_cpu(agi->agi_unlinked[bucket]);
 			while (agino != NULLAGINO) {
-				/*
-				 * Release the agi buffer so that it can
-				 * be acquired in the normal course of the
-				 * transaction to truncate and free the inode.
-				 */
-				xfs_buf_relse(agibp);
-
 				agino = xlog_recover_process_one_iunlink(mp,
 							agno, agino, bucket);
-
-				/*
-				 * Reacquire the agibuffer and continue around
-				 * the loop. This should never fail as we know
-				 * the buffer was good earlier on.
-				 */
-				error = xfs_read_agi(mp, NULL, agno, &agibp);
-				ASSERT(error == 0);
-				agi = XFS_BUF_TO_AGI(agibp);
 			}
 		}
-
-		/*
-		 * Release the buffer for the current agi so we can
-		 * go on to the next one.
-		 */
-		xfs_buf_relse(agibp);
+		xfs_buf_rele(agibp);
 	}
 
 	mp->m_dmevmask = mp_dmevmask;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 129/149] slub: Do not hold slub_lock when calling sysfs_slab_add()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (127 preceding siblings ...)
  2012-03-30 19:50 ` [ 128/149] xfs: Fix oops on IO error during xlog_recover_process_iunlinks() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 130/149] NFSv4: Fix two infinite loops in the mount code Greg KH
                   ` (19 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Sasha Levin, Eric Dumazet,
	Christoph Lameter, Pekka Enberg

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Christoph Lameter <cl@linux.com>

commit 66c4c35c6bc5a1a452b024cf0364635b28fd94e4 upstream.

sysfs_slab_add() calls various sysfs functions that actually may
end up in userspace doing all sorts of things.

Release the slub_lock after adding the kmem_cache structure to the list.
At that point the address of the kmem_cache is not known so we are
guaranteed exlusive access to the following modifications to the
kmem_cache structure.

If the sysfs_slab_add fails then reacquire the slub_lock to
remove the kmem_cache structure from the list.

Reported-by: Sasha Levin <levinsasha928@gmail.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 mm/slub.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3911,13 +3911,14 @@ struct kmem_cache *kmem_cache_create(con
 		if (kmem_cache_open(s, n,
 				size, align, flags, ctor)) {
 			list_add(&s->list, &slab_caches);
+			up_write(&slub_lock);
 			if (sysfs_slab_add(s)) {
+				down_write(&slub_lock);
 				list_del(&s->list);
 				kfree(n);
 				kfree(s);
 				goto err;
 			}
-			up_write(&slub_lock);
 			return s;
 		}
 		kfree(n);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 130/149] NFSv4: Fix two infinite loops in the mount code
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (128 preceding siblings ...)
  2012-03-30 19:50 ` [ 129/149] slub: Do not hold slub_lock when calling sysfs_slab_add() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 131/149] NFSv4.1: Fix layoutcommit error handling Greg KH
                   ` (18 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Weston Andros Adamson, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit 05e9cfb408b24debb3a85fd98edbfd09dd148881 upstream.

We can currently loop forever in nfs4_lookup_root() and in
nfs41_proc_secinfo_no_name(), if the first iteration returns a
NFS4ERR_DELAY or something else that causes exception.retry to get
set.

Reported-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2242,11 +2242,12 @@ static int nfs4_lookup_root(struct nfs_s
 		switch (err) {
 		case 0:
 		case -NFS4ERR_WRONGSEC:
-			break;
+			goto out;
 		default:
 			err = nfs4_handle_exception(server, err, &exception);
 		}
 	} while (exception.retry);
+out:
 	return err;
 }
 
@@ -6099,11 +6100,12 @@ nfs41_proc_secinfo_no_name(struct nfs_se
 		case 0:
 		case -NFS4ERR_WRONGSEC:
 		case -NFS4ERR_NOTSUPP:
-			break;
+			goto out;
 		default:
 			err = nfs4_handle_exception(server, err, &exception);
 		}
 	} while (exception.retry);
+out:
 	return err;
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 131/149] NFSv4.1: Fix layoutcommit error handling
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (129 preceding siblings ...)
  2012-03-30 19:50 ` [ 130/149] NFSv4: Fix two infinite loops in the mount code Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-04-01 21:23   ` Ben Hutchings
  2012-03-30 19:50 ` [ 132/149] module: Remove module size limit Greg KH
                   ` (17 subsequent siblings)
  148 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Trond Myklebust

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <Trond.Myklebust@netapp.com>

commit e59d27e05a6435f8c04d5ad843f37fa795f2eaaa upstream.

Firstly, task->tk_status will always return negative error values,
so the current tests for 'NFS4ERR_DELEG_REVOKED' etc. are all being
ignored.
Secondly, clean up the code so that we only need to test
task->tk_status once!

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |   25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -5983,21 +5983,22 @@ nfs4_layoutcommit_done(struct rpc_task *
 		return;
 
 	switch (task->tk_status) { /* Just ignore these failures */
-	case NFS4ERR_DELEG_REVOKED: /* layout was recalled */
-	case NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
-	case NFS4ERR_BADLAYOUT:     /* no layout */
-	case NFS4ERR_GRACE:	    /* loca_recalim always false */
+	case -NFS4ERR_DELEG_REVOKED: /* layout was recalled */
+	case -NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
+	case -NFS4ERR_BADLAYOUT:     /* no layout */
+	case -NFS4ERR_GRACE:	    /* loca_recalim always false */
 		task->tk_status = 0;
-	}
-
-	if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
-		rpc_restart_call_prepare(task);
-		return;
-	}
-
-	if (task->tk_status == 0)
+		break;
+	case 0:
 		nfs_post_op_update_inode_force_wcc(data->args.inode,
 						   data->res.fattr);
+		break;
+	default:
+		if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
+			rpc_restart_call_prepare(task);
+			return;
+		}
+	}
 }
 
 static void nfs4_layoutcommit_release(void *calldata)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 132/149] module: Remove module size limit
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (130 preceding siblings ...)
  2012-03-30 19:50 ` [ 131/149] NFSv4.1: Fix layoutcommit error handling Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 133/149] Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints Greg KH
                   ` (16 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Tim Abbott, Sasha Levin, Rusty Russell

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sasha Levin <levinsasha928@gmail.com>

commit f946eeb9313ff1470758e171a60fe7438a2ded3f upstream.

Module size was limited to 64MB, this was legacy limitation due to vmalloc()
which was removed a while ago.

Limiting module size to 64MB is both pointless and affects real world use
cases.

Cc: Tim Abbott <tim.abbott@oracle.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 kernel/module.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2341,8 +2341,7 @@ static int copy_and_check(struct load_in
 		return -ENOEXEC;
 
 	/* Suck in entire file: we'll want most of it. */
-	/* vmalloc barfs on "unusual" numbers.  Check here */
-	if (len > 64 * 1024 * 1024 || (hdr = vmalloc(len)) == NULL)
+	if ((hdr = vmalloc(len)) == NULL)
 		return -ENOMEM;
 
 	if (copy_from_user(hdr, umod, len) != 0) {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 133/149] Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (131 preceding siblings ...)
  2012-03-30 19:50 ` [ 132/149] module: Remove module size limit Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 134/149] drm/i915: suspend fbdev device around suspend/hibernate Greg KH
                   ` (15 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Marcel Holtmann, Bing Zhao, Gustavo F. Padovan

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Bing Zhao <bzhao@marvell.com>

commit fa0fb93f2ac308a76fa64eb57c18511dadf97089 upstream.

For high-speed/super-speed isochronous endpoints, the bInterval
value is used as exponent, 2^(bInterval-1). Luckily we have
usb_fill_int_urb() function that handles it correctly. So we just
call this function to fill in the RX URB.

Cc: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/bluetooth/btusb.c |    9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -507,15 +507,10 @@ static int btusb_submit_isoc_urb(struct
 
 	pipe = usb_rcvisocpipe(data->udev, data->isoc_rx_ep->bEndpointAddress);
 
-	urb->dev      = data->udev;
-	urb->pipe     = pipe;
-	urb->context  = hdev;
-	urb->complete = btusb_isoc_complete;
-	urb->interval = data->isoc_rx_ep->bInterval;
+	usb_fill_int_urb(urb, data->udev, pipe, buf, size, btusb_isoc_complete,
+				hdev, data->isoc_rx_ep->bInterval);
 
 	urb->transfer_flags  = URB_FREE_BUFFER | URB_ISO_ASAP;
-	urb->transfer_buffer = buf;
-	urb->transfer_buffer_length = size;
 
 	__fill_isoc_descriptor(urb, size,
 			le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize));



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 134/149] drm/i915: suspend fbdev device around suspend/hibernate
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (132 preceding siblings ...)
  2012-03-30 19:50 ` [ 133/149] Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 135/149] Fix pppol2tp getsockname() Greg KH
                   ` (14 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Keith Packard, Petr Tesarik,
	Stanislaw Gruszka, Dave Airlie, Bojan Smojver, Andreas Hartmann

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dave Airlie <airlied@redhat.com>

commit 3fa016a0b5c5237e9c387fc3249592b2cb5391c6 upstream.

Looking at hibernate overwriting I though it looked like a cursor,
so I tracked down this missing piece to stop the cursor blink
timer. I've no idea if this is sufficient to fix the hibernate
problems people are seeing, but please test it.

Both radeon and nouveau have done this for a long time.

I've run this personally all night hib/resume cycles with no fails.

Reviewed-by: Keith Packard <keithp@keithp.com>
Reported-by: Petr Tesarik <kernel@tesarici.cz>
Reported-by: Stanislaw Gruszka <sgruszka@redhat.com>
Reported-by: Lots of misc segfaults after hibernate across the world.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=37142
Tested-by: Dave Airlie <airlied@redhat.com>
Tested-by: Bojan Smojver <bojan@rexursive.com>
Tested-by: Andreas Hartmann <andihartmann@01019freenet.de>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/i915/i915_drv.c  |    7 +++++++
 drivers/gpu/drm/i915/intel_drv.h |    2 +-
 drivers/gpu/drm/i915/intel_fb.c  |   10 ++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -442,6 +442,10 @@ static int i915_drm_freeze(struct drm_de
 	/* Modeset on resume, not lid events */
 	dev_priv->modeset_on_lid = 0;
 
+	console_lock();
+	intel_fbdev_set_suspend(dev, 1);
+	console_unlock();
+
 	return 0;
 }
 
@@ -514,6 +518,9 @@ static int i915_drm_thaw(struct drm_devi
 
 	dev_priv->modeset_on_lid = 0;
 
+	console_lock();
+	intel_fbdev_set_suspend(dev, 0);
+	console_unlock();
 	return error;
 }
 
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -364,7 +364,7 @@ extern int intel_framebuffer_init(struct
 				  struct drm_i915_gem_object *obj);
 extern int intel_fbdev_init(struct drm_device *dev);
 extern void intel_fbdev_fini(struct drm_device *dev);
-
+extern void intel_fbdev_set_suspend(struct drm_device *dev, int state);
 extern void intel_prepare_page_flip(struct drm_device *dev, int plane);
 extern void intel_finish_page_flip(struct drm_device *dev, int pipe);
 extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane);
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -257,6 +257,16 @@ void intel_fbdev_fini(struct drm_device
 	kfree(dev_priv->fbdev);
 	dev_priv->fbdev = NULL;
 }
+
+void intel_fbdev_set_suspend(struct drm_device *dev, int state)
+{
+	drm_i915_private_t *dev_priv = dev->dev_private;
+	if (!dev_priv->fbdev)
+		return;
+
+	fb_set_suspend(dev_priv->fbdev->helper.fbdev, state);
+}
+
 MODULE_LICENSE("GPL and additional rights");
 
 void intel_fb_output_poll_changed(struct drm_device *dev)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 135/149] Fix pppol2tp getsockname()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (133 preceding siblings ...)
  2012-03-30 19:50 ` [ 134/149] drm/i915: suspend fbdev device around suspend/hibernate Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 136/149] ipv6: fix incorrent ipv6 ipsec packet fragment Greg KH
                   ` (13 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Benjamin LaHaise, James Chapman, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Benjamin LaHaise <bcrl@kvack.org>

[ Upstream commit bbdb32cb5b73597386913d052165423b9d736145 ]

While testing L2TP functionality, I came across a bug in getsockname().  The
IP address returned within the pppol2tp_addr's addr memember was not being
set to the IP  address in use.  This bug is caused by using inet_sk() on the
wrong socket (the L2TP socket rather than the underlying UDP socket), and was
likely introduced during the addition of L2TPv3 support.

Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/l2tp/l2tp_ppp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/net/l2tp/l2tp_ppp.c
+++ b/net/l2tp/l2tp_ppp.c
@@ -915,7 +915,7 @@ static int pppol2tp_getname(struct socke
 		goto end_put_sess;
 	}
 
-	inet = inet_sk(sk);
+	inet = inet_sk(tunnel->sock);
 	if (tunnel->version == 2) {
 		struct sockaddr_pppol2tp sp;
 		len = sizeof(sp);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 136/149] ipv6: fix incorrent ipv6 ipsec packet fragment
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (134 preceding siblings ...)
  2012-03-30 19:50 ` [ 135/149] Fix pppol2tp getsockname() Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 137/149] net: bpf_jit: fix BPF_S_LDX_B_MSH compilation Greg KH
                   ` (12 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Gao feng, Steffen Klassert, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Gao feng <gaofeng@cn.fujitsu.com>

[ Upstream commit 1f85851e17b64cabd089a8a8839dddebc627948c ]

Since commit 299b0767(ipv6: Fix IPsec slowpath fragmentation problem)
In func ip6_append_data,after call skb_put(skb, fraglen + dst_exthdrlen)
the skb->len contains dst_exthdrlen,and we don't reduce dst_exthdrlen at last
This will make fraggap>0 in next "while cycle",and cause the size of skb incorrent

Fix this by reserve headroom for dst_exthdrlen.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/ip6_output.c |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -1411,8 +1411,9 @@ alloc_new_skb:
 			 */
 			skb->ip_summed = csummode;
 			skb->csum = 0;
-			/* reserve for fragmentation */
-			skb_reserve(skb, hh_len+sizeof(struct frag_hdr));
+			/* reserve for fragmentation and ipsec header */
+			skb_reserve(skb, hh_len + sizeof(struct frag_hdr) +
+				    dst_exthdrlen);
 
 			if (sk->sk_type == SOCK_DGRAM)
 				skb_shinfo(skb)->tx_flags = tx_flags;
@@ -1420,9 +1421,9 @@ alloc_new_skb:
 			/*
 			 *	Find where to start putting bytes
 			 */
-			data = skb_put(skb, fraglen + dst_exthdrlen);
-			skb_set_network_header(skb, exthdrlen + dst_exthdrlen);
-			data += fragheaderlen + dst_exthdrlen;
+			data = skb_put(skb, fraglen);
+			skb_set_network_header(skb, exthdrlen);
+			data += fragheaderlen;
 			skb->transport_header = (skb->network_header +
 						 fragheaderlen);
 			if (fraggap) {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 137/149] net: bpf_jit: fix BPF_S_LDX_B_MSH compilation
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (135 preceding siblings ...)
  2012-03-30 19:50 ` [ 136/149] ipv6: fix incorrent ipv6 ipsec packet fragment Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 138/149] net: fix a potential rcu_read_lock() imbalance in rt6_fill_node() Greg KH
                   ` (11 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Matt Evans, Indan Zupancic, Eric Dumazet,
	David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Eric Dumazet <eric.dumazet@gmail.com>

[ Upstream commit dc72d99dabb870ca5bd6d9fff674be853bb4a88d ]

Matt Evans spotted that x86 bpf_jit was incorrectly handling negative
constant offsets in BPF_S_LDX_B_MSH instruction.

We need to abort JIT compilation like we do in common_load so that
filter uses the interpreter code and can call __load_pointer()

Reference: http://lists.openwall.net/netdev/2011/07/19/11

Thanks to Indan Zupancic to bring back this issue.

Reported-by: Matt Evans <matt@ozlabs.org>
Reported-by: Indan Zupancic <indan@nul.nu>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/net/bpf_jit_comp.c |   14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -475,8 +475,10 @@ void bpf_jit_compile(struct sk_filter *f
 			case BPF_S_LD_W_ABS:
 				func = sk_load_word;
 common_load:			seen |= SEEN_DATAREF;
-				if ((int)K < 0)
+				if ((int)K < 0) {
+					/* Abort the JIT because __load_pointer() is needed. */
 					goto out;
+				}
 				t_offset = func - (image + addrs[i]);
 				EMIT1_off32(0xbe, K); /* mov imm32,%esi */
 				EMIT1_off32(0xe8, t_offset); /* call */
@@ -489,14 +491,8 @@ common_load:			seen |= SEEN_DATAREF;
 				goto common_load;
 			case BPF_S_LDX_B_MSH:
 				if ((int)K < 0) {
-					if (pc_ret0 > 0) {
-						/* addrs[pc_ret0 - 1] is the start address */
-						EMIT_JMP(addrs[pc_ret0 - 1] - addrs[i]);
-						break;
-					}
-					CLEAR_A();
-					EMIT_JMP(cleanup_addr - addrs[i]);
-					break;
+					/* Abort the JIT because __load_pointer() is needed. */
+					goto out;
 				}
 				seen |= SEEN_DATAREF | SEEN_XREG;
 				t_offset = sk_load_byte_msh - (image + addrs[i]);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 138/149] net: fix a potential rcu_read_lock() imbalance in rt6_fill_node()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (136 preceding siblings ...)
  2012-03-30 19:50 ` [ 137/149] net: bpf_jit: fix BPF_S_LDX_B_MSH compilation Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50   ` Greg KH
                   ` (10 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Ben Greear, Dave Jones, Eric Dumazet,
	David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Eric Dumazet <eric.dumazet@gmail.com>

[ Upstream commit 94f826b8076e2cb92242061e92f21b5baa3eccc2 ]

Commit f2c31e32b378 (net: fix NULL dereferences in check_peer_redir() )
added a regression in rt6_fill_node(), leading to rcu_read_lock()
imbalance.

Thats because NLA_PUT() can make a jump to nla_put_failure label.

Fix this by using nla_put()

Many thanks to Ben Greear for his help

Reported-by: Ben Greear <greearb@candelatech.com>
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/ipv6/route.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2446,8 +2446,12 @@ static int rt6_fill_node(struct net *net
 
 	rcu_read_lock();
 	n = dst_get_neighbour(&rt->dst);
-	if (n)
-		NLA_PUT(skb, RTA_GATEWAY, 16, &n->primary_key);
+	if (n) {
+		if (nla_put(skb, RTA_GATEWAY, 16, &n->primary_key) < 0) {
+			rcu_read_unlock();
+			goto nla_put_failure;
+		}
+	}
 	rcu_read_unlock();
 
 	if (rt->dst.dev)



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 139/149] net: fix napi_reuse_skb() skb reserve
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
@ 2012-03-30 19:50   ` Greg KH
  2012-03-30 19:48 ` [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems Greg KH
                     ` (147 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Eric Dumazet, Herbert Xu, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Eric Dumazet <eric.dumazet@gmail.com>

[ Upstream commit 2a2a459eeeff48640dc557548ce576d666ab06ed ]

napi->skb is allocated in napi_get_frags() using
netdev_alloc_skb_ip_align(), with a reserve of NET_SKB_PAD +
NET_IP_ALIGN bytes.

However, when such skb is recycled in napi_reuse_skb(), it ends with a
reserve of NET_IP_ALIGN which is suboptimal.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/core/dev.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3634,7 +3634,8 @@ EXPORT_SYMBOL(napi_gro_receive);
 static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
 {
 	__skb_pull(skb, skb_headlen(skb));
-	skb_reserve(skb, NET_IP_ALIGN - skb_headroom(skb));
+	/* restore the reserve we had after netdev_alloc_skb_ip_align() */
+	skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb));
 	skb->vlan_tci = 0;
 	skb->dev = napi->dev;
 	skb->skb_iif = 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 139/149] net: fix napi_reuse_skb() skb reserve
@ 2012-03-30 19:50   ` Greg KH
  0 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Eric Dumazet, Herbert Xu, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Eric Dumazet <eric.dumazet@gmail.com>

[ Upstream commit 2a2a459eeeff48640dc557548ce576d666ab06ed ]

napi->skb is allocated in napi_get_frags() using
netdev_alloc_skb_ip_align(), with a reserve of NET_SKB_PAD +
NET_IP_ALIGN bytes.

However, when such skb is recycled in napi_reuse_skb(), it ends with a
reserve of NET_IP_ALIGN which is suboptimal.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/core/dev.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3634,7 +3634,8 @@ EXPORT_SYMBOL(napi_gro_receive);
 static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
 {
 	__skb_pull(skb, skb_headlen(skb));
-	skb_reserve(skb, NET_IP_ALIGN - skb_headroom(skb));
+	/* restore the reserve we had after netdev_alloc_skb_ip_align() */
+	skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb));
 	skb->vlan_tci = 0;
 	skb->dev = napi->dev;
 	skb->skb_iif = 0;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 140/149] Remove printk from rds_sendmsg
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (138 preceding siblings ...)
  2012-03-30 19:50   ` Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 141/149] sky2: override for PCI legacy power management Greg KH
                   ` (8 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Dave Jones, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Dave Jones <davej@redhat.com>

[ Upstream commit a6506e1486181975d318344143aca722b2b91621 ]

no socket layer outputs a message for this error and neither should rds.

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/rds/send.c |    1 -
 1 file changed, 1 deletion(-)

--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -935,7 +935,6 @@ int rds_sendmsg(struct kiocb *iocb, stru
 	/* Mirror Linux UDP mirror of BSD error message compatibility */
 	/* XXX: Perhaps MSG_MORE someday */
 	if (msg->msg_flags & ~(MSG_DONTWAIT | MSG_CMSG_COMPAT)) {
-		printk(KERN_INFO "msg_flags 0x%08X\n", msg->msg_flags);
 		ret = -EOPNOTSUPP;
 		goto out;
 	}



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 141/149] sky2: override for PCI legacy power management
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (139 preceding siblings ...)
  2012-03-30 19:50 ` [ 140/149] Remove printk from rds_sendmsg Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 142/149] xfrm: Access the replay notify functions via the registered callbacks Greg KH
                   ` (7 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Arkadiusz Miskiewicz, Stephen Hemminger,
	David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: stephen hemminger <shemminger@vyatta.com>

[ Upstream commit 5676cc7bfe1e388e87843f71daa229610385b41e ]

Some BIOS's don't setup power management correctly (what else is
new) and don't allow use of PCI Express power control. Add a special
exception module parameter to allow working around this issue.
Based on slightly different patch by Knut Petersen.

Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl>
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/net/ethernet/marvell/sky2.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -95,6 +95,10 @@ static int disable_msi = 0;
 module_param(disable_msi, int, 0);
 MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)");
 
+static int legacy_pme = 0;
+module_param(legacy_pme, int, 0);
+MODULE_PARM_DESC(legacy_pme, "Legacy power management");
+
 static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */
 	{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */
@@ -867,6 +871,13 @@ static void sky2_wol_init(struct sky2_po
 	/* Disable PiG firmware */
 	sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF);
 
+	/* Needed by some broken BIOSes, use PCI rather than PCI-e for WOL */
+	if (legacy_pme) {
+		u32 reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
+		reg1 |= PCI_Y2_PME_LEGACY;
+		sky2_pci_write32(hw, PCI_DEV_REG1, reg1);
+	}
+
 	/* block receiver */
 	sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
 	sky2_read32(hw, B0_CTST);



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 142/149] xfrm: Access the replay notify functions via the registered callbacks
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (140 preceding siblings ...)
  2012-03-30 19:50 ` [ 141/149] sky2: override for PCI legacy power management Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 143/149] lockd: fix arg parsing for grace_period and timeout Greg KH
                   ` (6 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Steffen Klassert, David S. Miller

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------


From: Steffen Klassert <steffen.klassert@secunet.com>

[ Upstream commit 1265fd616782ef03b98fd19f65c2b47fcd4ea11f ]

We call the wrong replay notify function when we use ESN replay
handling. This leads to the fact that we don't send notifications
if we use ESN. Fix this by calling the registered callbacks instead
of xfrm_replay_notify().

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 net/xfrm/xfrm_replay.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/net/xfrm/xfrm_replay.c
+++ b/net/xfrm/xfrm_replay.c
@@ -167,7 +167,7 @@ static void xfrm_replay_advance(struct x
 	}
 
 	if (xfrm_aevent_is_on(xs_net(x)))
-		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
 }
 
 static int xfrm_replay_overflow_bmp(struct xfrm_state *x, struct sk_buff *skb)
@@ -279,7 +279,7 @@ static void xfrm_replay_advance_bmp(stru
 	replay_esn->bmp[nr] |= (1U << bitnr);
 
 	if (xfrm_aevent_is_on(xs_net(x)))
-		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
 }
 
 static void xfrm_replay_notify_bmp(struct xfrm_state *x, int event)
@@ -473,7 +473,7 @@ static void xfrm_replay_advance_esn(stru
 	replay_esn->bmp[nr] |= (1U << bitnr);
 
 	if (xfrm_aevent_is_on(xs_net(x)))
-		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
 }
 
 static struct xfrm_replay xfrm_replay_legacy = {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 143/149] lockd: fix arg parsing for grace_period and timeout.
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (141 preceding siblings ...)
  2012-03-30 19:50 ` [ 142/149] xfrm: Access the replay notify functions via the registered callbacks Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 144/149] x86, tsc: Skip refined tsc calibration on systems with reliable TSC Greg KH
                   ` (5 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, NeilBrown, J. Bruce Fields

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.de>

commit de5b8e8e047534aac6bc9803f96e7257436aef9c upstream.

If you try to set grace_period or timeout via a module parameter
to lockd, and do this on a big-endian machine where

   sizeof(int) != sizeof(unsigned long)

it won't work.  This number given will be effectively shifted right
by the difference in those two sizes.

So cast kp->arg properly to get correct result.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/lockd/svc.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -440,7 +440,7 @@ static int param_set_##name(const char *
 	__typeof__(type) num = which_strtol(val, &endp, 0);		\
 	if (endp == val || *endp || num < (min) || num > (max))		\
 		return -EINVAL;						\
-	*((int *) kp->arg) = num;					\
+	*((type *) kp->arg) = num;					\
 	return 0;							\
 }
 



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 144/149] x86, tsc: Skip refined tsc calibration on systems with reliable TSC
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (142 preceding siblings ...)
  2012-03-30 19:50 ` [ 143/149] lockd: fix arg parsing for grace_period and timeout Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 145/149] x86, tls: Off by one limit check Greg KH
                   ` (4 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Alok N Kataria, John Stultz,
	Dirk Brandewie, Alan Cox, John Stultz

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Alok Kataria <akataria@vmware.com>

commit 57779dc2b3b75bee05ef5d1ada47f615f7a13932 upstream.

While running the latest Linux as guest under VMware in highly
over-committed situations, we have seen cases when the refined TSC
algorithm fails to get a valid tsc_start value in
tsc_refine_calibration_work from multiple attempts. As a result the
kernel keeps on scheduling the tsc_irqwork task for later. Subsequently
after several attempts when it gets a valid start value it goes through
the refined calibration and either bails out or uses the new results.
Given that the kernel originally read the TSC frequency from the
platform, which is the best it can get, I don't think there is much
value in refining it.

So  for systems which get the TSC frequency from the platform we
should skip the refined tsc algorithm.

We can use the TSC_RELIABLE cpu cap flag to detect this, right now it is
set only on VMware and for Moorestown Penwell both of which have there
own TSC calibration methods.

Signed-off-by: Alok N Kataria <akataria@vmware.com>
Cc: John Stultz <johnstul@us.ibm.com>
Cc: Dirk Brandewie <dirk.brandewie@gmail.com>
Cc: Alan Cox <alan@linux.intel.com>
[jstultz: Reworked to simply not schedule the refining work,
rather then scheduling the work and bombing out later]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/tsc.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -934,6 +934,16 @@ static int __init init_tsc_clocksource(v
 		clocksource_tsc.rating = 0;
 		clocksource_tsc.flags &= ~CLOCK_SOURCE_IS_CONTINUOUS;
 	}
+
+	/*
+	 * Trust the results of the earlier calibration on systems
+	 * exporting a reliable TSC.
+	 */
+	if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) {
+		clocksource_register_khz(&clocksource_tsc, tsc_khz);
+		return 0;
+	}
+
 	schedule_delayed_work(&tsc_irqwork, 0);
 	return 0;
 }



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 145/149] x86, tls: Off by one limit check
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (143 preceding siblings ...)
  2012-03-30 19:50 ` [ 144/149] x86, tsc: Skip refined tsc calibration on systems with reliable TSC Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:50 ` [ 146/149] compat: use sys_sendfile64() implementation for sendfile syscall Greg KH
                   ` (3 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Dan Carpenter, H. Peter Anvin

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Carpenter <dan.carpenter@oracle.com>

commit 8f0750f19789cf352d7e24a6cc50f2ab1b4f1372 upstream.

These are used as offsets into an array of GDT_ENTRY_TLS_ENTRIES members
so GDT_ENTRY_TLS_ENTRIES is one past the end of the array.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: http://lkml.kernel.org/r/20120324075250.GA28258@elgon.mountain
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/x86/kernel/tls.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/arch/x86/kernel/tls.c
+++ b/arch/x86/kernel/tls.c
@@ -163,7 +163,7 @@ int regset_tls_get(struct task_struct *t
 {
 	const struct desc_struct *tls;
 
-	if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
+	if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
 	    (pos % sizeof(struct user_desc)) != 0 ||
 	    (count % sizeof(struct user_desc)) != 0)
 		return -EINVAL;
@@ -198,7 +198,7 @@ int regset_tls_set(struct task_struct *t
 	struct user_desc infobuf[GDT_ENTRY_TLS_ENTRIES];
 	const struct user_desc *info;
 
-	if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
+	if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
 	    (pos % sizeof(struct user_desc)) != 0 ||
 	    (count % sizeof(struct user_desc)) != 0)
 		return -EINVAL;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 146/149] compat: use sys_sendfile64() implementation for sendfile syscall
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (144 preceding siblings ...)
  2012-03-30 19:50 ` [ 145/149] x86, tls: Off by one limit check Greg KH
@ 2012-03-30 19:50 ` Greg KH
  2012-03-30 19:51 ` [ 147/149] rtc: Provide flag for rtc devices that dont support UIE Greg KH
                   ` (2 subsequent siblings)
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:50 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Arnd Bergmann, Chris Metcalf

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Chris Metcalf <cmetcalf@tilera.com>

commit 1631fcea8399da5e80a80084b3b8c5bfd99d21e7 upstream.

<asm-generic/unistd.h> was set up to use sys_sendfile() for the 32-bit
compat API instead of sys_sendfile64(), but in fact the right thing to
do is to use sys_sendfile64() in all cases.  The 32-bit sendfile64() API
in glibc uses the sendfile64 syscall, so it has to be capable of doing
full 64-bit operations.  But the sys_sendfile() kernel implementation
has a MAX_NON_LFS test in it which explicitly limits the offset to 2^32.
So, we need to use the sys_sendfile64() implementation in the kernel
for this case.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/asm-generic/unistd.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/include/asm-generic/unistd.h
+++ b/include/asm-generic/unistd.h
@@ -218,7 +218,7 @@ __SC_COMP(__NR_pwritev, sys_pwritev, com
 
 /* fs/sendfile.c */
 #define __NR3264_sendfile 71
-__SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile)
+__SYSCALL(__NR3264_sendfile, sys_sendfile64)
 
 /* fs/select.c */
 #define __NR_pselect6 72



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 147/149] rtc: Provide flag for rtc devices that dont support UIE
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (145 preceding siblings ...)
  2012-03-30 19:50 ` [ 146/149] compat: use sys_sendfile64() implementation for sendfile syscall Greg KH
@ 2012-03-30 19:51 ` Greg KH
  2012-03-30 19:51 ` [ 148/149] nfsd: dont allow zero length strings in cache_parse() Greg KH
  2012-03-30 19:51 ` [ 149/149] serial: sh-sci: fix a race of DMA submit_tx on transfer Greg KH
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:51 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Richard Weinberger, John Stultz

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: John Stultz <john.stultz@linaro.org>

commit 4a649903f91232d02284d53724b0a45728111767 upstream.

Richard Weinberger noticed that on some RTC hardware that
doesn't support UIE mode, due to coarse granular alarms
(like 1minute resolution), the current virtualized RTC
support doesn't properly error out when UIE is enabled.

Instead the current code queues an alarm for the next second,
but it won't fire until up to a miniute later.

This patch provides a generic way to flag this sort of hardware
and fixes the issue on the mpc5121 where Richard noticed the
problem.

Reported-by: Richard Weinberger <richard@nod.at>
Tested-by: Richard Weinberger <richard@nod.at>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/rtc/interface.c   |    5 +++++
 drivers/rtc/rtc-mpc5121.c |    2 ++
 include/linux/rtc.h       |    3 ++-
 3 files changed, 9 insertions(+), 1 deletion(-)

--- a/drivers/rtc/interface.c
+++ b/drivers/rtc/interface.c
@@ -445,6 +445,11 @@ int rtc_update_irq_enable(struct rtc_dev
 	if (rtc->uie_rtctimer.enabled == enabled)
 		goto out;
 
+	if (rtc->uie_unsupported) {
+		err = -EINVAL;
+		goto out;
+	}
+
 	if (enabled) {
 		struct rtc_time tm;
 		ktime_t now, onesec;
--- a/drivers/rtc/rtc-mpc5121.c
+++ b/drivers/rtc/rtc-mpc5121.c
@@ -360,6 +360,8 @@ static int __devinit mpc5121_rtc_probe(s
 						&mpc5200_rtc_ops, THIS_MODULE);
 	}
 
+	rtc->rtc->uie_unsupported = 1;
+
 	if (IS_ERR(rtc->rtc)) {
 		err = PTR_ERR(rtc->rtc);
 		goto out_free_irq;
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -202,7 +202,8 @@ struct rtc_device
 	struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */
 	int pie_enabled;
 	struct work_struct irqwork;
-
+	/* Some hardware can't support UIE mode */
+	int uie_unsupported;
 
 #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
 	struct work_struct uie_task;



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 148/149] nfsd: dont allow zero length strings in cache_parse()
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (146 preceding siblings ...)
  2012-03-30 19:51 ` [ 147/149] rtc: Provide flag for rtc devices that dont support UIE Greg KH
@ 2012-03-30 19:51 ` Greg KH
  2012-03-30 19:51 ` [ 149/149] serial: sh-sci: fix a race of DMA submit_tx on transfer Greg KH
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:51 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan, Dan Carpenter, J. Bruce Fields

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Dan Carpenter <dan.carpenter@oracle.com>

commit 6d8d17499810479eabd10731179c04b2ca22152f upstream.

There is no point in passing a zero length string here and quite a
few of that cache_parse() implementations will Oops if count is
zero.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 net/sunrpc/cache.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -828,6 +828,8 @@ static ssize_t cache_do_downcall(char *k
 {
 	ssize_t ret;
 
+	if (count == 0)
+		return -EINVAL;
 	if (copy_from_user(kaddr, buf, count))
 		return -EFAULT;
 	kaddr[count] = '\0';



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 149/149] serial: sh-sci: fix a race of DMA submit_tx on transfer
  2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
                   ` (147 preceding siblings ...)
  2012-03-30 19:51 ` [ 148/149] nfsd: dont allow zero length strings in cache_parse() Greg KH
@ 2012-03-30 19:51 ` Greg KH
  148 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:51 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: torvalds, akpm, alan, Takashi Yoshii, Guennadi Liakhovetski, Paul Mundt

3.2-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yoshii Takashi <takashi.yoshii.zj@renesas.com>

commit 49d4bcaddca977fffdea8b0b71f6e5da96dac78e upstream.

When DMA is enabled, sh-sci transfer begins with
 uart_start()
  sci_start_tx()
    if (cookie_tx < 0) schedule_work()
Then, starts DMA when wq scheduled, -- (A)
 process_one_work()
  work_fn_rx()
   cookie_tx = desc->submit_tx()
And finishes when DMA transfer ends, -- (B)
 sci_dma_tx_complete()
  async_tx_ack()
  cookie_tx = -EINVAL
  (possible another schedule_work())

This A to B sequence is not reentrant, since controlling variables
(for example, cookie_tx above) are not queues nor lists. So, they
must be invoked as A B A B..., otherwise results in kernel crash.

To ensure the sequence, sci_start_tx() seems to test if cookie_tx < 0
(represents "not used") to call schedule_work().
But cookie_tx will not be set (to a cookie, also means "used") until
in the middle of work queue scheduled function work_fn_tx().

This gap between the test and set allows the breakage of the sequence
under the very frequently call of uart_start().
Another gap between async_tx_ack() and another schedule_work() results
in the same issue, too.

This patch introduces a new condition "cookie_tx == 0" just to mark
it is "busy" and assign it within spin-locked region to fill the gaps.

Signed-off-by: Takashi Yoshii <takashi.yoshii.zj@renesas.com>
Reviewed-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/tty/serial/sh-sci.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1123,17 +1123,20 @@ static void sci_dma_tx_complete(void *ar
 	port->icount.tx += sg_dma_len(&s->sg_tx);
 
 	async_tx_ack(s->desc_tx);
-	s->cookie_tx = -EINVAL;
 	s->desc_tx = NULL;
 
 	if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
 		uart_write_wakeup(port);
 
 	if (!uart_circ_empty(xmit)) {
+		s->cookie_tx = 0;
 		schedule_work(&s->work_tx);
-	} else if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
-		u16 ctrl = sci_in(port, SCSCR);
-		sci_out(port, SCSCR, ctrl & ~SCSCR_TIE);
+	} else {
+		s->cookie_tx = -EINVAL;
+		if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
+			u16 ctrl = sci_in(port, SCSCR);
+			sci_out(port, SCSCR, ctrl & ~SCSCR_TIE);
+		}
 	}
 
 	spin_unlock_irqrestore(&port->lock, flags);
@@ -1395,8 +1398,10 @@ static void sci_start_tx(struct uart_por
 	}
 
 	if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) &&
-	    s->cookie_tx < 0)
+	    s->cookie_tx < 0) {
+		s->cookie_tx = 0;
 		schedule_work(&s->work_tx);
+	}
 #endif
 
 	if (!s->chan_tx || port->type == PORT_SCIFA || port->type == PORT_SCIFB) {



^ permalink raw reply	[flat|nested] 171+ messages in thread

* [ 000/149] 3.2.14-stable review
@ 2012-03-30 19:58 Greg KH
  2012-03-30 19:48 ` [ 001/149] USB: option: Add MediaTek MT6276M modem&app interfaces Greg KH
                   ` (148 more replies)
  0 siblings, 149 replies; 171+ messages in thread
From: Greg KH @ 2012-03-30 19:58 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: torvalds, akpm, alan

This is the start of the stable review cycle for the 3.2.14 release.
There are 149 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun Apr  1 19:48:28 UTC 2012.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.2.14-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h

-------------
 Makefile                                          |    4 +-
 arch/arm/mach-tegra/Kconfig                       |   12 ++
 arch/x86/include/asm/kvm_emulate.h                |   16 ++
 arch/x86/kernel/apic/io_apic.c                    |   40 ++++-
 arch/x86/kernel/entry_32.S                        |   17 +-
 arch/x86/kernel/tls.c                             |    4 +-
 arch/x86/kernel/tsc.c                             |   10 ++
 arch/x86/kernel/vm86_32.c                         |    2 +
 arch/x86/kvm/emulate.c                            |   51 ++++++
 arch/x86/kvm/x86.c                                |   23 +++
 arch/x86/net/bpf_jit_comp.c                       |   14 +-
 drivers/ata/pata_legacy.c                         |    3 +-
 drivers/base/power/domain.c                       |    3 +-
 drivers/bluetooth/ath3k.c                         |    1 +
 drivers/bluetooth/btusb.c                         |   10 +-
 drivers/char/tpm/Kconfig                          |    1 -
 drivers/char/tpm/tpm.c                            |    3 +-
 drivers/firewire/ohci.c                           |    5 +-
 drivers/gpio/gpio-davinci.c                       |   26 +--
 drivers/gpio/gpio-omap.c                          |    5 +-
 drivers/gpu/drm/i915/i915_drv.c                   |    7 +
 drivers/gpu/drm/i915/i915_gem.c                   |    7 +-
 drivers/gpu/drm/i915/intel_drv.h                  |    2 +-
 drivers/gpu/drm/i915/intel_fb.c                   |   10 ++
 drivers/gpu/drm/radeon/radeon_atombios.c          |   14 ++
 drivers/gpu/drm/radeon/radeon_connectors.c        |    4 +
 drivers/gpu/drm/radeon/radeon_cursor.c            |   13 +-
 drivers/gpu/drm/radeon/radeon_object.c            |   18 ++-
 drivers/gpu/drm/radeon/radeon_object.h            |    2 +
 drivers/hid/hid-chicony.c                         |    7 +
 drivers/hid/hid-core.c                            |    1 +
 drivers/hid/hid-ids.h                             |    1 +
 drivers/hwmon/fam15h_power.c                      |    2 +-
 drivers/infiniband/ulp/iser/iscsi_iser.c          |   18 +--
 drivers/infiniband/ulp/iser/iscsi_iser.h          |    1 +
 drivers/infiniband/ulp/iser/iser_initiator.c      |   30 ++--
 drivers/iommu/amd_iommu.c                         |    2 +-
 drivers/md/bitmap.c                               |    2 +
 drivers/md/dm-crypt.c                             |   38 ++---
 drivers/md/dm-exception-store.c                   |    2 +-
 drivers/md/dm-thin.c                              |  124 +++++++++------
 drivers/md/md.c                                   |   40 ++---
 drivers/md/persistent-data/dm-btree-remove.c      |  174 ++++++++++++---------
 drivers/md/raid1.c                                |   17 +-
 drivers/md/raid10.c                               |   17 +-
 drivers/media/dvb/dvb-usb/mxl111sf.c              |    6 +-
 drivers/media/dvb/frontends/lgdt330x.c            |    6 +-
 drivers/media/video/pvrusb2/pvrusb2-devattr.c     |   10 ++
 drivers/mtd/ubi/scan.c                            |    8 +-
 drivers/mtd/ubi/wl.c                              |   10 +-
 drivers/net/ethernet/intel/e1000e/e1000.h         |    1 +
 drivers/net/ethernet/intel/e1000e/netdev.c        |   23 ++-
 drivers/net/ethernet/marvell/sky2.c               |   11 ++
 drivers/net/usb/usbnet.c                          |   10 +-
 drivers/net/wireless/iwlwifi/iwl-core.c           |   18 +--
 drivers/net/wireless/p54/p54spi.c                 |   14 +-
 drivers/net/wireless/rt2x00/rt2800usb.c           |    1 +
 drivers/net/wireless/rtlwifi/pci.c                |   18 ++-
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |   15 +-
 drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c |    2 +
 drivers/net/wireless/rtlwifi/rtl8192de/fw.c       |   14 +-
 drivers/net/wireless/rtlwifi/usb.c                |   12 +-
 drivers/rtc/interface.c                           |   20 ++-
 drivers/rtc/rtc-mpc5121.c                         |    2 +
 drivers/staging/rtl8712/Kconfig                   |    7 -
 drivers/staging/rtl8712/os_intfs.c                |    2 -
 drivers/staging/rtl8712/rtl871x_ioctl_linux.c     |    8 +-
 drivers/staging/rtl8712/rtl871x_sta_mgt.c         |    5 +-
 drivers/staging/rtl8712/sta_info.h                |    4 -
 drivers/staging/zcache/zcache-main.c              |    4 +-
 drivers/target/iscsi/iscsi_target.c               |   14 +-
 drivers/target/iscsi/iscsi_target_configfs.c      |    6 +-
 drivers/target/loopback/tcm_loop.c                |    6 +
 drivers/target/target_core_alua.c                 |    7 +-
 drivers/target/target_core_cdb.c                  |    2 +-
 drivers/target/target_core_device.c               |    6 +-
 drivers/target/tcm_fc/tfc_cmd.c                   |    6 +-
 drivers/tty/moxa.c                                |    2 +-
 drivers/tty/serial/amba-pl011.c                   |   15 +-
 drivers/tty/serial/sh-sci.c                       |   15 +-
 drivers/tty/vt/consolemap.c                       |   51 +++++-
 drivers/usb/class/cdc-wdm.c                       |   17 +-
 drivers/usb/dwc3/gadget.c                         |   24 ++-
 drivers/usb/gadget/f_subset.c                     |   34 ++--
 drivers/usb/gadget/fsl_udc_core.c                 |   18 +--
 drivers/usb/gadget/hid.c                          |    6 +-
 drivers/usb/gadget/inode.c                        |    2 +
 drivers/usb/host/ehci-fsl.c                       |    4 +
 drivers/usb/host/ehci-fsl.h                       |    1 +
 drivers/usb/host/fsl-mph-dr-of.c                  |    1 -
 drivers/usb/musb/musb_gadget.c                    |   18 +++
 drivers/usb/renesas_usbhs/mod_gadget.c            |    6 +
 drivers/usb/serial/cp210x.c                       |   44 +++++-
 drivers/usb/serial/ftdi_sio.c                     |   32 +++-
 drivers/usb/serial/ftdi_sio.h                     |    3 +-
 drivers/usb/serial/ftdi_sio_ids.h                 |   19 ++-
 drivers/usb/serial/generic.c                      |    4 +-
 drivers/usb/serial/mos7840.c                      |   83 +++++++---
 drivers/usb/serial/option.c                       |   16 ++
 drivers/usb/serial/qcserial.c                     |  109 ++++++++-----
 drivers/usb/storage/realtek_cr.c                  |    8 +-
 drivers/video/backlight/tosa_lcd.c                |    2 +-
 drivers/video/fbmem.c                             |   18 ++-
 drivers/video/udlfb.c                             |    2 +-
 drivers/video/uvesafb.c                           |   12 +-
 fs/cifs/cifsfs.c                                  |    8 +-
 fs/cifs/cifsglob.h                                |   10 +-
 fs/cifs/cifssmb.c                                 |    9 +-
 fs/cifs/connect.c                                 |   14 +-
 fs/cifs/dir.c                                     |    6 +-
 fs/cifs/file.c                                    |   23 +--
 fs/cifs/transport.c                               |    4 +-
 fs/dcache.c                                       |    3 +-
 fs/ext4/ext4.h                                    |    2 +
 fs/ext4/ext4_jbd2.h                               |   56 +++----
 fs/ext4/extents.c                                 |    2 +
 fs/ext4/fsync.c                                   |    2 +
 fs/ext4/inode.c                                   |   46 +++---
 fs/ext4/page-io.c                                 |   11 +-
 fs/hugetlbfs/inode.c                              |   25 ++-
 fs/jbd2/transaction.c                             |    2 +
 fs/lockd/svc.c                                    |    2 +-
 fs/nfs/callback_xdr.c                             |    4 +-
 fs/nfs/delegation.c                               |   11 ++
 fs/nfs/delegation.h                               |    1 +
 fs/nfs/nfs4_fs.h                                  |    3 +
 fs/nfs/nfs4proc.c                                 |   64 +++++---
 fs/nfs/nfs4state.c                                |   33 +++-
 fs/proc/namespaces.c                              |    2 +-
 fs/proc/proc_sysctl.c                             |   17 +-
 fs/proc/task_mmu.c                                |    9 ++
 fs/sysfs/inode.c                                  |   11 +-
 fs/udf/file.c                                     |    2 -
 fs/xfs/xfs_iget.c                                 |   18 ++-
 fs/xfs/xfs_log_recover.c                          |   33 ++--
 include/asm-generic/pgtable.h                     |   61 ++++++++
 include/asm-generic/unistd.h                      |    2 +-
 include/linux/fb.h                                |    1 +
 include/linux/math64.h                            |    4 +
 include/linux/rtc.h                               |    3 +-
 kernel/futex.c                                    |   19 ++-
 kernel/irq/chip.c                                 |    3 +-
 kernel/irq/manage.c                               |    2 +-
 kernel/module.c                                   |    3 +-
 kernel/power/hibernate.c                          |    7 +-
 kernel/time/ntp.c                                 |    2 +-
 lib/kobject_uevent.c                              |   19 ++-
 mm/bootmem.c                                      |    5 +-
 mm/memcontrol.c                                   |    4 +
 mm/memory.c                                       |   16 +-
 mm/mempolicy.c                                    |    2 +-
 mm/mincore.c                                      |    2 +-
 mm/pagewalk.c                                     |    2 +-
 mm/slub.c                                         |    3 +-
 mm/sparse.c                                       |   30 ++--
 mm/swapfile.c                                     |    4 +-
 net/core/dev.c                                    |    3 +-
 net/core/rtnetlink.c                              |    2 +
 net/ipv6/ip6_output.c                             |   11 +-
 net/ipv6/route.c                                  |    8 +-
 net/l2tp/l2tp_ppp.c                               |    2 +-
 net/rds/send.c                                    |    1 -
 net/sunrpc/cache.c                                |    2 +
 net/sunrpc/sched.c                                |   15 +-
 net/xfrm/xfrm_replay.c                            |    6 +-
 security/integrity/ima/Kconfig                    |    2 +-
 sound/pci/hda/hda_eld.c                           |    4 +-
 sound/soc/fsl/p1022_ds.c                          |   24 ++-
 sound/soc/pxa/pxa-ssp.c                           |   61 +++++---
 169 files changed, 1618 insertions(+), 797 deletions(-)


^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
  2012-03-30 19:49 ` [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page Greg KH
@ 2012-03-30 21:30   ` Florian Tobias Schandinat
  2012-03-31 18:03     ` Greg KH
  0 siblings, 1 reply; 171+ messages in thread
From: Florian Tobias Schandinat @ 2012-03-30 21:30 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel, stable, torvalds, akpm, alan, Wang YanQing

Hi Greg,

On 03/30/2012 07:49 PM, Greg KH wrote:
> 3.2-stable review patch.  If anyone has any objections, please let me know.

the same as for 3.3: This patch would require exporting
'pcibios_enabled' to not break building uvesafb as a module. As Alan did
not agree with this approach it is not suitable for stable as is.


Best regards,

Florian Tobias Schandinat

> 
> ------------------
> 
> From: Wang YanQing <udknight@gmail.com>
> 
> commit ec0d22e4d563e7cce9f6678e2000900755c2989d upstream.
> 
> This patch fixes the oops below
> 
> [   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0
> [   81.609384] uvesafb: protected mode interface info at c000:d350
> [   81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e
> [   81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
> [   81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers
> [   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used
> [   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915
> [   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
> [   81.744153] BUG: unable to handle kernel paging request at c00cd3b3
> [   81.744159] IP: [<c00cd3b3>] 0xc00cd3b2
> [   81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163
> [   81.744171] Oops: 0011 [#1] SMP
> [   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect
> [   81.744178]
> [   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741
> [   81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0
> [   81.744187] EIP is at 0xc00cd3b3
> [   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000
> [   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00
> [   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> [   81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000)
> [   81.744196] Stack:
> [   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0
> [   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000
> [   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400
> [   81.744210] Call Trace:
> [   81.744215]  [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb]
> [   81.744222]  [<c124a9bc>] fb_pan_display+0x10c/0x160
> [   81.744226]  [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]
> [   81.744230]  [<c12598dd>] bit_update_start+0x1d/0x50
> [   81.744232]  [<c1255efe>] fbcon_switch+0x39e/0x550
> [   81.744235]  [<c125a21a>] ? bit_cursor+0x4ea/0x560
> [   81.744240]  [<c129b6cb>] redraw_screen+0x12b/0x220
> [   81.744245]  [<c128843b>] ? tty_do_resize+0x3b/0xc0
> [   81.744247]  [<c129ef42>] vc_do_resize+0x3d2/0x3e0
> [   81.744250]  [<c129efb4>] vc_resize+0x14/0x20
> [   81.744253]  [<c12586bd>] fbcon_init+0x29d/0x500
> [   81.744255]  [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110
> [   81.744258]  [<c129b378>] visual_init+0xb8/0x150
> [   81.744261]  [<c129c16c>] bind_con_driver+0x16c/0x360
> [   81.744264]  [<c129b47e>] ? register_con_driver+0x6e/0x190
> [   81.744267]  [<c129c3a1>] take_over_console+0x41/0x50
> [   81.744269]  [<c1257b7a>] fbcon_takeover+0x6a/0xd0
> [   81.744272]  [<c12594b8>] fbcon_event_notify+0x758/0x790
> [   81.744277]  [<c10929e2>] notifier_call_chain+0x42/0xb0
> [   81.744280]  [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90
> [   81.744283]  [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20
> [   81.744285]  [<c124a5a1>] fb_notifier_call_chain+0x11/0x20
> [   81.744288]  [<c124b759>] register_framebuffer+0x1d9/0x2b0
> [   81.744293]  [<c1061c73>] ? ioremap_wc+0x33/0x40
> [   81.744298]  [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb]
> [   81.744302]  [<c12bb81f>] platform_drv_probe+0xf/0x20
> [   81.744306]  [<c12ba558>] driver_probe_device+0x68/0x170
> [   81.744309]  [<c12ba731>] __device_attach+0x41/0x50
> [   81.744313]  [<c12b9088>] bus_for_each_drv+0x48/0x70
> [   81.744316]  [<c12ba7f3>] device_attach+0x83/0xa0
> [   81.744319]  [<c12ba6f0>] ? __driver_attach+0x90/0x90
> [   81.744321]  [<c12b991f>] bus_probe_device+0x6f/0x90
> [   81.744324]  [<c12b8a45>] device_add+0x5e5/0x680
> [   81.744329]  [<c122a1a3>] ? kvasprintf+0x43/0x60
> [   81.744332]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
> [   81.744335]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
> [   81.744339]  [<c12bbe9f>] platform_device_add+0xff/0x1b0
> [   81.744343]  [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb]
> [   81.744346]  [<c100111f>] do_one_initcall+0x2f/0x170
> [   81.744350]  [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]
> [   81.744355]  [<c10c6994>] sys_init_module+0xf4/0x1410
> [   81.744359]  [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30
> [   81.744363]  [<c144cb10>] sysenter_do_call+0x12/0x36
> [   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66
> [   81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00
> [   81.744391] CR2: 00000000c00cd3b3
> [   81.744393] ---[ end trace 18b2c87c925b54d6 ]---
> 
> Signed-off-by: Wang YanQing <udknight@gmail.com>
> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> ---
>  drivers/video/uvesafb.c |   12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> --- a/drivers/video/uvesafb.c
> +++ b/drivers/video/uvesafb.c
> @@ -23,6 +23,7 @@
>  #include <video/uvesafb.h>
>  #ifdef CONFIG_X86
>  #include <video/vga.h>
> +#include <linux/pci.h>
>  #endif
>  #ifdef CONFIG_MTRR
>  #include <asm/mtrr.h>
> @@ -815,8 +816,15 @@ static int __devinit uvesafb_vbe_init(st
>  	par->pmi_setpal = pmi_setpal;
>  	par->ypan = ypan;
>  
> -	if (par->pmi_setpal || par->ypan)
> -		uvesafb_vbe_getpmi(task, par);
> +	if (par->pmi_setpal || par->ypan) {
> +		if (pcibios_enabled) {
> +			uvesafb_vbe_getpmi(task, par);
> +		} else {
> +			par->pmi_setpal = par->ypan = 0;
> +			printk(KERN_WARNING "uvesafb: PCI BIOS area is NX."
> +				"Can't use protected mode interface\n");
> +		}
> +	}
>  #else
>  	/* The protected mode interface is not available on non-x86. */
>  	par->pmi_setpal = par->ypan = 0;
> 
> 
> 


^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
  2012-03-30 21:30   ` Florian Tobias Schandinat
@ 2012-03-31 18:03     ` Greg KH
  2012-03-31 20:37       ` Alan Cox
  0 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-03-31 18:03 UTC (permalink / raw)
  To: Florian Tobias Schandinat
  Cc: linux-kernel, stable, torvalds, akpm, alan, Wang YanQing

On Fri, Mar 30, 2012 at 09:30:52PM +0000, Florian Tobias Schandinat wrote:
> Hi Greg,
> 
> On 03/30/2012 07:49 PM, Greg KH wrote:
> > 3.2-stable review patch.  If anyone has any objections, please let me know.
> 
> the same as for 3.3: This patch would require exporting
> 'pcibios_enabled' to not break building uvesafb as a module. As Alan did
> not agree with this approach it is not suitable for stable as is.

Oops, sorry about that, now removed, thanks for letting me know.

greg k-h

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
  2012-03-31 18:03     ` Greg KH
@ 2012-03-31 20:37       ` Alan Cox
  2012-03-31 21:11         ` Florian Tobias Schandinat
  0 siblings, 1 reply; 171+ messages in thread
From: Alan Cox @ 2012-03-31 20:37 UTC (permalink / raw)
  To: Greg KH
  Cc: Florian Tobias Schandinat, linux-kernel, stable, torvalds, akpm,
	Wang YanQing

On Sat, 31 Mar 2012 11:03:17 -0700
Greg KH <gregkh@linuxfoundation.org> wrote:

> On Fri, Mar 30, 2012 at 09:30:52PM +0000, Florian Tobias Schandinat wrote:
> > Hi Greg,
> > 
> > On 03/30/2012 07:49 PM, Greg KH wrote:
> > > 3.2-stable review patch.  If anyone has any objections, please let me know.
> > 
> > the same as for 3.3: This patch would require exporting
> > 'pcibios_enabled' to not break building uvesafb as a module. As Alan did
> > not agree with this approach it is not suitable for stable as is.
> 
> Oops, sorry about that, now removed, thanks for letting me know.

Actually for the backport its probably the right thing to do - its
simple, clear and slightly ugly, but its fairly provably safe.

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page
  2012-03-31 20:37       ` Alan Cox
@ 2012-03-31 21:11         ` Florian Tobias Schandinat
  0 siblings, 0 replies; 171+ messages in thread
From: Florian Tobias Schandinat @ 2012-03-31 21:11 UTC (permalink / raw)
  To: Alan Cox; +Cc: Greg KH, linux-kernel, stable, torvalds, akpm, Wang YanQing

On 03/31/2012 08:37 PM, Alan Cox wrote:
> On Sat, 31 Mar 2012 11:03:17 -0700
> Greg KH <gregkh@linuxfoundation.org> wrote:
> 
>> On Fri, Mar 30, 2012 at 09:30:52PM +0000, Florian Tobias Schandinat wrote:
>>> Hi Greg,
>>>
>>> On 03/30/2012 07:49 PM, Greg KH wrote:
>>>> 3.2-stable review patch.  If anyone has any objections, please let me know.
>>>
>>> the same as for 3.3: This patch would require exporting
>>> 'pcibios_enabled' to not break building uvesafb as a module. As Alan did
>>> not agree with this approach it is not suitable for stable as is.
>>
>> Oops, sorry about that, now removed, thanks for letting me know.
> 
> Actually for the backport its probably the right thing to do - its
> simple, clear and slightly ugly, but its fairly provably safe.

Is there a problem with using your preferred solution
"__supported_pte_mask & _PAGE_NX" here?
As far as I can see it should work since 2008.


Best regards,

Florian Tobias Schandinat

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 032/149] USB: qcserial: add several new serial devices
  2012-03-30 19:49 ` [ 032/149] USB: qcserial: add several new serial devices Greg KH
@ 2012-04-01 16:00   ` Ben Hutchings
  2012-04-02 16:24     ` Greg KH
  0 siblings, 1 reply; 171+ messages in thread
From: Ben Hutchings @ 2012-04-01 16:00 UTC (permalink / raw)
  To: Greg KH; +Cc: linux-kernel, stable, torvalds, akpm, alan, Thomas Tuttle

[-- Attachment #1: Type: text/plain, Size: 1228 bytes --]

On Fri, 2012-03-30 at 12:49 -0700, Greg KH wrote:
> 3.2-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Thomas Tuttle <ttuttle@chromium.org>
> 
> commit 2db4d87070e87d198ab630e66a898b45eff316d9 upstream.
> 
> Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> 
> ---
>  drivers/usb/serial/qcserial.c |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> --- a/drivers/usb/serial/qcserial.c
> +++ b/drivers/usb/serial/qcserial.c
> @@ -36,6 +36,11 @@ static const struct usb_device_id id_tab
>  	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
>  	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
>  	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
> +	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
[...]

This one is already claimed by option as:

	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) }

Seems there's some confusion here...

Ben.

-- 
Ben Hutchings
I'm always amazed by the number of people who take up solipsism because
they heard someone else explain it. - E*Borg on alt.fan.pratchett

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 131/149] NFSv4.1: Fix layoutcommit error handling
  2012-03-30 19:50 ` [ 131/149] NFSv4.1: Fix layoutcommit error handling Greg KH
@ 2012-04-01 21:23   ` Ben Hutchings
  2012-04-01 23:59     ` Myklebust, Trond
  0 siblings, 1 reply; 171+ messages in thread
From: Ben Hutchings @ 2012-04-01 21:23 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-kernel, stable, torvalds, akpm, alan, Greg KH

[-- Attachment #1: Type: text/plain, Size: 2519 bytes --]

On Fri, 2012-03-30 at 12:50 -0700, Greg KH wrote:
> 3.2-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Trond Myklebust <Trond.Myklebust@netapp.com>
> 
> commit e59d27e05a6435f8c04d5ad843f37fa795f2eaaa upstream.
> 
> Firstly, task->tk_status will always return negative error values,
> so the current tests for 'NFS4ERR_DELEG_REVOKED' etc. are all being
> ignored.
> Secondly, clean up the code so that we only need to test
> task->tk_status once!
> 
> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> 
> ---
>  fs/nfs/nfs4proc.c |   25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -5983,21 +5983,22 @@ nfs4_layoutcommit_done(struct rpc_task *
>  		return;
>  
>  	switch (task->tk_status) { /* Just ignore these failures */
> -	case NFS4ERR_DELEG_REVOKED: /* layout was recalled */
> -	case NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
> -	case NFS4ERR_BADLAYOUT:     /* no layout */
> -	case NFS4ERR_GRACE:	    /* loca_recalim always false */
> +	case -NFS4ERR_DELEG_REVOKED: /* layout was recalled */
> +	case -NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
> +	case -NFS4ERR_BADLAYOUT:     /* no layout */
> +	case -NFS4ERR_GRACE:	    /* loca_recalim always false */
>  		task->tk_status = 0;
> -	}
> -
> -	if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
> -		rpc_restart_call_prepare(task);
> -		return;
> -	}
> -
> -	if (task->tk_status == 0)
> +		break;

It loooks like the previous intent was that for all those specific error
codes we would end up calling nfs_post_op_update_inode_force_wcc().
That didn't happen because of the incorrectly signed error codes.  But
it still won't happen now, because of this break.  Do we really want to
break here or fall through past 'case 0'?

Ben.

> +	case 0:
>  		nfs_post_op_update_inode_force_wcc(data->args.inode,
>  						   data->res.fattr);
> +		break;
> +	default:
> +		if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
> +			rpc_restart_call_prepare(task);
> +			return;
> +		}
> +	}
>  }
>  
>  static void nfs4_layoutcommit_release(void *calldata)

-- 
Ben Hutchings
I'm always amazed by the number of people who take up solipsism because
they heard someone else explain it. - E*Borg on alt.fan.pratchett

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 131/149] NFSv4.1: Fix layoutcommit error handling
  2012-04-01 21:23   ` Ben Hutchings
@ 2012-04-01 23:59     ` Myklebust, Trond
  0 siblings, 0 replies; 171+ messages in thread
From: Myklebust, Trond @ 2012-04-01 23:59 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: Myklebust, Trond, <linux-kernel@vger.kernel.org>,
	<stable@vger.kernel.org>,
	<torvalds@linux-foundation.org>,
	<akpm@linux-foundation.org>,
	<alan@lxorguk.ukuu.org.uk>,
	Greg KH


On Apr 1, 2012, at 2:23 PM, Ben Hutchings wrote:

> On Fri, 2012-03-30 at 12:50 -0700, Greg KH wrote:
>> 3.2-stable review patch.  If anyone has any objections, please let me know.
>> 
>> ------------------
>> 
>> From: Trond Myklebust <Trond.Myklebust@netapp.com>
>> 
>> commit e59d27e05a6435f8c04d5ad843f37fa795f2eaaa upstream.
>> 
>> Firstly, task->tk_status will always return negative error values,
>> so the current tests for 'NFS4ERR_DELEG_REVOKED' etc. are all being
>> ignored.
>> Secondly, clean up the code so that we only need to test
>> task->tk_status once!
>> 
>> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> 
>> ---
>> fs/nfs/nfs4proc.c |   25 +++++++++++++------------
>> 1 file changed, 13 insertions(+), 12 deletions(-)
>> 
>> --- a/fs/nfs/nfs4proc.c
>> +++ b/fs/nfs/nfs4proc.c
>> @@ -5983,21 +5983,22 @@ nfs4_layoutcommit_done(struct rpc_task *
>> 		return;
>> 
>> 	switch (task->tk_status) { /* Just ignore these failures */
>> -	case NFS4ERR_DELEG_REVOKED: /* layout was recalled */
>> -	case NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
>> -	case NFS4ERR_BADLAYOUT:     /* no layout */
>> -	case NFS4ERR_GRACE:	    /* loca_recalim always false */
>> +	case -NFS4ERR_DELEG_REVOKED: /* layout was recalled */
>> +	case -NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
>> +	case -NFS4ERR_BADLAYOUT:     /* no layout */
>> +	case -NFS4ERR_GRACE:	    /* loca_recalim always false */
>> 		task->tk_status = 0;
>> -	}
>> -
>> -	if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
>> -		rpc_restart_call_prepare(task);
>> -		return;
>> -	}
>> -
>> -	if (task->tk_status == 0)
>> +		break;
> 
> It loooks like the previous intent was that for all those specific error
> codes we would end up calling nfs_post_op_update_inode_force_wcc().
> That didn't happen because of the incorrectly signed error codes.  But
> it still won't happen now, because of this break.  Do we really want to
> break here or fall through past 'case 0'?
> 

The 'break' there is deliberate. If the LAYOUTCOMMIT gets an error, then the server will never get to process the post-op GETATTR.

Trond

> Ben.
> 
>> +	case 0:
>> 		nfs_post_op_update_inode_force_wcc(data->args.inode,
>> 						   data->res.fattr);
>> +		break;
>> +	default:
>> +		if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
>> +			rpc_restart_call_prepare(task);
>> +			return;
>> +		}
>> +	}
>> }
>> 
>> static void nfs4_layoutcommit_release(void *calldata)
> 
> -- 
> Ben Hutchings
> I'm always amazed by the number of people who take up solipsism because
> they heard someone else explain it. - E*Borg on alt.fan.pratchett


^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [ 032/149] USB: qcserial: add several new serial devices
  2012-04-01 16:00   ` Ben Hutchings
@ 2012-04-02 16:24     ` Greg KH
  0 siblings, 0 replies; 171+ messages in thread
From: Greg KH @ 2012-04-02 16:24 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: linux-kernel, stable, torvalds, akpm, alan, Thomas Tuttle

On Sun, Apr 01, 2012 at 05:00:15PM +0100, Ben Hutchings wrote:
> On Fri, 2012-03-30 at 12:49 -0700, Greg KH wrote:
> > 3.2-stable review patch.  If anyone has any objections, please let me know.
> > 
> > ------------------
> > 
> > From: Thomas Tuttle <ttuttle@chromium.org>
> > 
> > commit 2db4d87070e87d198ab630e66a898b45eff316d9 upstream.
> > 
> > Signed-off-by: Thomas Tuttle <ttuttle@chromium.org>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> > 
> > ---
> >  drivers/usb/serial/qcserial.c |   14 ++++++++++++++
> >  1 file changed, 14 insertions(+)
> > 
> > --- a/drivers/usb/serial/qcserial.c
> > +++ b/drivers/usb/serial/qcserial.c
> > @@ -36,6 +36,11 @@ static const struct usb_device_id id_tab
> >  	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
> >  	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
> >  	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
> > +	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
> [...]
> 
> This one is already claimed by option as:
> 
> 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) }
> 
> Seems there's some confusion here...

Yes, but that's what is in Linus's tree right now, right?

One of them should be removed, but I don't know which one :(

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 171+ messages in thread

* [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-03-30 19:49 ` [ 049/149] rtc: Disable the alarm in the hardware (v2) Greg KH
@ 2012-11-05  9:11   ` Jonathan Nieder
  2012-11-05 10:13     ` Greg KH
  0 siblings, 1 reply; 171+ messages in thread
From: Jonathan Nieder @ 2012-11-05  9:11 UTC (permalink / raw)
  To: Greg KH
  Cc: linux-kernel, stable, torvalds, akpm, alan, John Stultz,
	Rabin Vincent, Janne Boman, Heinz Wiesinger, rtc-linux

Hi,

In March, Greg KH wrote:

> 3.2-stable review patch.  If anyone has any objections, please let me know.

Sorry, I'm a little late.  This seems to be causing spurious wakeups
after shutdown on some systems just like v1 did. :/

Janne Boman reports[1], using an HP EliteBook 8530w:

| I'm unable to shutdown my system via normal means. The system
| completes the shutdown process, all hardware lights are off, but then
| somehow it restarts.

Based on a quick web search, Heinz Wiesinger, using the same model,
ran into the same problem and bisected it to this patch:

  https://bugzilla.kernel.org/show_bug.cgi?id=44261

Janne confirmed the same by testing kernels closely based on 3.2.13
and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
was also affected.

Known problem?  An acpidump and kernel log can be found at [2].

Looking forward to your thoughts,
Jonathan

[1] http://bugs.debian.org/691902
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=78;bug=691902

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-11-05  9:11   ` [regression] " Jonathan Nieder
@ 2012-11-05 10:13     ` Greg KH
  2012-11-05 22:55       ` Heinz Wiesinger
  0 siblings, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-11-05 10:13 UTC (permalink / raw)
  To: Jonathan Nieder
  Cc: linux-kernel, stable, torvalds, akpm, alan, John Stultz,
	Rabin Vincent, Janne Boman, Heinz Wiesinger, rtc-linux

On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> Hi,
> 
> In March, Greg KH wrote:
> 
> > 3.2-stable review patch.  If anyone has any objections, please let me know.
> 
> Sorry, I'm a little late.  This seems to be causing spurious wakeups
> after shutdown on some systems just like v1 did. :/
> 
> Janne Boman reports[1], using an HP EliteBook 8530w:
> 
> | I'm unable to shutdown my system via normal means. The system
> | completes the shutdown process, all hardware lights are off, but then
> | somehow it restarts.
> 
> Based on a quick web search, Heinz Wiesinger, using the same model,
> ran into the same problem and bisected it to this patch:
> 
>   https://bugzilla.kernel.org/show_bug.cgi?id=44261
> 
> Janne confirmed the same by testing kernels closely based on 3.2.13
> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
> was also affected.

So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
if this is still an issue in Linus's tree would be the best thing to do
first.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-11-05 10:13     ` Greg KH
@ 2012-11-05 22:55       ` Heinz Wiesinger
  2012-11-06  2:12         ` Greg KH
  2012-12-03 23:14         ` John Stultz
  0 siblings, 2 replies; 171+ messages in thread
From: Heinz Wiesinger @ 2012-11-05 22:55 UTC (permalink / raw)
  To: Greg KH
  Cc: Jonathan Nieder, linux-kernel, stable, torvalds, akpm, alan,
	John Stultz, Rabin Vincent, Janne Boman, rtc-linux

On Monday 05 November 2012 11:13:31 Greg KH wrote:
> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> > Hi,
> > 
> > In March, Greg KH wrote:
> > > 3.2-stable review patch.  If anyone has any objections, please let me
> > > know.
> > 
> > Sorry, I'm a little late.  This seems to be causing spurious wakeups
> > after shutdown on some systems just like v1 did. :/
> > 
> > Janne Boman reports[1], using an HP EliteBook 8530w:
> > | I'm unable to shutdown my system via normal means. The system
> > | completes the shutdown process, all hardware lights are off, but then
> > | somehow it restarts.
> > 
> > Based on a quick web search, Heinz Wiesinger, using the same model,
> > 
> > ran into the same problem and bisected it to this patch:
> >   https://bugzilla.kernel.org/show_bug.cgi?id=44261
> > 
> > Janne confirmed the same by testing kernels closely based on 3.2.13
> > and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> > now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
> > was also affected.
> 
> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
> if this is still an issue in Linus's tree would be the best thing to do
> first.

I checked 3.7-rc4 and the issue is still there. Should I still test the other 
versions as well? I can do so but it might take a bit.

If you need anything else, I'll be happy to help wherever I can.

Grs,
Heinz

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-11-05 22:55       ` Heinz Wiesinger
@ 2012-11-06  2:12         ` Greg KH
  2012-11-13 10:29           ` Rabin Vincent
  2012-12-03 23:14         ` John Stultz
  1 sibling, 1 reply; 171+ messages in thread
From: Greg KH @ 2012-11-06  2:12 UTC (permalink / raw)
  To: Heinz Wiesinger
  Cc: Jonathan Nieder, linux-kernel, stable, torvalds, akpm, alan,
	John Stultz, Rabin Vincent, Janne Boman, rtc-linux

On Mon, Nov 05, 2012 at 11:55:32PM +0100, Heinz Wiesinger wrote:
> On Monday 05 November 2012 11:13:31 Greg KH wrote:
> > On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> > > Hi,
> > > 
> > > In March, Greg KH wrote:
> > > > 3.2-stable review patch.  If anyone has any objections, please let me
> > > > know.
> > > 
> > > Sorry, I'm a little late.  This seems to be causing spurious wakeups
> > > after shutdown on some systems just like v1 did. :/
> > > 
> > > Janne Boman reports[1], using an HP EliteBook 8530w:
> > > | I'm unable to shutdown my system via normal means. The system
> > > | completes the shutdown process, all hardware lights are off, but then
> > > | somehow it restarts.
> > > 
> > > Based on a quick web search, Heinz Wiesinger, using the same model,
> > > 
> > > ran into the same problem and bisected it to this patch:
> > >   https://bugzilla.kernel.org/show_bug.cgi?id=44261
> > > 
> > > Janne confirmed the same by testing kernels closely based on 3.2.13
> > > and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> > > now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
> > > was also affected.
> > 
> > So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
> > if this is still an issue in Linus's tree would be the best thing to do
> > first.
> 
> I checked 3.7-rc4 and the issue is still there. Should I still test the other 
> versions as well? I can do so but it might take a bit.

No, that should be good enough, this needs to be fixed there first.

> If you need anything else, I'll be happy to help wherever I can.

Working with the developers involved would be great.  Anyone have any
patches that Heinz could test?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-11-06  2:12         ` Greg KH
@ 2012-11-13 10:29           ` Rabin Vincent
  0 siblings, 0 replies; 171+ messages in thread
From: Rabin Vincent @ 2012-11-13 10:29 UTC (permalink / raw)
  To: Greg KH
  Cc: Heinz Wiesinger, Jonathan Nieder, linux-kernel, stable, torvalds,
	akpm, alan, John Stultz, Janne Boman, rtc-linux, linux-acpi

2012/11/6 Greg KH <gregkh@linuxfoundation.org>:
> Working with the developers involved would be great.  Anyone have any
> patches that Heinz could test?

I've little idea why just disabling the RTC alarm would cause the system not
to shutdown.  Perhaps someone who understands ACPI or rtc-cmos.c can
shed some light?

For linux-acpi, the acpidump is linked to from here:
https://lkml.org/lkml/2012/11/5/81

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-11-05 22:55       ` Heinz Wiesinger
  2012-11-06  2:12         ` Greg KH
@ 2012-12-03 23:14         ` John Stultz
  2012-12-04 10:34           ` Heinz Wiesinger
  1 sibling, 1 reply; 171+ messages in thread
From: John Stultz @ 2012-12-03 23:14 UTC (permalink / raw)
  To: Heinz Wiesinger
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux

On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
> On Monday 05 November 2012 11:13:31 Greg KH wrote:
>> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
>>> Hi,
>>>
>>> In March, Greg KH wrote:
>>>> 3.2-stable review patch.  If anyone has any objections, please let me
>>>> know.
>>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
>>> after shutdown on some systems just like v1 did. :/
>>>
>>> Janne Boman reports[1], using an HP EliteBook 8530w:
>>> | I'm unable to shutdown my system via normal means. The system
>>> | completes the shutdown process, all hardware lights are off, but then
>>> | somehow it restarts.
>>>
>>> Based on a quick web search, Heinz Wiesinger, using the same model,
>>>
>>> ran into the same problem and bisected it to this patch:
>>>    https://bugzilla.kernel.org/show_bug.cgi?id=44261
>>>
>>> Janne confirmed the same by testing kernels closely based on 3.2.13
>>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
>>> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
>>> was also affected.
>> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
>> if this is still an issue in Linus's tree would be the best thing to do
>> first.
> I checked 3.7-rc4 and the issue is still there. Should I still test the other
> versions as well? I can do so but it might take a bit.
>
> If you need anything else, I'll be happy to help wherever I can.

Hey Heinz,
   Sorry for being slow to respond to this, I was on leave when it 
arrived, and it got buried under other items.

This is peculiar.  I'm guessing something quirky with your hardware is 
causing the alarm irq to trigger shortly after we supposedly disable it. 
Could you send me your dmesg and kernel config?

After that I'll likely have to send you some debugging instructions 
(commenting out various lines) to try to figure out what exactly is 
triggering it.

Sorry for the trouble!

thanks
-john




^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-12-03 23:14         ` John Stultz
@ 2012-12-04 10:34           ` Heinz Wiesinger
  2012-12-04 18:34             ` John Stultz
  0 siblings, 1 reply; 171+ messages in thread
From: Heinz Wiesinger @ 2012-12-04 10:34 UTC (permalink / raw)
  To: John Stultz
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux

[-- Attachment #1: Type: text/plain, Size: 2543 bytes --]

On Monday 03 December 2012 15:14:12 you wrote:
> On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
> > On Monday 05 November 2012 11:13:31 Greg KH wrote:
> >> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> >>> Hi,
> >>> 
> >>> In March, Greg KH wrote:
> >>>> 3.2-stable review patch.  If anyone has any objections, please let me
> >>>> know.
> >>> 
> >>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
> >>> after shutdown on some systems just like v1 did. :/
> >>> 
> >>> Janne Boman reports[1], using an HP EliteBook 8530w:
> >>> | I'm unable to shutdown my system via normal means. The system
> >>> | completes the shutdown process, all hardware lights are off, but then
> >>> | somehow it restarts.
> >>> 
> >>> Based on a quick web search, Heinz Wiesinger, using the same model,
> >>> 
> >>> ran into the same problem and bisected it to this patch:
> >>>    https://bugzilla.kernel.org/show_bug.cgi?id=44261
> >>> 
> >>> Janne confirmed the same by testing kernels closely based on 3.2.13
> >>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> >>> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
> >>> was also affected.
> >> 
> >> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
> >> if this is still an issue in Linus's tree would be the best thing to do
> >> first.
> > 
> > I checked 3.7-rc4 and the issue is still there. Should I still test the
> > other versions as well? I can do so but it might take a bit.
> > 
> > If you need anything else, I'll be happy to help wherever I can.
> 
> Hey Heinz,
>    Sorry for being slow to respond to this, I was on leave when it
> arrived, and it got buried under other items.
> 
> This is peculiar.  I'm guessing something quirky with your hardware is
> causing the alarm irq to trigger shortly after we supposedly disable it.
> Could you send me your dmesg and kernel config?
> 
> After that I'll likely have to send you some debugging instructions
> (commenting out various lines) to try to figure out what exactly is
> triggering it.
> 
> Sorry for the trouble!

Hey John,

Don't worry, I know how it is to be busy.

For the dmesg/kernel config is it fine if I send you the one from 3.7-rc4 or 
should I update to a more recent version?

I've also now seen this behaviour on another notebook with completely different 
hardware (Asus VX1). I can send you dmesg output from that one too if you 
want. Kernel config should be almost identical, but it's running 3.2.29 still.

Grs,
Heinz

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-12-04 10:34           ` Heinz Wiesinger
@ 2012-12-04 18:34             ` John Stultz
  2012-12-08 11:10               ` Heinz Wiesinger
  0 siblings, 1 reply; 171+ messages in thread
From: John Stultz @ 2012-12-04 18:34 UTC (permalink / raw)
  To: Heinz Wiesinger
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux

On 12/04/2012 02:34 AM, Heinz Wiesinger wrote:
> On Monday 03 December 2012 15:14:12 you wrote:
>> On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
>>> On Monday 05 November 2012 11:13:31 Greg KH wrote:
>>>> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
>>>>> Hi,
>>>>>
>>>>> In March, Greg KH wrote:
>>>>>> 3.2-stable review patch.  If anyone has any objections, please let me
>>>>>> know.
>>>>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
>>>>> after shutdown on some systems just like v1 did. :/
>>>>>
>>>>> Janne Boman reports[1], using an HP EliteBook 8530w:
>>>>> | I'm unable to shutdown my system via normal means. The system
>>>>> | completes the shutdown process, all hardware lights are off, but then
>>>>> | somehow it restarts.
>>>>>
>>>>> Based on a quick web search, Heinz Wiesinger, using the same model,
>>>>>
>>>>> ran into the same problem and bisected it to this patch:
>>>>>     https://bugzilla.kernel.org/show_bug.cgi?id=44261
>>>>>
>>>>> Janne confirmed the same by testing kernels closely based on 3.2.13
>>>>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
>>>>> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
>>>>> was also affected.
>>>> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
>>>> if this is still an issue in Linus's tree would be the best thing to do
>>>> first.
>>> I checked 3.7-rc4 and the issue is still there. Should I still test the
>>> other versions as well? I can do so but it might take a bit.
>>>
>>> If you need anything else, I'll be happy to help wherever I can.
>> Hey Heinz,
>>     Sorry for being slow to respond to this, I was on leave when it
>> arrived, and it got buried under other items.
>>
>> This is peculiar.  I'm guessing something quirky with your hardware is
>> causing the alarm irq to trigger shortly after we supposedly disable it.
>> Could you send me your dmesg and kernel config?
>>
>> After that I'll likely have to send you some debugging instructions
>> (commenting out various lines) to try to figure out what exactly is
>> triggering it.
>>
>> Sorry for the trouble!
> Hey John,
>
> Don't worry, I know how it is to be busy.
>
> For the dmesg/kernel config is it fine if I send you the one from 3.7-rc4 or
> should I update to a more recent version?
3.7-rc4 is fine.

> I've also now seen this behaviour on another notebook with completely different
> hardware (Asus VX1). I can send you dmesg output from that one too if you
> want. Kernel config should be almost identical, but it's running 3.2.29 still.
Yea, dmesg there would be good as well.

thanks
-john


^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-12-04 18:34             ` John Stultz
@ 2012-12-08 11:10               ` Heinz Wiesinger
  2012-12-11  1:56                 ` John Stultz
  0 siblings, 1 reply; 171+ messages in thread
From: Heinz Wiesinger @ 2012-12-08 11:10 UTC (permalink / raw)
  To: John Stultz
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux


[-- Attachment #1.1: Type: text/plain, Size: 3021 bytes --]

On Tuesday 04 December 2012 10:34:39 John Stultz wrote:
> On 12/04/2012 02:34 AM, Heinz Wiesinger wrote:
> > On Monday 03 December 2012 15:14:12 you wrote:
> >> On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
> >>> On Monday 05 November 2012 11:13:31 Greg KH wrote:
> >>>> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> >>>>> Hi,
> >>>>> 
> >>>>> In March, Greg KH wrote:
> >>>>>> 3.2-stable review patch.  If anyone has any objections, please let me
> >>>>>> know.
> >>>>> 
> >>>>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
> >>>>> after shutdown on some systems just like v1 did. :/
> >>>>> 
> >>>>> Janne Boman reports[1], using an HP EliteBook 8530w:
> >>>>> | I'm unable to shutdown my system via normal means. The system
> >>>>> | completes the shutdown process, all hardware lights are off, but
> >>>>> | then
> >>>>> | somehow it restarts.
> >>>>> 
> >>>>> Based on a quick web search, Heinz Wiesinger, using the same model,
> >>>>> 
> >>>>> ran into the same problem and bisected it to this patch:
> >>>>>     https://bugzilla.kernel.org/show_bug.cgi?id=44261
> >>>>> 
> >>>>> Janne confirmed the same by testing kernels closely based on 3.2.13
> >>>>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> >>>>> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
> >>>>> was also affected.
> >>>> 
> >>>> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
> >>>> if this is still an issue in Linus's tree would be the best thing to do
> >>>> first.
> >>> 
> >>> I checked 3.7-rc4 and the issue is still there. Should I still test the
> >>> other versions as well? I can do so but it might take a bit.
> >>> 
> >>> If you need anything else, I'll be happy to help wherever I can.
> >> 
> >> Hey Heinz,
> >> 
> >>     Sorry for being slow to respond to this, I was on leave when it
> >> 
> >> arrived, and it got buried under other items.
> >> 
> >> This is peculiar.  I'm guessing something quirky with your hardware is
> >> causing the alarm irq to trigger shortly after we supposedly disable it.
> >> Could you send me your dmesg and kernel config?
> >> 
> >> After that I'll likely have to send you some debugging instructions
> >> (commenting out various lines) to try to figure out what exactly is
> >> triggering it.
> >> 
> >> Sorry for the trouble!
> > 
> > Hey John,
> > 
> > Don't worry, I know how it is to be busy.
> > 
> > For the dmesg/kernel config is it fine if I send you the one from 3.7-rc4
> > or should I update to a more recent version?
> 
> 3.7-rc4 is fine.
> 
> > I've also now seen this behaviour on another notebook with completely
> > different hardware (Asus VX1). I can send you dmesg output from that one
> > too if you want. Kernel config should be almost identical, but it's
> > running 3.2.29 still.
> Yea, dmesg there would be good as well.

Hey John,

Sorry for the delay. I was quite busy this week myself.
Please find the kernel config and dmesg output attached.

Grs,
Heinz

[-- Attachment #1.2: .config --]
[-- Type: text/x-mpsub, Size: 120852 bytes --]

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 3.7.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_GPIO=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
CONFIG_ARCH_CPU_PROBE_RELEASE=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_LZMA=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_DEFAULT_HOSTNAME="darkstar"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_FHANDLE is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y
# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_USER_QS is not set
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
# CONFIG_MEMCG is not set
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EXPERT is not set
CONFIG_HAVE_UID16=y
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_OPROFILE=m
# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_GENERIC_KERNEL_THREAD=y
CONFIG_GENERIC_KERNEL_EXECVE=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_RCU_USER_QS=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_MODULES_USE_ELF_RELA=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
CONFIG_OSF_PARTITION=y
CONFIG_AMIGA_PARTITION=y
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
CONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not set
CONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
CONFIG_KARMA_PARTITION=y
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
CONFIG_BLOCK_COMPAT=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_FREEZER=y

#
# Processor type and features
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
CONFIG_NO_BOOTMEM=y
CONFIG_MEMTEST=y
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_GART_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=32
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_I8K=m
CONFIG_MICROCODE=m
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DIRECT_GBPAGES=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_MEMORY_PROBE=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=98304
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_CLEANCACHE is not set
# CONFIG_FRONTSWAP is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
CONFIG_EFI=y
# CONFIG_EFI_STUB is not set
CONFIG_SECCOMP=y
CONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_HOTPLUG_CPU=y
CONFIG_COMPAT_VDSO=y
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y

#
# Power management and ACPI options
#
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION="\"\""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=100
CONFIG_PM_WAKELOCKS_GC=y
CONFIG_PM_RUNTIME=y
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_EC_DEBUGFS=m
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=m
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=m
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=m
CONFIG_ACPI_HOTPLUG_MEMORY=m
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
CONFIG_ACPI_BGRT=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_ACPI_APEI_ERST_DEBUG=m
CONFIG_SFI=y

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=m
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=m
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# x86 CPU frequency scaling drivers
#
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ=m
# CONFIG_X86_ACPI_CPUFREQ_CPB is not set
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m
CONFIG_X86_P4_CLOCKMOD=m

#
# shared options
#
CONFIG_X86_SPEEDSTEP_LIB=m
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
CONFIG_INTEL_IDLE=y

#
# Memory power savings
#
CONFIG_I7300_IDLE_IOAT_CHANNEL=y
CONFIG_I7300_IDLE=m

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=m
CONFIG_PCIEAER=y
# CONFIG_PCIE_ECRC is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=m
CONFIG_HT_IRQ=y
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_PRI is not set
# CONFIG_PCI_PASID is not set
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
CONFIG_PCCARD=m
CONFIG_PCMCIA=m
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_PCCARD_NONSTATIC=y
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=m
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
# CONFIG_HOTPLUG_PCI_CPCI is not set
CONFIG_HOTPLUG_PCI_SHPC=m
# CONFIG_RAPIDIO is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
CONFIG_X86_X32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_FIB_TRIE_STATS is not set
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not set
CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_INET_UDP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=m
CONFIG_IPV6_PRIVACY=y
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
CONFIG_INET6_XFRM_MODE_TUNNEL=m
CONFIG_INET6_XFRM_MODE_BEET=m
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
CONFIG_IPV6_SIT=m
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
# CONFIG_IPV6_GRE is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_NETLABEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_ACCT=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_ZONES=y
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
CONFIG_NF_CT_PROTO_DCCP=m
CONFIG_NF_CT_PROTO_GRE=m
CONFIG_NF_CT_PROTO_SCTP=m
CONFIG_NF_CT_PROTO_UDPLITE=m
CONFIG_NF_CONNTRACK_AMANDA=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_SNMP=m
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_CONNTRACK_SANE=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CONNTRACK_TFTP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NF_CT_NETLINK_TIMEOUT=m
# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set
CONFIG_NETFILTER_TPROXY=m
CONFIG_NETFILTER_XTABLES=m

#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_CONNMARK=m
CONFIG_NETFILTER_XT_SET=m

#
# Xtables targets
#
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_RATEEST=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m

#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MARK=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_RECENT=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_SOCKET=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_TIME=m
CONFIG_NETFILTER_XT_MATCH_U32=m
CONFIG_IP_SET=m
CONFIG_IP_SET_MAX=256
CONFIG_IP_SET_BITMAP_IP=m
CONFIG_IP_SET_BITMAP_IPMAC=m
CONFIG_IP_SET_BITMAP_PORT=m
CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12

#
# IPVS transport protocol load balancing support
#
CONFIG_IP_VS_PROTO_TCP=y
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y

#
# IPVS scheduler
#
CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m

#
# IPVS SH scheduler
#
CONFIG_IP_VS_SH_TAB_BITS=8

#
# IPVS application helper
#
CONFIG_IP_VS_NFCT=y
CONFIG_IP_VS_PE_SIP=m

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_ULOG=m
# CONFIG_NF_NAT_IPV4 is not set
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m

#
# IPv6: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
# CONFIG_NF_NAT_IPV6 is not set

#
# DECnet: Netfilter Configuration
#
# CONFIG_DECNET_NF_GRABULATOR is not set
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_IP6=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_BRIDGE_EBT_NFLOG=m
CONFIG_IP_DCCP=m
CONFIG_INET_DCCP_DIAG=m

#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP_CCID2_DEBUG is not set
# CONFIG_IP_DCCP_CCID3 is not set

#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not set
CONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not set
CONFIG_TIPC=m
# CONFIG_TIPC_ADVANCED is not set
CONFIG_ATM=m
CONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not set
CONFIG_ATM_LANE=m
CONFIG_ATM_MPOA=m
CONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not set
CONFIG_L2TP=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_V3=y
CONFIG_L2TP_IP=m
CONFIG_L2TP_ETH=m
CONFIG_STP=m
CONFIG_GARP=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_DECNET=m
# CONFIG_DECNET_ROUTER is not set
CONFIG_LLC=m
CONFIG_LLC2=m
CONFIG_IPX=m
# CONFIG_IPX_INTERN is not set
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
CONFIG_IPDDP=m
CONFIG_IPDDP_ENCAP=y
CONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
CONFIG_WAN_ROUTER=m
# CONFIG_PHONET is not set
CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
# CONFIG_CLS_U32_PERF is not set
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_IPSET=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=y
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_ACT_CSUM=m
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_BLA=y
# CONFIG_BATMAN_ADV_DEBUG is not set
CONFIG_OPENVSWITCH=m
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
CONFIG_NETPRIO_CGROUP=m
CONFIG_BQL=y
CONFIG_BPF_JIT=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_DROP_MONITOR is not set
CONFIG_HAMRADIO=y

#
# Packet Radio protocols
#
CONFIG_AX25=m
# CONFIG_AX25_DAMA_SLAVE is not set
CONFIG_NETROM=m
CONFIG_ROSE=m

#
# AX.25 network device drivers
#
CONFIG_MKISS=m
CONFIG_6PACK=m
CONFIG_BPQETHER=m
CONFIG_BAYCOM_SER_FDX=m
CONFIG_BAYCOM_SER_HDX=m
CONFIG_BAYCOM_PAR=m
CONFIG_YAM=m
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m

#
# CAN Device Drivers
#
CONFIG_CAN_VCAN=m
CONFIG_CAN_SLCAN=m
CONFIG_CAN_DEV=m
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_JANZ_ICAN3=m
CONFIG_PCH_CAN=m
CONFIG_CAN_SJA1000=m
CONFIG_CAN_SJA1000_ISA=m
CONFIG_CAN_SJA1000_PLATFORM=m
CONFIG_CAN_EMS_PCMCIA=m
CONFIG_CAN_EMS_PCI=m
CONFIG_CAN_PEAK_PCMCIA=m
CONFIG_CAN_PEAK_PCI=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_PLX_PCI=m
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m
CONFIG_CAN_C_CAN_PCI=m
CONFIG_CAN_CC770=m
CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m

#
# CAN USB interfaces
#
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
CONFIG_CAN_PEAK_USB=m
CONFIG_CAN_SOFTING=m
CONFIG_CAN_SOFTING_CS=m
# CONFIG_CAN_DEBUG_DEVICES is not set
CONFIG_IRDA=m

#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set

#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m

#
# Dongle support
#
CONFIG_DONGLE=y
CONFIG_ESI_DONGLE=m
CONFIG_ACTISYS_DONGLE=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TOIM3232_DONGLE=m
CONFIG_LITELINK_DONGLE=m
CONFIG_MA600_DONGLE=m
CONFIG_GIRBIL_DONGLE=m
CONFIG_MCP2120_DONGLE=m
CONFIG_OLD_BELKIN_DONGLE=m
CONFIG_ACT200L_DONGLE=m
CONFIG_KINGSUN_DONGLE=m
CONFIG_KSDAZZLE_DONGLE=m
CONFIG_KS959_DONGLE=m

#
# FIR device drivers
#
CONFIG_USB_IRDA=m
CONFIG_SIGMATEL_FIR=m
CONFIG_NSC_FIR=m
CONFIG_WINBOND_FIR=m
CONFIG_SMC_IRCC_FIR=m
CONFIG_ALI_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_VIA_FIR=m
CONFIG_MCS_FIR=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIUART_ATH3K=y
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_ATH3K=m
CONFIG_BT_WILINK=m
CONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_DEBUG is not set
CONFIG_RXKAD=m
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y
CONFIG_WEXT_SPY=y
CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=m
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_REG_DEBUG is not set
CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_CFG80211_DEBUGFS is not set
# CONFIG_CFG80211_INTERNAL_REGDB is not set
CONFIG_CFG80211_WEXT=y
CONFIG_LIB80211=m
CONFIG_LIB80211_CRYPT_WEP=m
CONFIG_LIB80211_CRYPT_CCMP=m
CONFIG_LIB80211_CRYPT_TKIP=m
# CONFIG_LIB80211_DEBUG is not set
CONFIG_MAC80211=m
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_MINSTREL_HT=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_DEBUGFS is not set
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_WIMAX=m
CONFIG_WIMAX_DEBUG_LEVEL=8
CONFIG_RFKILL=m
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_REGULATOR=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_NET_9P_RDMA=m
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
CONFIG_CEPH_LIB=m
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
CONFIG_NFC=m
CONFIG_NFC_NCI=m
CONFIG_NFC_HCI=m
# CONFIG_NFC_SHDLC is not set
# CONFIG_NFC_LLCP is not set

#
# Near Field Communication (NFC) devices
#
CONFIG_NFC_PN533=m
CONFIG_NFC_WILINK=m
CONFIG_HAVE_BPF_JIT=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y

#
# Bus devices
#
# CONFIG_OMAP_OCP2SCP is not set
CONFIG_CONNECTOR=m
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_REDBOOT_PARTS=m
CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
CONFIG_MTD_AR7_PARTS=m

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=m
CONFIG_HAVE_MTD_OTP=y
CONFIG_MTD_BLKDEVS=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_BLOCK_RO=m
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
CONFIG_RFD_FTL=m
CONFIG_SSFDC=m
CONFIG_SM_FTL=m
CONFIG_MTD_OOPS=m
CONFIG_MTD_SWAP=m

#
# RAM/ROM/Flash chip drivers
#
CONFIG_MTD_CFI=m
CONFIG_MTD_JEDECPROBE=m
CONFIG_MTD_GEN_PROBE=m
CONFIG_MTD_CFI_ADV_OPTIONS=y
CONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
CONFIG_MTD_CFI_GEOMETRY=y
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_MAP_BANK_WIDTH_8=y
CONFIG_MTD_MAP_BANK_WIDTH_16=y
CONFIG_MTD_MAP_BANK_WIDTH_32=y
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_I4=y
CONFIG_MTD_CFI_I8=y
CONFIG_MTD_OTP=y
CONFIG_MTD_CFI_INTELEXT=m
CONFIG_MTD_CFI_AMDSTD=m
CONFIG_MTD_CFI_STAA=m
CONFIG_MTD_CFI_UTIL=m
CONFIG_MTD_RAM=m
CONFIG_MTD_ROM=m
CONFIG_MTD_ABSENT=m

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_PHYSMAP=m
# CONFIG_MTD_PHYSMAP_COMPAT is not set
CONFIG_MTD_SC520CDP=m
CONFIG_MTD_NETSC520=m
CONFIG_MTD_TS5500=m
CONFIG_MTD_SBC_GXX=m
CONFIG_MTD_AMD76XROM=m
CONFIG_MTD_ICHXROM=m
CONFIG_MTD_ESB2ROM=m
CONFIG_MTD_CK804XROM=m
CONFIG_MTD_SCB2_FLASH=m
CONFIG_MTD_NETtel=m
CONFIG_MTD_L440GX=m
CONFIG_MTD_PCI=m
CONFIG_MTD_PCMCIA=m
# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
CONFIG_MTD_GPIO_ADDR=m
CONFIG_MTD_INTEL_VR_NOR=m
CONFIG_MTD_PLATRAM=m
CONFIG_MTD_LATCH_ADDR=m

#
# Self-contained MTD device drivers
#
CONFIG_MTD_PMC551=m
CONFIG_MTD_PMC551_BUGFIX=y
# CONFIG_MTD_PMC551_DEBUG is not set
CONFIG_MTD_SLRAM=m
CONFIG_MTD_PHRAM=m
CONFIG_MTD_MTDRAM=m
CONFIG_MTDRAM_TOTAL_SIZE=4096
CONFIG_MTDRAM_ERASE_SIZE=128
CONFIG_MTD_BLOCK2MTD=m

#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
CONFIG_MTD_DOC2001PLUS=m
CONFIG_MTD_DOCG3=m
CONFIG_BCH_CONST_M=14
CONFIG_BCH_CONST_T=4
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
CONFIG_MTD_DOCPROBE_ADVANCED=y
CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
CONFIG_MTD_DOCPROBE_HIGH=y
CONFIG_MTD_DOCPROBE_55AA=y
CONFIG_MTD_NAND_ECC=m
CONFIG_MTD_NAND_ECC_SMC=y
CONFIG_MTD_NAND=m
CONFIG_MTD_NAND_BCH=m
CONFIG_MTD_NAND_ECC_BCH=y
CONFIG_MTD_SM_COMMON=m
CONFIG_MTD_NAND_MUSEUM_IDS=y
CONFIG_MTD_NAND_DENALI=m
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
CONFIG_MTD_NAND_DISKONCHIP=m
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y
CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
CONFIG_MTD_NAND_DOCG4=m
CONFIG_MTD_NAND_CAFE=m
CONFIG_MTD_NAND_NANDSIM=m
CONFIG_MTD_NAND_PLATFORM=m
CONFIG_MTD_ALAUDA=m
CONFIG_MTD_ONENAND=m
CONFIG_MTD_ONENAND_VERIFY_WRITE=y
CONFIG_MTD_ONENAND_GENERIC=m
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
CONFIG_MTD_ONENAND_SIM=m

#
# LPDDR flash memory drivers
#
CONFIG_MTD_LPDDR=m
CONFIG_MTD_QINFO_PROBE=m
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
CONFIG_MTD_UBI_GLUEBI=m
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
CONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_FD=y
CONFIG_PARIDE=m

#
# Parallel IDE high-level drivers
#
CONFIG_PARIDE_PD=m
CONFIG_PARIDE_PCD=m
CONFIG_PARIDE_PF=m
CONFIG_PARIDE_PT=m
CONFIG_PARIDE_PG=m

#
# Parallel IDE protocol modules
#
CONFIG_PARIDE_ATEN=m
CONFIG_PARIDE_BPCK=m
CONFIG_PARIDE_COMM=m
CONFIG_PARIDE_DSTR=m
CONFIG_PARIDE_FIT2=m
CONFIG_PARIDE_FIT3=m
CONFIG_PARIDE_EPAT=m
CONFIG_PARIDE_EPATC8=y
CONFIG_PARIDE_EPIA=m
CONFIG_PARIDE_FRIQ=m
CONFIG_PARIDE_FRPW=m
CONFIG_PARIDE_KBIC=m
CONFIG_PARIDE_KTTI=m
CONFIG_PARIDE_ON20=m
CONFIG_PARIDE_ON26=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_BLK_CPQ_DA=m
CONFIG_BLK_CPQ_CISS_DA=m
CONFIG_CISS_SCSI_TAPE=y
CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_NVME=m
CONFIG_BLK_DEV_OSD=m
CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not set
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
CONFIG_ATA_OVER_ETH=m
CONFIG_VIRTIO_BLK=m
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_RBD=m

#
# Misc devices
#
CONFIG_SENSORS_LIS3LV02D=m
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
CONFIG_IBM_ASM=m
CONFIG_PHANTOM=m
CONFIG_INTEL_MID_PTI=m
CONFIG_SGI_IOC4=m
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
CONFIG_ICS932S401=m
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_CS5535_MFGPT=m
CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
CONFIG_CS5535_CLOCK_EVENT_SRC=m
CONFIG_HP_ILO=m
CONFIG_APDS9802ALS=m
CONFIG_ISL29003=m
CONFIG_ISL29020=m
CONFIG_SENSORS_TSL2550=m
CONFIG_SENSORS_BH1780=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_APDS990X=m
CONFIG_HMC6352=m
CONFIG_DS1682=m
CONFIG_VMWARE_BALLOON=m
CONFIG_BMP085=y
CONFIG_BMP085_I2C=m
CONFIG_PCH_PHUB=m
CONFIG_USB_SWITCH_FSA9480=m
# CONFIG_C2PORT is not set

#
# EEPROM support
#
CONFIG_EEPROM_AT24=m
CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EEPROM_93CX6=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
CONFIG_CB710_DEBUG_ASSUMPTIONS=y

#
# Texas Instruments shared transport line discipline
#
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m

#
# Altera FPGA firmware download module
#
CONFIG_ALTERA_STAPL=m
CONFIG_INTEL_MEI=m
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
CONFIG_RAID_ATTRS=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_TGT=y
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
CONFIG_CHR_DEV_OSST=m
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_ENCLOSURE=m
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=m
CONFIG_SCSI_FC_TGT_ATTRS=y
CONFIG_SCSI_ISCSI_ATTRS=m
CONFIG_SCSI_SAS_ATTRS=y
CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SAS_HOST_SMP=y
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_SCSI_SRP_TGT_ATTRS=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_ISCSI_TCP=m
CONFIG_ISCSI_BOOT_SYSFS=y
CONFIG_SCSI_CXGB3_ISCSI=m
CONFIG_SCSI_CXGB4_ISCSI=m
CONFIG_SCSI_BNX2_ISCSI=m
CONFIG_SCSI_BNX2X_FCOE=m
CONFIG_BE2ISCSI=m
CONFIG_BLK_DEV_3W_XXXX_RAID=m
CONFIG_SCSI_HPSA=m
CONFIG_SCSI_3W_9XXX=m
CONFIG_SCSI_3W_SAS=m
CONFIG_SCSI_ACARD=m
CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=4
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
CONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC7XXX_OLD=m
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=4
CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not set
CONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
CONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
CONFIG_SCSI_MVSAS=m
# CONFIG_SCSI_MVSAS_DEBUG is not set
# CONFIG_SCSI_MVSAS_TASKLET is not set
CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPT2SAS_MAX_SGE=128
# CONFIG_SCSI_MPT2SAS_LOGGING is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_VMWARE_PVSCSI=m
CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_FCOE=m
CONFIG_FCOE_FNIC=m
CONFIG_SCSI_DMX3191D=m
CONFIG_SCSI_EATA=m
# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
CONFIG_SCSI_EATA_MAX_TAGS=16
CONFIG_SCSI_FUTURE_DOMAIN=m
CONFIG_SCSI_GDTH=m
CONFIG_SCSI_ISCI=m
CONFIG_SCSI_IPS=m
CONFIG_SCSI_INITIO=m
CONFIG_SCSI_INIA100=m
CONFIG_SCSI_PPA=m
CONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not set
CONFIG_SCSI_STEX=m
CONFIG_SCSI_SYM53C8XX_2=m
CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=m
# CONFIG_SCSI_IPR_TRACE is not set
# CONFIG_SCSI_IPR_DUMP is not set
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA_FC=m
CONFIG_TCM_QLA2XXX=m
CONFIG_SCSI_QLA_ISCSI=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_PMCRAID=m
CONFIG_SCSI_PM8001=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_BFA_FC=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
CONFIG_PCMCIA_FDOMAIN=m
CONFIG_PCMCIA_QLOGIC=m
CONFIG_PCMCIA_SYM53C500=m
CONFIG_SCSI_DH=m
CONFIG_SCSI_DH_RDAC=m
CONFIG_SCSI_DH_HP_SW=m
CONFIG_SCSI_DH_EMC=m
CONFIG_SCSI_DH_ALUA=m
CONFIG_SCSI_OSD_INITIATOR=m
CONFIG_SCSI_OSD_ULD=m
CONFIG_SCSI_OSD_DPRINT_SENSE=1
# CONFIG_SCSI_OSD_DEBUG is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_SATA_INIC162X=y
CONFIG_SATA_ACARD_AHCI=y
CONFIG_SATA_SIL24=y
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
CONFIG_PDC_ADMA=y
CONFIG_SATA_QSTOR=y
CONFIG_SATA_SX4=y
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_HIGHBANK is not set
CONFIG_SATA_MV=y
CONFIG_SATA_NV=y
CONFIG_SATA_PROMISE=y
CONFIG_SATA_SIL=y
CONFIG_SATA_SIS=y
CONFIG_SATA_SVW=y
CONFIG_SATA_ULI=y
CONFIG_SATA_VIA=y
CONFIG_SATA_VITESSE=y

#
# PATA SFF controllers with BMDMA
#
CONFIG_PATA_ALI=y
CONFIG_PATA_AMD=y
CONFIG_PATA_ARASAN_CF=m
CONFIG_PATA_ARTOP=y
CONFIG_PATA_ATIIXP=y
CONFIG_PATA_ATP867X=y
CONFIG_PATA_CMD64X=y
CONFIG_PATA_CS5520=y
CONFIG_PATA_CS5530=y
CONFIG_PATA_CS5536=y
CONFIG_PATA_CYPRESS=y
CONFIG_PATA_EFAR=y
CONFIG_PATA_HPT366=y
CONFIG_PATA_HPT37X=y
CONFIG_PATA_HPT3X2N=y
CONFIG_PATA_HPT3X3=y
CONFIG_PATA_HPT3X3_DMA=y
CONFIG_PATA_IT8213=y
CONFIG_PATA_IT821X=y
CONFIG_PATA_JMICRON=y
CONFIG_PATA_MARVELL=y
CONFIG_PATA_NETCELL=y
CONFIG_PATA_NINJA32=y
CONFIG_PATA_NS87415=y
CONFIG_PATA_OLDPIIX=y
CONFIG_PATA_OPTIDMA=y
CONFIG_PATA_PDC2027X=y
CONFIG_PATA_PDC_OLD=y
CONFIG_PATA_RADISYS=y
CONFIG_PATA_RDC=y
CONFIG_PATA_SC1200=y
CONFIG_PATA_SCH=y
CONFIG_PATA_SERVERWORKS=y
CONFIG_PATA_SIL680=y
CONFIG_PATA_SIS=y
CONFIG_PATA_TOSHIBA=m
CONFIG_PATA_TRIFLEX=y
CONFIG_PATA_VIA=y
CONFIG_PATA_WINBOND=y

#
# PIO-only SFF controllers
#
CONFIG_PATA_CMD640_PCI=y
CONFIG_PATA_MPIIX=y
CONFIG_PATA_NS87410=y
CONFIG_PATA_OPTI=y
CONFIG_PATA_PCMCIA=m
CONFIG_PATA_RZ1000=y

#
# Generic fallback / legacy drivers
#
CONFIG_PATA_ACPI=y
CONFIG_ATA_GENERIC=y
CONFIG_PATA_LEGACY=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_AUTODETECT=y
CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=y
CONFIG_MD_RAID456=y
# CONFIG_MULTICORE_RAID456 is not set
CONFIG_MD_MULTIPATH=y
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
CONFIG_DM_BUFIO=m
CONFIG_DM_BIO_PRISON=m
CONFIG_DM_PERSISTENT_DATA=m
CONFIG_DM_CRYPT=y
CONFIG_DM_SNAPSHOT=m
CONFIG_DM_THIN_PROVISIONING=m
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
CONFIG_DM_MIRROR=y
CONFIG_DM_RAID=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_ZERO=m
CONFIG_DM_MULTIPATH=m
CONFIG_DM_MULTIPATH_QL=m
CONFIG_DM_MULTIPATH_ST=m
# CONFIG_DM_DELAY is not set
CONFIG_DM_UEVENT=y
CONFIG_DM_FLAKEY=m
CONFIG_DM_VERITY=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_TCM_FC=m
CONFIG_ISCSI_TARGET=m
CONFIG_SBP_TARGET=m
CONFIG_FUSION=y
CONFIG_FUSION_SPI=m
CONFIG_FUSION_FC=m
CONFIG_FUSION_SAS=m
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
CONFIG_FUSION_LAN=m
# CONFIG_FUSION_LOGGING is not set

#
# IEEE 1394 (FireWire) support
#
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_OHCI=m
CONFIG_FIREWIRE_SBP2=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
CONFIG_I2O=m
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
CONFIG_I2O_EXT_ADAPTEC=y
CONFIG_I2O_EXT_ADAPTEC_DMA64=y
CONFIG_I2O_CONFIG=m
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
CONFIG_I2O_BUS=m
CONFIG_I2O_BLOCK=m
CONFIG_I2O_SCSI=m
CONFIG_I2O_PROC=m
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
CONFIG_EQUALIZER=m
CONFIG_NET_FC=y
CONFIG_MII=m
CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
# CONFIG_VXLAN is not set
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
CONFIG_SUNGEM_PHY=m
CONFIG_ARCNET=m
CONFIG_ARCNET_1201=m
CONFIG_ARCNET_1051=m
CONFIG_ARCNET_RAW=m
CONFIG_ARCNET_CAP=m
CONFIG_ARCNET_COM90xx=m
CONFIG_ARCNET_COM90xxIO=m
CONFIG_ARCNET_RIM_I=m
CONFIG_ARCNET_COM20020=m
CONFIG_ARCNET_COM20020_PCI=m
CONFIG_ARCNET_COM20020_CS=m
CONFIG_ATM_DRIVERS=y
CONFIG_ATM_DUMMY=m
CONFIG_ATM_TCP=m
CONFIG_ATM_LANAI=m
CONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not set
CONFIG_ATM_FIRESTREAM=m
CONFIG_ATM_ZATM=m
# CONFIG_ATM_ZATM_DEBUG is not set
CONFIG_ATM_NICSTAR=m
# CONFIG_ATM_NICSTAR_USE_SUNI is not set
# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
CONFIG_ATM_IDT77252=m
# CONFIG_ATM_IDT77252_DEBUG is not set
# CONFIG_ATM_IDT77252_RCV_ALL is not set
CONFIG_ATM_IDT77252_USE_SUNI=y
CONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not set
CONFIG_ATM_HORIZON=m
# CONFIG_ATM_HORIZON_DEBUG is not set
CONFIG_ATM_IA=m
# CONFIG_ATM_IA_DEBUG is not set
CONFIG_ATM_FORE200E=m
# CONFIG_ATM_FORE200E_USE_TASKLET is not set
CONFIG_ATM_FORE200E_TX_RETRY=16
CONFIG_ATM_FORE200E_DEBUG=0
CONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not set
CONFIG_ATM_SOLOS=m

#
# CAIF transport drivers
#
CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_NET_VENDOR_ALTEON=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_NET_VENDOR_AMD=y
CONFIG_AMD8111_ETH=m
CONFIG_PCNET32=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_NET_VENDOR_ATHEROS=y
CONFIG_ATL2=m
CONFIG_ATL1=m
CONFIG_ATL1E=m
CONFIG_ATL1C=m
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
CONFIG_BNX2=m
CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
CONFIG_NET_CALXEDA_XGMAC=m
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T3=m
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=m
CONFIG_DNET=m
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_DE2104X_DSL=0
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
CONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not set
CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_NET_VENDOR_DLINK=y
CONFIG_DE600=m
CONFIG_DE620=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_NET_VENDOR_EMULEX=y
CONFIG_BE2NET=m
CONFIG_NET_VENDOR_EXAR=y
CONFIG_S2IO=m
CONFIG_VXGE=m
# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_IGB_DCA=y
# CONFIG_IGB_PTP is not set
CONFIG_IGBVF=m
CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
# CONFIG_IXGBE_PTP is not set
CONFIG_IXGBEVF=m
CONFIG_NET_VENDOR_I825XX=y
CONFIG_ZNET=m
CONFIG_IP1000=m
CONFIG_JME=m
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not set
CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
CONFIG_NET_VENDOR_MELLANOX=y
CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
CONFIG_FEALNX=m
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_NET_VENDOR_8390=y
CONFIG_PCMCIA_AXNET=m
CONFIG_NE2K_PCI=m
CONFIG_PCMCIA_PCNET=m
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=m
CONFIG_NET_VENDOR_OKI=y
CONFIG_PCH_GBE=m
# CONFIG_PCH_PTP is not set
CONFIG_ETHOC=m
CONFIG_NET_PACKET_ENGINE=y
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
CONFIG_8139TOO=m
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
CONFIG_NET_VENDOR_SEEQ=y
CONFIG_SEEQ8005=m
CONFIG_NET_VENDOR_SILAN=y
CONFIG_SC92031=m
CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=m
CONFIG_SIS190=m
CONFIG_SFC=m
CONFIG_SFC_MTD=y
CONFIG_SFC_MCDI_MON=y
CONFIG_SFC_PTP=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
CONFIG_SMSC9420=m
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
CONFIG_STMMAC_PLATFORM=y
# CONFIG_STMMAC_PCI is not set
CONFIG_STMMAC_DEBUG_FS=y
# CONFIG_STMMAC_DA is not set
CONFIG_STMMAC_RING=y
# CONFIG_STMMAC_CHAINED is not set
CONFIG_NET_VENDOR_SUN=y
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
CONFIG_TLAN=m
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=m
CONFIG_VIA_RHINE_MMIO=y
CONFIG_VIA_VELOCITY=m
CONFIG_NET_VENDOR_WIZNET=y
CONFIG_WIZNET_W5100=m
CONFIG_WIZNET_W5300=m
# CONFIG_WIZNET_BUS_DIRECT is not set
# CONFIG_WIZNET_BUS_INDIRECT is not set
CONFIG_WIZNET_BUS_ANY=y
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_FDDI=y
CONFIG_DEFXX=m
# CONFIG_DEFXX_MMIO is not set
CONFIG_SKFP=m
CONFIG_HIPPI=y
CONFIG_ROADRUNNER=m
# CONFIG_ROADRUNNER_LARGE_RINGS is not set
CONFIG_NET_SB1000=m
CONFIG_PHYLIB=m

#
# MII PHY device drivers
#
# CONFIG_AT803X_PHY is not set
CONFIG_AMD_PHY=m
CONFIG_MARVELL_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_LXT_PHY=m
CONFIG_CICADA_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_BROADCOM_PHY=m
CONFIG_BCM87XX_PHY=m
CONFIG_ICPLUS_PHY=m
CONFIG_REALTEK_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MICREL_PHY=m
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_PLIP=m
CONFIG_PPP=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_FILTER=y
CONFIG_PPP_MPPE=m
CONFIG_PPP_MULTILINK=y
CONFIG_PPPOATM=m
CONFIG_PPPOE=m
CONFIG_PPTP=m
CONFIG_PPPOL2TP=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_SLIP=m
CONFIG_SLHC=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not set

#
# USB Network Adapters
#
CONFIG_USB_CATC=m
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_CDC_EEM=m
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_SMSC75XX=m
CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_NET_CX82310_ETH=m
CONFIG_USB_NET_KALMIA=m
CONFIG_USB_NET_QMI_WWAN=m
CONFIG_USB_HSO=m
CONFIG_USB_NET_INT51X1=m
CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_WLAN=y
CONFIG_PCMCIA_RAYCS=m
CONFIG_LIBERTAS_THINFIRM=m
# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
CONFIG_LIBERTAS_THINFIRM_USB=m
CONFIG_AIRO=m
CONFIG_ATMEL=m
CONFIG_PCI_ATMEL=m
CONFIG_PCMCIA_ATMEL=m
CONFIG_AT76C50X_USB=m
CONFIG_AIRO_CS=m
CONFIG_PCMCIA_WL3501=m
CONFIG_PRISM54=m
CONFIG_USB_ZD1201=m
CONFIG_USB_NET_RNDIS_WLAN=m
CONFIG_RTL8180=m
CONFIG_RTL8187=m
CONFIG_RTL8187_LEDS=y
CONFIG_ADM8211=m
# CONFIG_MAC80211_HWSIM is not set
CONFIG_MWL8K=m
CONFIG_ATH_COMMON=m
# CONFIG_ATH_DEBUG is not set
CONFIG_ATH5K=m
# CONFIG_ATH5K_DEBUG is not set
# CONFIG_ATH5K_TRACER is not set
CONFIG_ATH5K_PCI=y
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m
CONFIG_ATH9K_BTCOEX_SUPPORT=y
CONFIG_ATH9K=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_AHB is not set
# CONFIG_ATH9K_DEBUGFS is not set
CONFIG_ATH9K_RATE_CONTROL=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HTC_DEBUGFS is not set
CONFIG_CARL9170=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170_WPC=y
# CONFIG_CARL9170_HWRNG is not set
CONFIG_ATH6KL=m
CONFIG_ATH6KL_SDIO=m
CONFIG_ATH6KL_USB=m
# CONFIG_ATH6KL_DEBUG is not set
CONFIG_B43=m
CONFIG_B43_SSB=y
CONFIG_B43_PCI_AUTOSELECT=y
CONFIG_B43_PCICORE_AUTOSELECT=y
CONFIG_B43_PCMCIA=y
CONFIG_B43_SDIO=y
CONFIG_B43_PIO=y
CONFIG_B43_PHY_N=y
CONFIG_B43_PHY_LP=y
CONFIG_B43_PHY_HT=y
CONFIG_B43_LEDS=y
CONFIG_B43_HWRNG=y
# CONFIG_B43_DEBUG is not set
CONFIG_B43LEGACY=m
CONFIG_B43LEGACY_PCI_AUTOSELECT=y
CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
CONFIG_B43LEGACY_LEDS=y
CONFIG_B43LEGACY_HWRNG=y
# CONFIG_B43LEGACY_DEBUG is not set
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not set
CONFIG_BRCMUTIL=m
CONFIG_BRCMFMAC=m
CONFIG_BRCMFMAC_SDIO=y
# CONFIG_BRCMFMAC_SDIO_OOB is not set
CONFIG_BRCMFMAC_USB=y
# CONFIG_BRCMISCAN is not set
# CONFIG_BRCMDBG is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
CONFIG_HOSTAP_PLX=m
CONFIG_HOSTAP_PCI=m
CONFIG_HOSTAP_CS=m
CONFIG_IPW2100=m
CONFIG_IPW2100_MONITOR=y
# CONFIG_IPW2100_DEBUG is not set
CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not set
CONFIG_LIBIPW=m
# CONFIG_LIBIPW_DEBUG is not set
CONFIG_IWLWIFI=m
CONFIG_IWLDVM=m

#
# Debugging Options
#
# CONFIG_IWLWIFI_DEBUG is not set
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
# CONFIG_IWLWIFI_P2P is not set
# CONFIG_IWLWIFI_EXPERIMENTAL_MFP is not set
CONFIG_IWLEGACY=m
CONFIG_IWL4965=m
CONFIG_IWL3945=m

#
# iwl3945 / iwl4965 Debugging Options
#
# CONFIG_IWLEGACY_DEBUG is not set
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_HERMES=m
# CONFIG_HERMES_PRISM is not set
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_PLX_HERMES=m
CONFIG_TMD_HERMES=m
CONFIG_NORTEL_HERMES=m
CONFIG_PCMCIA_HERMES=m
CONFIG_PCMCIA_SPECTRUM=m
CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
CONFIG_P54_LEDS=y
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
CONFIG_RT2500PCI=m
CONFIG_RT61PCI=m
CONFIG_RT2800PCI=m
CONFIG_RT2800PCI_RT33XX=y
CONFIG_RT2800PCI_RT35XX=y
CONFIG_RT2800PCI_RT53XX=y
CONFIG_RT2800PCI_RT3290=y
CONFIG_RT2500USB=m
CONFIG_RT73USB=m
CONFIG_RT2800USB=m
CONFIG_RT2800USB_RT33XX=y
CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_RT53XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RT2800_LIB=m
CONFIG_RT2X00_LIB_PCI=m
CONFIG_RT2X00_LIB_USB=m
CONFIG_RT2X00_LIB=m
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_CRYPTO=y
CONFIG_RT2X00_LIB_LEDS=y
# CONFIG_RT2X00_DEBUG is not set
CONFIG_RTL8192CE=m
CONFIG_RTL8192SE=m
CONFIG_RTL8192DE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTL8192C_COMMON=m
CONFIG_WL_TI=y
CONFIG_WL1251=m
CONFIG_WL1251_SDIO=m
CONFIG_WL12XX=m
CONFIG_WL18XX=m
CONFIG_WLCORE=m
CONFIG_WLCORE_SDIO=m
CONFIG_WL12XX_PLATFORM_DATA=y
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_SDIO=m
CONFIG_MWIFIEX_PCIE=m
CONFIG_MWIFIEX_USB=m

#
# WiMAX Wireless Broadband devices
#
CONFIG_WIMAX_I2400M=m
CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
CONFIG_WAN=y
CONFIG_LANMEDIA=m
CONFIG_HDLC=m
CONFIG_HDLC_RAW=m
CONFIG_HDLC_RAW_ETH=m
CONFIG_HDLC_CISCO=m
CONFIG_HDLC_FR=m
CONFIG_HDLC_PPP=m

#
# X.25/LAPB support is disabled
#
CONFIG_PCI200SYN=m
CONFIG_WANXL=m
# CONFIG_PC300TOO is not set
CONFIG_FARSYNC=m
CONFIG_DSCC4=m
# CONFIG_DSCC4_PCISYNC is not set
# CONFIG_DSCC4_PCI_RST is not set
CONFIG_DLCI=m
CONFIG_DLCI_MAX=8
CONFIG_WAN_ROUTER_DRIVERS=m
CONFIG_CYCLADES_SYNC=m
CONFIG_CYCLOMX_X25=y
CONFIG_SBNI=m
# CONFIG_SBNI_MULTILINE is not set
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKEHARD=m
CONFIG_IEEE802154_FAKELB=m
CONFIG_VMXNET3=m
CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_IPPP_FILTER=y
CONFIG_ISDN_PPP_BSDCOMP=m
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y

#
# ISDN feature submodules
#
CONFIG_ISDN_DIVERSION=m

#
# ISDN4Linux hardware drivers
#

#
# Passive cards
#
CONFIG_ISDN_DRV_HISAX=m

#
# D-channel protocol features
#
CONFIG_HISAX_EURO=y
CONFIG_DE_AOC=y
CONFIG_HISAX_NO_SENDCOMPLETE=y
CONFIG_HISAX_NO_LLC=y
CONFIG_HISAX_NO_KEYPAD=y
CONFIG_HISAX_1TR6=y
CONFIG_HISAX_NI1=y
CONFIG_HISAX_MAX_CARDS=8

#
# HiSax supported cards
#
CONFIG_HISAX_16_3=y
CONFIG_HISAX_TELESPCI=y
CONFIG_HISAX_S0BOX=y
CONFIG_HISAX_FRITZPCI=y
CONFIG_HISAX_AVM_A1_PCMCIA=y
CONFIG_HISAX_ELSA=y
CONFIG_HISAX_DIEHLDIVA=y
CONFIG_HISAX_SEDLBAUER=y
CONFIG_HISAX_NETJET=y
CONFIG_HISAX_NETJET_U=y
CONFIG_HISAX_NICCY=y
CONFIG_HISAX_BKM_A4T=y
CONFIG_HISAX_SCT_QUADRO=y
CONFIG_HISAX_GAZEL=y
CONFIG_HISAX_HFC_PCI=y
CONFIG_HISAX_W6692=y
CONFIG_HISAX_HFC_SX=y
CONFIG_HISAX_ENTERNOW_PCI=y
# CONFIG_HISAX_DEBUG is not set

#
# HiSax PCMCIA card service modules
#
CONFIG_HISAX_SEDLBAUER_CS=m
CONFIG_HISAX_ELSA_CS=m
CONFIG_HISAX_AVM_A1_CS=m
CONFIG_HISAX_TELES_CS=m

#
# HiSax sub driver modules
#
CONFIG_HISAX_ST5481=m
CONFIG_HISAX_HFCUSB=m
CONFIG_HISAX_HFC4S8S=m
CONFIG_HISAX_FRITZ_PCIPNP=m

#
# Active cards
#
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_CAPI_TRACE=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIDRV=m

#
# CAPI hardware drivers
#
CONFIG_CAPI_AVM=y
CONFIG_ISDN_DRV_AVMB1_B1PCI=m
CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
CONFIG_ISDN_DRV_AVMB1_T1PCI=m
CONFIG_ISDN_DRV_AVMB1_C4=m
CONFIG_CAPI_EICON=y
CONFIG_ISDN_DIVAS=m
CONFIG_ISDN_DIVAS_BRIPCI=y
CONFIG_ISDN_DIVAS_PRIPCI=y
CONFIG_ISDN_DIVAS_DIVACAPI=m
CONFIG_ISDN_DIVAS_USERIDI=m
CONFIG_ISDN_DIVAS_MAINT=m
CONFIG_ISDN_DRV_GIGASET=m
# CONFIG_GIGASET_CAPI is not set
CONFIG_GIGASET_I4L=y
# CONFIG_GIGASET_DUMMYLL is not set
CONFIG_GIGASET_BASE=m
CONFIG_GIGASET_M105=m
# CONFIG_GIGASET_M101 is not set
# CONFIG_GIGASET_DEBUG is not set
CONFIG_HYSDN=m
CONFIG_HYSDN_CAPI=y
CONFIG_MISDN=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_L1OIP=m

#
# mISDN hardware drivers
#
CONFIG_MISDN_HFCPCI=m
CONFIG_MISDN_HFCMULTI=m
CONFIG_MISDN_HFCUSB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_SPEEDFAX=m
CONFIG_MISDN_INFINEON=m
CONFIG_MISDN_W6692=m
CONFIG_MISDN_NETJET=m
CONFIG_MISDN_IPAC=m
CONFIG_MISDN_ISAR=m
CONFIG_ISDN_HDLC=m

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_MATRIXKMAP=m

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ADP5588=m
CONFIG_KEYBOARD_ADP5589=m
CONFIG_KEYBOARD_ATKBD=y
CONFIG_KEYBOARD_QT1070=m
CONFIG_KEYBOARD_QT2160=m
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=m
CONFIG_KEYBOARD_GPIO_POLLED=m
CONFIG_KEYBOARD_TCA6416=m
CONFIG_KEYBOARD_TCA8418=m
CONFIG_KEYBOARD_MATRIX=m
CONFIG_KEYBOARD_LM8323=m
CONFIG_KEYBOARD_LM8333=m
CONFIG_KEYBOARD_MAX7359=m
CONFIG_KEYBOARD_MCS=m
CONFIG_KEYBOARD_MPR121=m
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_KEYBOARD_OPENCORES=m
CONFIG_KEYBOARD_STOWAWAY=m
# CONFIG_KEYBOARD_SUNKBD is not set
CONFIG_KEYBOARD_OMAP4=m
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_SENTELIC=y
CONFIG_MOUSE_PS2_TOUCHKIT=y
CONFIG_MOUSE_SERIAL=m
CONFIG_MOUSE_APPLETOUCH=m
CONFIG_MOUSE_BCM5974=m
CONFIG_MOUSE_VSXXXAA=m
CONFIG_MOUSE_GPIO=m
CONFIG_MOUSE_SYNAPTICS_I2C=m
CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_JOYSTICK_ANALOG=m
CONFIG_JOYSTICK_A3D=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
CONFIG_JOYSTICK_GRIP_MP=m
CONFIG_JOYSTICK_GUILLEMOT=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_WARRIOR=m
CONFIG_JOYSTICK_MAGELLAN=m
CONFIG_JOYSTICK_SPACEORB=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_STINGER=m
CONFIG_JOYSTICK_TWIDJOY=m
CONFIG_JOYSTICK_ZHENHUA=m
CONFIG_JOYSTICK_DB9=m
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_TURBOGRAFX=m
CONFIG_JOYSTICK_AS5011=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_WALKERA0701=m
CONFIG_INPUT_TABLET=y
CONFIG_TABLET_USB_ACECAD=m
CONFIG_TABLET_USB_AIPTEK=m
CONFIG_TABLET_USB_GTCO=m
CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_USB_WACOM=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_AD7879=m
CONFIG_TOUCHSCREEN_AD7879_I2C=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
CONFIG_TOUCHSCREEN_BU21013=m
CONFIG_TOUCHSCREEN_CY8CTMG110=m
CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
CONFIG_TOUCHSCREEN_FUJITSU=m
CONFIG_TOUCHSCREEN_ILI210X=m
CONFIG_TOUCHSCREEN_GUNZE=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_WACOM_I2C=m
CONFIG_TOUCHSCREEN_MAX11801=m
CONFIG_TOUCHSCREEN_MCS5000=m
CONFIG_TOUCHSCREEN_MMS114=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_INEXIO=m
CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WM97XX=m
CONFIG_TOUCHSCREEN_WM9705=y
CONFIG_TOUCHSCREEN_WM9712=y
CONFIG_TOUCHSCREEN_WM9713=y
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
CONFIG_TOUCHSCREEN_MC13783=m
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
CONFIG_TOUCHSCREEN_USB_ITM=y
CONFIG_TOUCHSCREEN_USB_ETURBO=y
CONFIG_TOUCHSCREEN_USB_GUNZE=y
CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_TOUCHSCREEN_USB_JASTEC=y
CONFIG_TOUCHSCREEN_USB_ELO=y
CONFIG_TOUCHSCREEN_USB_E2I=y
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
CONFIG_TOUCHSCREEN_USB_NEXIO=y
CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
CONFIG_TOUCHSCREEN_TOUCHIT213=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_TPS6507X=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_AD714X=m
CONFIG_INPUT_AD714X_I2C=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_GP2A=m
CONFIG_INPUT_GPIO_TILT_POLLED=m
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
CONFIG_INPUT_KXTJ9=m
CONFIG_INPUT_KXTJ9_POLLED_MODE=y
CONFIG_INPUT_POWERMATE=m
CONFIG_INPUT_YEALINK=m
CONFIG_INPUT_CM109=m
CONFIG_INPUT_UINPUT=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_ADXL34X_I2C=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_CT82C710=m
CONFIG_SERIO_PARKBD=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
CONFIG_SERIO_PS2MULT=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
CONFIG_GAMEPORT_L4=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m

#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=32
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_ROCKETPORT=m
CONFIG_CYCLADES=m
# CONFIG_CYZ_INTR is not set
CONFIG_MOXA_INTELLIO=m
CONFIG_MOXA_SMARTIO=m
CONFIG_SYNCLINK=m
CONFIG_SYNCLINKMP=m
CONFIG_SYNCLINK_GT=m
CONFIG_NOZOMI=m
CONFIG_ISI=m
CONFIG_N_HDLC=m
CONFIG_N_GSM=m
CONFIG_TRACE_ROUTER=m
CONFIG_TRACE_SINK=m
CONFIG_DEVKMEM=y
CONFIG_STALDRV=y

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y

#
# Non-8250 serial port support
#
CONFIG_SERIAL_MFD_HSU=m
CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
# CONFIG_SERIAL_SCCNXP is not set
CONFIG_SERIAL_TIMBERDALE=m
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
CONFIG_SERIAL_PCH_UART=m
CONFIG_SERIAL_XILINX_PS_UART=m
CONFIG_PRINTER=m
CONFIG_LP_CONSOLE=y
CONFIG_PPDEV=m
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM_TPM=m
CONFIG_NVRAM=m
CONFIG_R3964=m
CONFIG_APPLICOM=m

#
# PCMCIA character devices
#
CONFIG_SYNCLINK_CS=m
CONFIG_CARDMAN_4000=m
CONFIG_CARDMAN_4040=m
CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=256
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_TIS_I2C_INFINEON is not set
# CONFIG_TCG_NSC is not set
CONFIG_TCG_ATMEL=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TELCLOCK=m
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=m

#
# Multiplexer I2C Chip support
#
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCA=m

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
CONFIG_I2C_ALI1535=m
CONFIG_I2C_ALI1563=m
CONFIG_I2C_ALI15X3=m
CONFIG_I2C_AMD756=m
CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_PIIX4=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m

#
# ACPI drivers
#
CONFIG_I2C_SCMI=m

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_EG20T=m
CONFIG_I2C_GPIO=m
CONFIG_I2C_INTEL_MID=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PCA_PLATFORM=m
# CONFIG_I2C_PXA_PCI is not set
CONFIG_I2C_SIMTEC=m
CONFIG_I2C_XILINX=m

#
# External I2C/SMBus adapter drivers
#
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_PARPORT_LIGHT=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m

#
# Other I2C/SMBus bus drivers
#
CONFIG_I2C_STUB=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
CONFIG_HSI=m
CONFIG_HSI_BOARDINFO=y

#
# HSI clients
#
CONFIG_HSI_CHAR=m

#
# PPS support
#
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_PARPORT=m
CONFIG_PPS_CLIENT_GPIO=m

#
# PPS generators support
#

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=m

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_PTP_1588_CLOCK_PCH=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_GENERIC=m
CONFIG_GPIO_MAX730X=m

#
# Memory mapped GPIO drivers:
#
CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_ICH=m
CONFIG_GPIO_VX855=m

#
# I2C GPIO expanders:
#
CONFIG_GPIO_ARIZONA=m
CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_ADP5588=m

#
# PCI GPIO expanders:
#
CONFIG_GPIO_CS5535=m
# CONFIG_GPIO_BT8XX is not set
CONFIG_GPIO_AMD8111=m
# CONFIG_GPIO_LANGWELL is not set
CONFIG_GPIO_PCH=m
CONFIG_GPIO_ML_IOH=m
# CONFIG_GPIO_TIMBERDALE is not set
CONFIG_GPIO_RDC321X=m

#
# SPI GPIO expanders:
#
CONFIG_GPIO_MCP23S08=m

#
# AC97 GPIO expanders:
#
# CONFIG_GPIO_UCB1400 is not set

#
# MODULbus GPIO expanders:
#
CONFIG_GPIO_JANZ_TTL=m
CONFIG_W1=m
CONFIG_W1_CON=y

#
# 1-wire Bus Masters
#
CONFIG_W1_MASTER_MATROX=m
CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS1WM=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_HDQ_MASTER_OMAP is not set

#
# 1-wire Slaves
#
CONFIG_W1_SLAVE_THERM=m
CONFIG_W1_SLAVE_SMEM=m
CONFIG_W1_SLAVE_DS2408=m
CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS28E04=m
CONFIG_W1_SLAVE_BQ27000=m
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_PDA_POWER=m
CONFIG_TEST_POWER=m
CONFIG_BATTERY_DS2760=m
CONFIG_BATTERY_DS2780=m
CONFIG_BATTERY_DS2781=m
CONFIG_BATTERY_DS2782=m
CONFIG_BATTERY_SBS=m
CONFIG_BATTERY_BQ27x00=m
CONFIG_BATTERY_BQ27X00_I2C=y
CONFIG_BATTERY_BQ27X00_PLATFORM=y
CONFIG_BATTERY_MAX17040=m
CONFIG_BATTERY_MAX17042=m
CONFIG_CHARGER_PCF50633=m
CONFIG_CHARGER_ISP1704=m
CONFIG_CHARGER_MAX8903=m
CONFIG_CHARGER_LP8727=m
CONFIG_CHARGER_GPIO=m
# CONFIG_CHARGER_MANAGER is not set
CONFIG_CHARGER_SMB347=m
CONFIG_POWER_AVS=y
CONFIG_HWMON=m
CONFIG_HWMON_VID=m
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
# CONFIG_SENSORS_ADT7410 is not set
CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_K8TEMP=m
CONFIG_SENSORS_K10TEMP=m
CONFIG_SENSORS_FAM15H_POWER=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_DS620=m
CONFIG_SENSORS_DS1621=m
CONFIG_SENSORS_I5K_AMB=m
CONFIG_SENSORS_F71805F=m
CONFIG_SENSORS_F71882FG=m
CONFIG_SENSORS_F75375S=m
CONFIG_SENSORS_FSCHMD=m
CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
CONFIG_SENSORS_GPIO_FAN=m
CONFIG_SENSORS_HIH6130=m
CONFIG_SENSORS_CORETEMP=m
CONFIG_SENSORS_IBMAEM=m
CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_IT87=m
CONFIG_SENSORS_JC42=m
CONFIG_SENSORS_LINEAGE=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
CONFIG_SENSORS_LM78=m
CONFIG_SENSORS_LM80=m
CONFIG_SENSORS_LM83=m
CONFIG_SENSORS_LM85=m
CONFIG_SENSORS_LM87=m
CONFIG_SENSORS_LM90=m
CONFIG_SENSORS_LM92=m
CONFIG_SENSORS_LM93=m
CONFIG_SENSORS_LTC4151=m
CONFIG_SENSORS_LTC4215=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4261=m
CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
# CONFIG_SENSORS_MAX197 is not set
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_PC87360=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_EMC1403=m
CONFIG_SENSORS_EMC2103=m
CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH56XX_COMMON=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
CONFIG_SENSORS_VIA_CPUTEMP=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
CONFIG_SENSORS_W83793=m
CONFIG_SENSORS_W83795=m
# CONFIG_SENSORS_W83795_FANCTRL is not set
CONFIG_SENSORS_W83L785TS=m
CONFIG_SENSORS_W83L786NG=m
CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_MC13783_ADC=m

#
# ACPI drivers
#
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
CONFIG_THERMAL=m
CONFIG_THERMAL_HWMON=y
CONFIG_CPU_THERMAL=y
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
CONFIG_SOFT_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_F71808E_WDT=m
CONFIG_SP5100_TCO=m
CONFIG_GEODE_WDT=m
CONFIG_SC520_WDT=m
CONFIG_SBC_FITPC2_WATCHDOG=m
CONFIG_EUROTECH_WDT=m
CONFIG_IB700_WDT=m
CONFIG_IBMASR=m
CONFIG_WAFER_WDT=m
CONFIG_I6300ESB_WDT=m
CONFIG_IE6XX_WDT=m
CONFIG_ITCO_WDT=m
CONFIG_ITCO_VENDOR_SUPPORT=y
CONFIG_IT8712F_WDT=m
CONFIG_IT87_WDT=m
CONFIG_HP_WATCHDOG=m
CONFIG_HPWDT_NMI_DECODING=y
CONFIG_SC1200_WDT=m
CONFIG_PC87413_WDT=m
CONFIG_NV_TCO=m
CONFIG_60XX_WDT=m
CONFIG_SBC8360_WDT=m
CONFIG_CPU5_WDT=m
CONFIG_SMSC_SCH311X_WDT=m
CONFIG_SMSC37B787_WDT=m
CONFIG_VIA_WDT=m
CONFIG_W83627HF_WDT=m
CONFIG_W83697HF_WDT=m
CONFIG_W83697UG_WDT=m
CONFIG_W83877F_WDT=m
CONFIG_W83977F_WDT=m
CONFIG_MACHZ_WDT=m
CONFIG_SBC_EPX_C3_WATCHDOG=m

#
# PCI-based Watchdog Cards
#
CONFIG_PCIPCWATCHDOG=m
CONFIG_WDTPCI=m

#
# USB-based Watchdog Cards
#
CONFIG_USBPCWATCHDOG=m
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
CONFIG_SSB=m
CONFIG_SSB_SPROM=y
CONFIG_SSB_BLOCKIO=y
CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_B43_PCI_BRIDGE=y
CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
CONFIG_SSB_PCMCIAHOST=y
CONFIG_SSB_SDIOHOST_POSSIBLE=y
CONFIG_SSB_SDIOHOST=y
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
CONFIG_MFD_CORE=y
# CONFIG_MFD_SM501 is not set
CONFIG_HTC_PASIC3=m
CONFIG_UCB1400_CORE=m
CONFIG_MFD_LM3533=m
CONFIG_TPS6105X=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
CONFIG_MFD_TPS65217=m
# CONFIG_MFD_TMIO is not set
CONFIG_MFD_ARIZONA=y
CONFIG_MFD_ARIZONA_I2C=m
CONFIG_MFD_WM5102=y
CONFIG_MFD_WM5110=y
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
CONFIG_MFD_MC13783=m
CONFIG_MFD_MC13XXX=m
CONFIG_MFD_MC13XXX_I2C=m
# CONFIG_ABX500_CORE is not set
CONFIG_MFD_CS5535=m
CONFIG_MFD_TIMBERDALE=m
CONFIG_LPC_SCH=m
CONFIG_LPC_ICH=m
CONFIG_MFD_RDC321X=m
CONFIG_MFD_JANZ_CMODIO=m
CONFIG_MFD_VX855=m
CONFIG_MFD_WL1273_CORE=m
CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_DUMMY is not set
CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ARIZONA=m
# CONFIG_REGULATOR_FAN53555 is not set
CONFIG_REGULATOR_MC13XXX_CORE=m
CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_MAX1586=m
CONFIG_REGULATOR_MAX8649=m
CONFIG_REGULATOR_MAX8660=m
CONFIG_REGULATOR_MAX8952=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_TPS6105X=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65217=m
CONFIG_MEDIA_SUPPORT=m

#
# Multimedia core support
#
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_RC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER is not set
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2=m
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_DMA_CONTIG=m
CONFIG_VIDEOBUF2_CORE=m
CONFIG_VIDEOBUF2_MEMOPS=m
CONFIG_VIDEOBUF2_DMA_CONTIG=m
CONFIG_VIDEOBUF2_VMALLOC=m
CONFIG_DVB_CORE=m
CONFIG_DVB_NET=y
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set

#
# Media drivers
#
CONFIG_RC_CORE=m
CONFIG_RC_MAP=m
CONFIG_RC_DECODERS=y
CONFIG_LIRC=m
CONFIG_IR_LIRC_CODEC=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
CONFIG_IR_JVC_DECODER=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_RC5_SZ_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_RC_DEVICES=y
CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
CONFIG_IR_FINTEK=m
CONFIG_IR_NUVOTON=m
CONFIG_IR_REDRAT3=m
CONFIG_IR_STREAMZAP=m
CONFIG_IR_WINBOND_CIR=m
CONFIG_IR_IGUANA=m
# CONFIG_IR_TTUSBIR is not set
CONFIG_RC_LOOPBACK=m
CONFIG_IR_GPIO_CIR=m
# CONFIG_MEDIA_USB_SUPPORT is not set
# CONFIG_MEDIA_PCI_SUPPORT is not set
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_VIA_CAMERA=m
CONFIG_VIDEO_TIMBERDALE=m
CONFIG_SOC_CAMERA=m
CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
# CONFIG_V4L_TEST_DRIVERS is not set

#
# Supported MMC/SDIO adapters
#
CONFIG_SMS_SDIO_DRV=m
# CONFIG_MEDIA_PARPORT_SUPPORT is not set
CONFIG_RADIO_ADAPTERS=y
# CONFIG_RADIO_SI470X is not set
CONFIG_USB_MR800=m
CONFIG_USB_DSBR=m
CONFIG_RADIO_MAXIRADIO=m
CONFIG_RADIO_SHARK=m
CONFIG_RADIO_SHARK2=m
CONFIG_I2C_SI4713=m
CONFIG_RADIO_SI4713=m
CONFIG_USB_KEENE=m
CONFIG_RADIO_TEA5764=m
CONFIG_RADIO_SAA7706H=m
CONFIG_RADIO_TEF6862=m
CONFIG_RADIO_TIMBERDALE=m
CONFIG_RADIO_WL1273=m

#
# Texas Instruments WL128x FM driver (ST based)
#
CONFIG_RADIO_WL128X=m

#
# Supported FireWire (IEEE 1394) Adapters
#
CONFIG_DVB_FIREDTV=m
CONFIG_DVB_FIREDTV_INPUT=y
CONFIG_SMS_SIANO_MDTV=m
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y

#
# Media ancillary drivers (tuners, sensors, i2c, frontends)
#
CONFIG_VIDEO_IR_I2C=m

#
# Audio decoders, processors and mixers
#

#
# RDS decoders
#

#
# Video decoders
#
CONFIG_VIDEO_ADV7180=m

#
# Video and audio decoders
#

#
# MPEG video encoders
#

#
# Video encoders
#

#
# Camera sensor devices
#
CONFIG_VIDEO_OV7670=m

#
# Flash devices
#

#
# Video improvement chips
#

#
# Miscelaneous helper chips
#

#
# Sensors used on soc_camera driver
#

#
# soc_camera sensor drivers
#
CONFIG_SOC_CAMERA_IMX074=m
CONFIG_SOC_CAMERA_MT9M001=m
CONFIG_SOC_CAMERA_MT9M111=m
CONFIG_SOC_CAMERA_MT9T031=m
CONFIG_SOC_CAMERA_MT9T112=m
CONFIG_SOC_CAMERA_MT9V022=m
CONFIG_SOC_CAMERA_OV2640=m
CONFIG_SOC_CAMERA_OV5642=m
CONFIG_SOC_CAMERA_OV6650=m
CONFIG_SOC_CAMERA_OV772X=m
CONFIG_SOC_CAMERA_OV9640=m
CONFIG_SOC_CAMERA_OV9740=m
CONFIG_SOC_CAMERA_RJ54N1=m
CONFIG_SOC_CAMERA_TW9910=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA827X=m
CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
CONFIG_MEDIA_TUNER_XC4000=m
CONFIG_MEDIA_TUNER_MC44S803=m

#
# Multistandard (satellite) frontends
#

#
# Multistandard (cable + terrestrial) frontends
#

#
# DVB-S (satellite) frontends
#

#
# DVB-T (terrestrial) frontends
#

#
# DVB-C (cable) frontends
#

#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#

#
# ISDB-T (terrestrial) frontends
#

#
# Digital terrestrial only tuners/PLL
#

#
# SEC control devices for DVB-S
#

#
# Tools to develop new frontends
#
# CONFIG_DVB_DUMMY_FE is not set

#
# Graphics support
#
CONFIG_AGP=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
CONFIG_AGP_SIS=m
CONFIG_AGP_VIA=m
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
CONFIG_DRM=m
CONFIG_DRM_USB=m
CONFIG_DRM_KMS_HELPER=m
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
CONFIG_DRM_TTM=m
CONFIG_DRM_TDFX=m
CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
CONFIG_DRM_NOUVEAU=m
CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_DRM_NOUVEAU_BACKLIGHT=y

#
# I2C encoder or helper chips
#
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
CONFIG_DRM_I810=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
CONFIG_DRM_VIA=m
CONFIG_DRM_SAVAGE=m
CONFIG_DRM_VMWGFX=m
# CONFIG_DRM_VMWGFX_FBCON is not set
CONFIG_DRM_GMA500=m
CONFIG_DRM_GMA600=y
CONFIG_DRM_GMA3600=y
CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_STUB_POULSBO=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=m
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
# CONFIG_FB_FOREIGN_ENDIAN is not set
CONFIG_FB_SYS_FOPS=m
# CONFIG_FB_WMT_GE_ROPS is not set
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_HECUBA=m
CONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
CONFIG_FB_CIRRUS=m
CONFIG_FB_PM2=m
# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
CONFIG_FB_CYBER2000=m
CONFIG_FB_CYBER2000_DDC=y
CONFIG_FB_ARC=m
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
CONFIG_FB_VGA16=m
# CONFIG_FB_UVESA is not set
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
CONFIG_FB_N411=m
CONFIG_FB_HGA=m
CONFIG_FB_S1D13XXX=m
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not set
CONFIG_FB_NVIDIA_BACKLIGHT=y
CONFIG_FB_RIVA=m
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
CONFIG_FB_RIVA_BACKLIGHT=y
CONFIG_FB_I740=m
CONFIG_FB_LE80578=m
CONFIG_FB_CARILLO_RANCH=m
CONFIG_FB_MATROX=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
CONFIG_FB_MATROX_MAVEN=m
CONFIG_FB_RADEON=m
CONFIG_FB_RADEON_I2C=y
CONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=m
CONFIG_FB_ATY128_BACKLIGHT=y
CONFIG_FB_ATY=m
CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GENERIC_LCD=y
CONFIG_FB_ATY_GX=y
CONFIG_FB_ATY_BACKLIGHT=y
CONFIG_FB_S3=m
CONFIG_FB_S3_DDC=y
CONFIG_FB_SAVAGE=m
CONFIG_FB_SAVAGE_I2C=y
CONFIG_FB_SAVAGE_ACCEL=y
CONFIG_FB_SIS=m
CONFIG_FB_SIS_300=y
CONFIG_FB_SIS_315=y
CONFIG_FB_VIA=m
# CONFIG_FB_VIA_DIRECT_PROCFS is not set
CONFIG_FB_VIA_X_COMPATIBILITY=y
CONFIG_FB_NEOMAGIC=m
CONFIG_FB_KYRO=m
CONFIG_FB_3DFX=m
# CONFIG_FB_3DFX_ACCEL is not set
CONFIG_FB_3DFX_I2C=y
CONFIG_FB_VOODOO1=m
CONFIG_FB_VT8623=m
CONFIG_FB_TRIDENT=m
CONFIG_FB_ARK=m
CONFIG_FB_PM3=m
CONFIG_FB_CARMINE=m
CONFIG_FB_CARMINE_DRAM_EVAL=y
# CONFIG_CARMINE_DRAM_CUSTOM is not set
CONFIG_FB_GEODE=y
CONFIG_FB_GEODE_LX=m
CONFIG_FB_GEODE_GX=m
CONFIG_FB_GEODE_GX1=m
CONFIG_FB_TMIO=m
CONFIG_FB_TMIO_ACCELL=y
CONFIG_FB_SMSCUFX=m
CONFIG_FB_UDL=m
# CONFIG_FB_VIRTUAL is not set
CONFIG_FB_METRONOME=m
CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
# CONFIG_EXYNOS_VIDEO is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_PLATFORM=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_LM3533=m
CONFIG_BACKLIGHT_CARILLO_RANCH=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_ADP8870=m
CONFIG_BACKLIGHT_PCF50633=m
# CONFIG_BACKLIGHT_LM3630 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
CONFIG_BACKLIGHT_LP855X=m
CONFIG_BACKLIGHT_OT200=m
# CONFIG_BACKLIGHT_TPS65217 is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
CONFIG_FONT_SUN8x16=y
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_JACK=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_KCTL_JACK=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=m
CONFIG_SND_ALOOP=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_PORTMAN2X4=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_SB_COMMON=m
CONFIG_SND_SB16_DSP=m
CONFIG_SND_TEA575X=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ASIHPI=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AW2=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_OXYGEN_LIB=m
CONFIG_SND_OXYGEN=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CS5530=m
CONFIG_SND_CS5535AUDIO=m
CONFIG_SND_CTXFI=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PREALLOC_SIZE=2048
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
# CONFIG_SND_HDA_INPUT_BEEP is not set
CONFIG_SND_HDA_INPUT_JACK=y
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=y
CONFIG_SND_HDA_CODEC_ANALOG=y
CONFIG_SND_HDA_CODEC_SIGMATEL=y
CONFIG_SND_HDA_CODEC_VIA=y
CONFIG_SND_HDA_CODEC_HDMI=y
CONFIG_SND_HDA_CODEC_CIRRUS=y
CONFIG_SND_HDA_CODEC_CONEXANT=y
CONFIG_SND_HDA_CODEC_CA0110=y
CONFIG_SND_HDA_CODEC_CA0132=y
CONFIG_SND_HDA_CODEC_CMEDIA=y
CONFIG_SND_HDA_CODEC_SI3054=y
CONFIG_SND_HDA_GENERIC=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_LOLA=m
CONFIG_SND_LX6464ES=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MAESTRO3_INPUT=y
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_US122L=m
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWIRE_LIB=m
CONFIG_SND_FIREWIRE_SPEAKERS=m
CONFIG_SND_ISIGHT=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m

#
# HID support
#
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
CONFIG_HID_GENERIC=m

#
# Special HID drivers
#
CONFIG_HID_A4TECH=m
CONFIG_HID_ACRUX=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_APPLE=m
CONFIG_HID_AUREAL=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
CONFIG_HID_PRODIKEYS=m
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_DRAGONRISE_FF=y
CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_EZKEY=m
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_WALTOP=m
CONFIG_HID_GYRATION=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO_TPKBD=m
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_LOGIWHEELS_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_PANTHERLORD_FF=y
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PRIMAX=m
# CONFIG_HID_PS3REMOTE is not set
CONFIG_HID_ROCCAT=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
CONFIG_GREENASIA_FF=y
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_HID_TIVO=m
CONFIG_HID_TOPSEED=m
CONFIG_HID_THRUSTMASTER=m
CONFIG_THRUSTMASTER_FF=y
CONFIG_HID_WACOM=m
CONFIG_HID_WIIMOTE=m
CONFIG_HID_WIIMOTE_EXT=y
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
CONFIG_HID_ZYDACRON=m
# CONFIG_HID_SENSOR_HUB is not set

#
# USB HID support
#
CONFIG_USB_HID=m
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
CONFIG_USB_MON=y
CONFIG_USB_WUSB=m
CONFIG_USB_WUSB_CBAF=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_C67X00_HCD=m
CONFIG_USB_XHCI_HCD=m
# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1760_HCD=m
CONFIG_USB_ISP1362_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_HCD_ISO is not set
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
CONFIG_USB_HCD_SSB=m
CONFIG_USB_CHIPIDEA=m
CONFIG_USB_CHIPIDEA_HOST=y
# CONFIG_USB_CHIPIDEA_DEBUG is not set

#
# USB Device Class drivers
#
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_WDM=m
CONFIG_USB_TMC=m

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#

#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_REALTEK=m
CONFIG_REALTEK_AUTOPM=y
CONFIG_USB_STORAGE_DATAFAB=m
CONFIG_USB_STORAGE_FREECOM=m
CONFIG_USB_STORAGE_ISD200=m
CONFIG_USB_STORAGE_USBAT=m
CONFIG_USB_STORAGE_SDDR09=m
CONFIG_USB_STORAGE_SDDR55=m
CONFIG_USB_STORAGE_JUMPSHOT=m
CONFIG_USB_STORAGE_ALAUDA=m
CONFIG_USB_STORAGE_ONETOUCH=m
CONFIG_USB_STORAGE_KARMA=m
CONFIG_USB_STORAGE_CYPRESS_ATACB=m
CONFIG_USB_STORAGE_ENE_UB6250=m
CONFIG_USB_UAS=m

#
# USB Imaging devices
#
CONFIG_USB_MDC800=m
CONFIG_USB_MICROTEK=m

#
# USB port drivers
#
CONFIG_USB_USS720=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_CH341=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP210X=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_F81232=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IUU=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_METRO=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_MOTOROLA=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_OTI6858=m
CONFIG_USB_SERIAL_QCAUX=m
CONFIG_USB_SERIAL_QUALCOMM=m
CONFIG_USB_SERIAL_SPCP8X5=m
CONFIG_USB_SERIAL_HP4X=m
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
CONFIG_USB_SERIAL_SIEMENS_MPI=m
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_SYMBOL=m
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_WWAN=m
CONFIG_USB_SERIAL_OPTION=m
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
CONFIG_USB_SERIAL_ZIO=m
# CONFIG_USB_SERIAL_ZTE is not set
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_DEBUG=m

#
# USB Miscellaneous drivers
#
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
CONFIG_USB_SEVSEG=m
CONFIG_USB_RIO500=m
CONFIG_USB_LEGOTOWER=m
CONFIG_USB_LCD=m
CONFIG_USB_LED=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_IDMOUSE=m
CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_APPLEDISPLAY=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_SISUSBVGA_CON=y
CONFIG_USB_LD=m
CONFIG_USB_TRANCEVIBRATOR=m
CONFIG_USB_IOWARRIOR=m
CONFIG_USB_TEST=m
CONFIG_USB_ISIGHTFW=m
CONFIG_USB_YUREX=m
CONFIG_USB_EZUSB_FX2=m

#
# USB Physical Layer drivers
#
# CONFIG_OMAP_USB2 is not set
CONFIG_USB_ISP1301=m
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
# CONFIG_USB_GADGET is not set

#
# OTG and related infrastructure
#
CONFIG_USB_OTG_UTILS=y
CONFIG_USB_GPIO_VBUS=m
CONFIG_NOP_USB_XCEIV=m
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
CONFIG_UWB_I1480U=m
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_CLKGATE is not set

#
# MMC/SD/SDIO Card Drivers
#
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set

#
# MMC/SD/SDIO Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_USHC=m
CONFIG_MEMSTICK=m
# CONFIG_MEMSTICK_DEBUG is not set

#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
CONFIG_MSPRO_BLOCK=m

#
# MemoryStick Host Controller Drivers
#
CONFIG_MEMSTICK_TIFM_MS=m
CONFIG_MEMSTICK_JMICRON_38X=m
CONFIG_MEMSTICK_R592=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y

#
# LED drivers
#
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3533=m
# CONFIG_LEDS_LM3642 is not set
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA9532_GPIO is not set
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP5521=m
CONFIG_LEDS_LP5523=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
CONFIG_LEDS_PCA9633=m
CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
# CONFIG_LEDS_LM355x is not set
CONFIG_LEDS_OT200=m
CONFIG_LEDS_BLINKM=m
CONFIG_LEDS_TRIGGERS=y

#
# LED Triggers
#
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
# CONFIG_LEDS_TRIGGER_CPU is not set
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m

#
# iptables trigger is under Netfilter config (LED target)
#
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_ACCESSIBILITY=y
CONFIG_A11Y_BRAILLE_CONSOLE=y
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_USER_MEM=y
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
# CONFIG_INFINIBAND_IPATH is not set
CONFIG_INFINIBAND_QIB=m
CONFIG_INFINIBAND_AMSO1100=m
# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
# CONFIG_INFINIBAND_CXGB3 is not set
CONFIG_INFINIBAND_CXGB4=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_INFINIBAND_NES=m
# CONFIG_INFINIBAND_NES_DEBUG is not set
CONFIG_INFINIBAND_OCRDMA=m
CONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_CM is not set
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_EDAC=y

#
# Reporting subsystems
#
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=y
CONFIG_EDAC_MCE_INJ=m
# CONFIG_EDAC_MM_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
CONFIG_RTC_DRV_TEST=m

#
# I2C RTC drivers
#
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_DS3232=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_PCF8563=m
CONFIG_RTC_DRV_PCF8583=m
CONFIG_RTC_DRV_M41T80=m
CONFIG_RTC_DRV_M41T80_WDT=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_S35390A=m
CONFIG_RTC_DRV_FM3130=m
CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_RX8025=m
CONFIG_RTC_DRV_EM3027=m
CONFIG_RTC_DRV_RV3029C2=m

#
# SPI RTC drivers
#

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
CONFIG_RTC_DRV_DS1286=m
CONFIG_RTC_DRV_DS1511=m
CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_STK17TA8=m
CONFIG_RTC_DRV_M48T86=m
CONFIG_RTC_DRV_M48T35=m
CONFIG_RTC_DRV_M48T59=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_RP5C01=m
CONFIG_RTC_DRV_V3020=m
# CONFIG_RTC_DRV_DS2404 is not set
CONFIG_RTC_DRV_PCF50633=m

#
# on-CPU RTC drivers
#
CONFIG_RTC_DRV_MC13XXX=m
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_INTEL_MID_DMAC=m
CONFIG_INTEL_IOATDMA=m
CONFIG_TIMB_DMA=m
CONFIG_PCH_DMA=m
CONFIG_DMA_ENGINE=y

#
# DMA Clients
#
CONFIG_NET_DMA=y
# CONFIG_ASYNC_TX_DMA is not set
CONFIG_DMATEST=m
CONFIG_DCA=m
CONFIG_AUXDISPLAY=y
# CONFIG_KS0108 is not set
CONFIG_UIO=m
CONFIG_UIO_CIF=m
CONFIG_UIO_PDRV=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_AEC=m
CONFIG_UIO_SERCOS3=m
CONFIG_UIO_PCI_GENERIC=m
CONFIG_UIO_NETX=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VIRTIO=m

#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_MMIO=m
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set

#
# Microsoft Hyper-V guest support
#
CONFIG_HYPERV=m
CONFIG_HYPERV_UTILS=m
CONFIG_STAGING=y
# CONFIG_ET131X is not set
# CONFIG_SLICOSS is not set
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
# CONFIG_USBIP_DEBUG is not set
# CONFIG_W35UND is not set
# CONFIG_PRISM2_USB is not set
# CONFIG_ECHO is not set
# CONFIG_COMEDI is not set
CONFIG_ASUS_OLED=m
# CONFIG_PANEL is not set
CONFIG_R8187SE=m
CONFIG_RTL8192U=m
CONFIG_RTLLIB=m
CONFIG_RTLLIB_CRYPTO_CCMP=m
CONFIG_RTLLIB_CRYPTO_TKIP=m
CONFIG_RTLLIB_CRYPTO_WEP=m
CONFIG_RTL8192E=m
CONFIG_R8712U=m
CONFIG_RTS_PSTOR=m
# CONFIG_RTS_PSTOR_DEBUG is not set
CONFIG_RTS5139=m
# CONFIG_RTS5139_DEBUG is not set
# CONFIG_TRANZPORT is not set
CONFIG_IDE_PHISON=m
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_DEBUG is not set
# CONFIG_LINE6_USB_DUMP_CTRL is not set
# CONFIG_LINE6_USB_DUMP_MIDI is not set
# CONFIG_LINE6_USB_DUMP_PCM is not set
# CONFIG_LINE6_USB_RAW is not set
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
CONFIG_USB_SERIAL_QUATECH2=m
CONFIG_VT6655=m
CONFIG_VT6656=m
CONFIG_DX_SEP=m
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
CONFIG_ZSMALLOC=m
CONFIG_WLAGS49_H2=m
CONFIG_WLAGS49_H25=m
CONFIG_FB_SM7XX=m
CONFIG_CRYSTALHD=m
# CONFIG_CXT1E1 is not set
CONFIG_FB_XGI=m
CONFIG_ACPI_QUICKSTART=m
CONFIG_SBE_2T3E3=m
CONFIG_USB_ENESTORAGE=m
CONFIG_BCM_WIMAX=m
# CONFIG_FT1000 is not set

#
# Speakup console speech
#
CONFIG_SPEAKUP=m
CONFIG_SPEAKUP_SYNTH_ACNTSA=m
CONFIG_SPEAKUP_SYNTH_ACNTPC=m
CONFIG_SPEAKUP_SYNTH_APOLLO=m
CONFIG_SPEAKUP_SYNTH_AUDPTR=m
CONFIG_SPEAKUP_SYNTH_BNS=m
CONFIG_SPEAKUP_SYNTH_DECTLK=m
CONFIG_SPEAKUP_SYNTH_DECEXT=m
CONFIG_SPEAKUP_SYNTH_DECPC=m
CONFIG_SPEAKUP_SYNTH_DTLK=m
CONFIG_SPEAKUP_SYNTH_KEYPC=m
CONFIG_SPEAKUP_SYNTH_LTLK=m
CONFIG_SPEAKUP_SYNTH_SOFT=m
CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AS102=m
CONFIG_DVB_CXD2099=m
CONFIG_VIDEO_DT3155=m
CONFIG_DT3155_CCIR=y
CONFIG_DT3155_STREAMING=y
# CONFIG_VIDEO_GO7007 is not set
CONFIG_SOLO6X10=m
CONFIG_LIRC_STAGING=y
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IGORPLUGUSB=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m

#
# Android
#
# CONFIG_ANDROID is not set
CONFIG_PHONE=m
CONFIG_PHONE_IXJ=m
CONFIG_PHONE_IXJ_PCMCIA=m
CONFIG_USB_WPAN_HCD=m
# CONFIG_IPACK_BUS is not set
CONFIG_WIMAX_GDM72XX=m
# CONFIG_WIMAX_GDM72XX_QOS is not set
# CONFIG_WIMAX_GDM72XX_K_MODE is not set
CONFIG_WIMAX_GDM72XX_WIMAX2=y
CONFIG_WIMAX_GDM72XX_USB=y
# CONFIG_WIMAX_GDM72XX_SDIO is not set
# CONFIG_WIMAX_GDM72XX_USB_PM is not set
CONFIG_CSR_WIFI=m
CONFIG_NET_VENDOR_SILICOM=y
# CONFIG_SBYPASS is not set
# CONFIG_BPCTL is not set
# CONFIG_CED1401 is not set
# CONFIG_DGRP is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
CONFIG_ASUS_LAPTOP=m
CONFIG_DELL_LAPTOP=m
CONFIG_DELL_WMI=m
CONFIG_DELL_WMI_AIO=m
CONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
CONFIG_FUJITSU_TABLET=m
CONFIG_AMILO_RFKILL=m
CONFIG_HP_ACCEL=m
CONFIG_HP_WMI=m
CONFIG_MSI_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
CONFIG_COMPAL_LAPTOP=m
CONFIG_SONY_LAPTOP=m
CONFIG_SONYPI_COMPAT=y
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_THINKPAD_ACPI=m
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
# CONFIG_THINKPAD_ACPI_DEBUG is not set
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
CONFIG_THINKPAD_ACPI_VIDEO=y
CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
CONFIG_SENSORS_HDAPS=m
CONFIG_INTEL_MENLOW=m
CONFIG_EEEPC_LAPTOP=m
CONFIG_ASUS_WMI=m
CONFIG_ASUS_NB_WMI=m
CONFIG_EEEPC_WMI=m
CONFIG_ACPI_WMI=m
CONFIG_MSI_WMI=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_IPS=m
CONFIG_IBM_RTL=m
CONFIG_XO15_EBOOK=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_SAMSUNG_Q10=m
CONFIG_APPLE_GMUX=m

#
# Hardware Spinlock drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
# CONFIG_AMD_IOMMU is not set
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y

#
# Remoteproc drivers (EXPERIMENTAL)
#
# CONFIG_STE_MODEM_RPROC is not set

#
# Rpmsg drivers (EXPERIMENTAL)
#
CONFIG_VIRT_DRIVERS=y
CONFIG_PM_DEVFREQ=y

#
# DEVFREQ Governors
#
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
CONFIG_DEVFREQ_GOV_POWERSAVE=y
CONFIG_DEVFREQ_GOV_USERSPACE=y

#
# DEVFREQ Drivers
#
CONFIG_EXTCON=m

#
# Extcon Device Drivers
#
CONFIG_EXTCON_GPIO=m
CONFIG_EXTCON_ARIZONA=m
CONFIG_MEMORY=y
# CONFIG_IIO is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set

#
# Firmware Drivers
#
CONFIG_EDD=m
CONFIG_EDD_OFF=y
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_EFI_VARS=m
CONFIG_DELL_RBU=m
CONFIG_DCDBAS=m
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=m
CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m
# CONFIG_GOOGLE_FIRMWARE is not set

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=m
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=m
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=m
CONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_XFS_FS=m
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_DEBUG is not set
CONFIG_GFS2_FS=m
CONFIG_GFS2_FS_LOCKING_DLM=y
CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
# CONFIG_OCFS2_FS_STATS is not set
CONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
CONFIG_NILFS2_FS=m
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=m
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=m
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_GENERIC_ACL=y

#
# Caches
#
CONFIG_FSCACHE=m
# CONFIG_FSCACHE_STATS is not set
# CONFIG_FSCACHE_HISTOGRAM is not set
# CONFIG_FSCACHE_DEBUG is not set
# CONFIG_FSCACHE_OBJECT_LIST is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
CONFIG_NTFS_RW=y

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
CONFIG_ADFS_FS=m
# CONFIG_ADFS_FS_RW is not set
CONFIG_AFFS_FS=m
CONFIG_ECRYPT_FS=m
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
CONFIG_JFFS2_FS=m
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
# CONFIG_JFFS2_SUMMARY is not set
# CONFIG_JFFS2_FS_XATTR is not set
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
CONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not set
CONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not set
CONFIG_UBIFS_FS=m
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_UBIFS_FS_LZO=y
CONFIG_UBIFS_FS_ZLIB=y
CONFIG_LOGFS=m
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
CONFIG_SQUASHFS_EMBEDDED=y
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
CONFIG_VXFS_FS=m
CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
CONFIG_HPFS_FS=m
CONFIG_QNX4FS_FS=m
CONFIG_QNX6FS_FS=m
# CONFIG_QNX6FS_DEBUG is not set
CONFIG_ROMFS_FS=y
CONFIG_ROMFS_BACKED_BY_BLOCK=y
CONFIG_ROMFS_ON_BLOCK=y
CONFIG_PSTORE=y
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_FTRACE is not set
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set
CONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not set
CONFIG_ORE=m
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
# CONFIG_NFS_V4_1 is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
# CONFIG_NFSD_FAULT_INJECTION is not set
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_XPRT_RDMA=m
CONFIG_SUNRPC_SWAP=y
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_SUNRPC_DEBUG is not set
CONFIG_CEPH_FS=m
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
CONFIG_CIFS_WEAK_PW_HASH=y
# CONFIG_CIFS_UPCALL is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_DFS_UPCALL is not set
# CONFIG_CIFS_SMB2 is not set
CONFIG_CIFS_FSCACHE=y
CONFIG_NCP_FS=m
CONFIG_NCPFS_PACKET_SIGNING=y
CONFIG_NCPFS_IOCTL_LOCKING=y
CONFIG_NCPFS_STRONG=y
CONFIG_NCPFS_NFS_NS=y
CONFIG_NCPFS_OS2_NS=y
CONFIG_NCPFS_SMALLDOS=y
CONFIG_NCPFS_NLS=y
CONFIG_NCPFS_EXTRAS=y
CONFIG_CODA_FS=m
CONFIG_AFS_FS=m
# CONFIG_AFS_DEBUG is not set
# CONFIG_AFS_FSCACHE is not set
CONFIG_9P_FS=m
# CONFIG_9P_FSCACHE is not set
# CONFIG_9P_FS_POSIX_ACL is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_737=m
CONFIG_NLS_CODEPAGE_775=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_857=m
CONFIG_NLS_CODEPAGE_860=m
CONFIG_NLS_CODEPAGE_861=m
CONFIG_NLS_CODEPAGE_862=m
CONFIG_NLS_CODEPAGE_863=m
CONFIG_NLS_CODEPAGE_864=m
CONFIG_NLS_CODEPAGE_865=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_869=m
CONFIG_NLS_CODEPAGE_936=m
CONFIG_NLS_CODEPAGE_950=m
CONFIG_NLS_CODEPAGE_932=m
CONFIG_NLS_CODEPAGE_949=m
CONFIG_NLS_CODEPAGE_874=m
CONFIG_NLS_ISO8859_8=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ASCII=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_3=m
CONFIG_NLS_ISO8859_4=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_6=m
CONFIG_NLS_ISO8859_7=m
CONFIG_NLS_ISO8859_9=m
CONFIG_NLS_ISO8859_13=m
CONFIG_NLS_ISO8859_14=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_CELTIC=m
CONFIG_NLS_MAC_CENTEURO=m
CONFIG_NLS_MAC_CROATIAN=m
CONFIG_NLS_MAC_CYRILLIC=m
CONFIG_NLS_MAC_GAELIC=m
CONFIG_NLS_MAC_GREEK=m
CONFIG_NLS_MAC_ICELAND=m
CONFIG_NLS_MAC_INUIT=m
CONFIG_NLS_MAC_ROMANIAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=0
CONFIG_MAGIC_SYSRQ=y
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not set
CONFIG_UNUSED_SYMBOLS=y
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
CONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_DEBUG_PER_CPU_MAPS is not set
# CONFIG_LKDTM is not set
CONFIG_NOTIFIER_ERROR_INJECTION=m
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
CONFIG_PM_NOTIFIER_ERROR_INJECT=m
CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_RING_BUFFER_ALLOW_SWAP=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_FTRACE_SYSCALLS is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENT is not set
# CONFIG_PROBE_EVENTS is not set
CONFIG_DYNAMIC_FTRACE=y
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_MMIOTRACE is not set
CONFIG_RING_BUFFER_BENCHMARK=m
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_DMA_API_DEBUG is not set
CONFIG_ATOMIC64_SELFTEST=y
CONFIG_ASYNC_RAID6_TEST=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_TEST_KSTRTOX is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_RODATA_TEST=y
# CONFIG_DEBUG_SET_MODULE_RONX is not set
# CONFIG_DEBUG_NX_TEST is not set
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
CONFIG_OPTIMIZE_INLINING=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set

#
# Security options
#
CONFIG_KEYS=y
CONFIG_TRUSTED_KEYS=m
CONFIG_ENCRYPTED_KEYS=m
CONFIG_KEYS_DEBUG_PROC_KEYS=y
CONFIG_SECURITY_DMESG_RESTRICT=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
CONFIG_SECURITY_NETWORK_XFRM=y
# CONFIG_SECURITY_PATH is not set
# CONFIG_INTEL_TXT is not set
# CONFIG_SECURITY_SELINUX is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_IMA is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_XOR_BLOCKS=y
CONFIG_ASYNC_CORE=y
CONFIG_ASYNC_MEMCPY=y
CONFIG_ASYNC_XOR=y
CONFIG_ASYNC_PQ=y
CONFIG_ASYNC_RAID6_RECOV=y
CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ABLK_HELPER_X86=y
CONFIG_CRYPTO_GLUE_HELPER_X86=y

#
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_SEQIV=y

#
# Block modes
#
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LRW=y
CONFIG_CRYPTO_PCBC=y
CONFIG_CRYPTO_XTS=y

#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32C_INTEL=m
CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=y
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_TGR192=y
CONFIG_CRYPTO_WP512=y
CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_X86_64=y
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_ANUBIS=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_BLOWFISH=y
CONFIG_CRYPTO_BLOWFISH_COMMON=y
CONFIG_CRYPTO_BLOWFISH_X86_64=m
CONFIG_CRYPTO_CAMELLIA=y
CONFIG_CRYPTO_CAMELLIA_X86_64=y
CONFIG_CRYPTO_CAST5=y
# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
CONFIG_CRYPTO_CAST6=y
# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=y
CONFIG_CRYPTO_KHAZAD=y
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_X86_64=m
CONFIG_CRYPTO_SEED=y
CONFIG_CRYPTO_SERPENT=y
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=y
CONFIG_CRYPTO_SERPENT_AVX_X86_64=y
CONFIG_CRYPTO_TEA=y
CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_TWOFISH_COMMON=y
CONFIG_CRYPTO_TWOFISH_X86_64=y
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=y
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=y

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=m

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_VHOST_NET=m
CONFIG_TCM_VHOST=m
CONFIG_BINARY_PRINTF=y

#
# Library routines
#
CONFIG_RAID6_PQ=y
CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=m
CONFIG_CRC_ITU_T=y
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_CRC7=m
CONFIG_LIBCRC32C=y
CONFIG_CRC8=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=m
CONFIG_REED_SOLOMON_ENC8=y
CONFIG_REED_SOLOMON_DEC8=y
CONFIG_REED_SOLOMON_DEC16=y
CONFIG_BCH=m
CONFIG_BCH_CONST_PARAMS=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_BTREE=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
CONFIG_CORDIC=m
# CONFIG_DDR is not set

[-- Attachment #1.3: callisto.dmesg --]
[-- Type: text/plain, Size: 74431 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.7.0-rc4 (root@callisto) (gcc version 4.7.1 (GCC) ) #1 SMP Mon Nov 5 20:10:07 CET 2012
[    0.000000] Command line: auto BOOT_IMAGE=3.7rc4 ro root=/dev/mapper/lukssda2 vt.default_utf8=1
[    0.000000] Disabled fast string operations
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000ef000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000b8f27fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000b8f28000-0x00000000b8f29fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000b8f2a000-0x00000000b9d6ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000b9d70000-0x00000000b9d7ffff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000b9d80000-0x00000000bc49cfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bc49d000-0x00000000bc69cfff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bc69d000-0x00000000bde91fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bde92000-0x00000000bde99fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bde9a000-0x00000000bdebefff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bdebf000-0x00000000bdecefff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bdecf000-0x00000000bdfcefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bdfcf000-0x00000000bdffefff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bdfff000-0x00000000bdffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000be000000-0x00000000bfffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed13fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed18000-0x00000000fed19fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffe80000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000023bffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.4 present.
[    0.000000] DMI: Hewlett-Packard HP EliteBook 8530w (GW680AV)/30E7, BIOS 68PDV Ver. F.12 06/08/2010
[    0.000000] e820: update [mem 0x00000000-0x0000ffff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] No AGP bridge found
[    0.000000] e820: last_pfn = 0x23c000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0FFE00000 mask FFFE00000 write-protect
[    0.000000]   1 base 000000000 mask F80000000 write-back
[    0.000000]   2 base 080000000 mask FC0000000 write-back
[    0.000000]   3 base 100000000 mask F00000000 write-back
[    0.000000]   4 base 200000000 mask FC0000000 write-back
[    0.000000]   5 base 23C000000 mask FFC000000 uncachable
[    0.000000]   6 base 0B9D70000 mask FFFFF0000 uncachable
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: last_pfn = 0xbe000 max_arch_pfn = 0x400000000
[    0.000000] initial memory mapped: [mem 0x00000000-0x1fffffff]
[    0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
[    0.000000] init_memory_mapping: [mem 0x00000000-0xbdffffff]
[    0.000000]  [mem 0x00000000-0xbdffffff] page 2M
[    0.000000] kernel direct mapping tables up to 0xbdffffff @ [mem 0x1fffc000-0x1fffffff]
[    0.000000] init_memory_mapping: [mem 0x100000000-0x23bffffff]
[    0.000000]  [mem 0x100000000-0x23bffffff] page 2M
[    0.000000] kernel direct mapping tables up to 0x23bffffff @ [mem 0xbdeb9000-0xbdebefff]
[    0.000000] RAMDISK: [mem 0x7fa86000-0x7fffffff]
[    0.000000] ACPI: RSDP 00000000000f68c0 00024 (v02 HPQOEM)
[    0.000000] ACPI: XSDT 00000000bdffe120 0008C (v01 HPQOEM SLIC-MPC 0000000F      01000013)
[    0.000000] ACPI: FACP 00000000bdffc000 000F4 (v03 HPQOEM 30E7     0000000F HP   00000001)
[    0.000000] ACPI: DSDT 00000000bdfde000 18F98 (v01 HPQOEM 30E7     00000001 INTL 20060912)
[    0.000000] ACPI: FACS 00000000bdf9c000 00040
[    0.000000] ACPI: HPET 00000000bdffb000 00038 (v01 HPQOEM 30E7     00000001 HP   00000001)
[    0.000000] ACPI: APIC 00000000bdffa000 00084 (v01 HPQOEM 30E7     00000001 HP   00000001)
[    0.000000] ACPI: MCFG 00000000bdff9000 0003C (v01 HPQOEM 30E7     00000001 HP   00000001)
[    0.000000] ACPI: TCPA 00000000bdff7000 00032 (v02 HPQOEM 30E7     00000000 HP   00000001)
[    0.000000] ACPI: SSDT 00000000bdfdb000 003B0 (v01 HPQOEM SataAhci 00001000 INTL 20060912)
[    0.000000] ACPI: SLIC 00000000bdfd9000 00176 (v01 HPQOEM SLIC-MPC 00000001 HP   00000001)
[    0.000000] ACPI: SSDT 00000000bdfd6000 01F08 (v01 HPQOEM NVIDIAGF 00000001 INTL 20060912)
[    0.000000] ACPI: DMAR 00000000bdfd5000 000D8 (v01               ? 00000001      00000000)
[    0.000000] ACPI: ASF! 00000000bdff8000 00095 (v32 HPQOEM 30E7     00000001 HP   00000001)
[    0.000000] ACPI: SSDT 00000000bdfd4000 0066C (v01  PmRef    CpuPm 00003000 INTL 20060912)
[    0.000000] ACPI: SSDT 00000000bdfd3000 00288 (v01  PmRef  Cpu0Tst 00003000 INTL 20060912)
[    0.000000] ACPI: SSDT 00000000bdfd2000 00225 (v01  PmRef    ApTst 00003000 INTL 20060912)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000]  [ffffea0000000000-ffffea0008ffffff] PMD -> [ffff880233600000-ffff88023b5fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x23bffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00010000-0x0009efff]
[    0.000000]   node   0: [mem 0x00100000-0xb8f27fff]
[    0.000000]   node   0: [mem 0xb8f2a000-0xb9d6ffff]
[    0.000000]   node   0: [mem 0xb9d80000-0xbc49cfff]
[    0.000000]   node   0: [mem 0xbc69d000-0xbde91fff]
[    0.000000]   node   0: [mem 0xbde9a000-0xbdebefff]
[    0.000000]   node   0: [mem 0xbdfff000-0xbdffffff]
[    0.000000]   node   0: [mem 0x100000000-0x23bffffff]
[    0.000000] On node 0 totalpages: 2071605
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 6 pages reserved
[    0.000000]   DMA zone: 3913 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 16320 pages used for memmap
[    0.000000]   DMA32 zone: 756966 pages, LIFO batch:31
[    0.000000]   Normal zone: 20224 pages used for memmap
[    0.000000]   Normal zone: 1274112 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x00] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x00] disabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 4 CPUs, 2 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000ef000
[    0.000000] PM: Registered nosave memory: 00000000000ef000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 00000000b8f28000 - 00000000b8f2a000
[    0.000000] PM: Registered nosave memory: 00000000b9d70000 - 00000000b9d80000
[    0.000000] PM: Registered nosave memory: 00000000bc49d000 - 00000000bc69d000
[    0.000000] PM: Registered nosave memory: 00000000bde92000 - 00000000bde9a000
[    0.000000] PM: Registered nosave memory: 00000000bdebf000 - 00000000bdecf000
[    0.000000] PM: Registered nosave memory: 00000000bdecf000 - 00000000bdfcf000
[    0.000000] PM: Registered nosave memory: 00000000bdfcf000 - 00000000bdfff000
[    0.000000] PM: Registered nosave memory: 00000000be000000 - 00000000c0000000
[    0.000000] PM: Registered nosave memory: 00000000c0000000 - 00000000e0000000
[    0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000f0000000
[    0.000000] PM: Registered nosave memory: 00000000f0000000 - 00000000fec00000
[    0.000000] PM: Registered nosave memory: 00000000fec00000 - 00000000fec01000
[    0.000000] PM: Registered nosave memory: 00000000fec01000 - 00000000fed10000
[    0.000000] PM: Registered nosave memory: 00000000fed10000 - 00000000fed14000
[    0.000000] PM: Registered nosave memory: 00000000fed14000 - 00000000fed18000
[    0.000000] PM: Registered nosave memory: 00000000fed18000 - 00000000fed1a000
[    0.000000] PM: Registered nosave memory: 00000000fed1a000 - 00000000fed1c000
[    0.000000] PM: Registered nosave memory: 00000000fed1c000 - 00000000fed20000
[    0.000000] PM: Registered nosave memory: 00000000fed20000 - 00000000fee00000
[    0.000000] PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
[    0.000000] PM: Registered nosave memory: 00000000fee01000 - 00000000ffe80000
[    0.000000] PM: Registered nosave memory: 00000000ffe80000 - 0000000100000000
[    0.000000] e820: [mem 0xc0000000-0xdfffffff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] PERCPU: Embedded 26 pages/cpu @ffff88023bc00000 s77696 r8192 d20608 u524288
[    0.000000] pcpu-alloc: s77696 r8192 d20608 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 2034991
[    0.000000] Kernel command line: auto BOOT_IMAGE=3.7rc4 ro root=/dev/mapper/lukssda2 vt.default_utf8=1
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] xsave: enabled xstate_bv 0x3, cntxt size 0x240
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 8060252k/9371648k available (5508k kernel code, 1085228k absent, 226168k reserved, 3274k data, 724k init)
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	CONFIG_RCU_FANOUT set to non-default value of 32
[    0.000000] 	RCU restricting CPUs from NR_CPUS=32 to nr_cpu_ids=4.
[    0.000000] NR_IRQS:4352 nr_irqs:712 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 2660.052 MHz processor
[    0.001003] Calibrating delay loop (skipped), value calculated using timer frequency.. 5320.10 BogoMIPS (lpj=2660052)
[    0.001009] pid_max: default: 32768 minimum: 301
[    0.001039] Security Framework initialized
[    0.001051] Mount-cache hash table entries: 256
[    0.001244] Initializing cgroup subsys cpuacct
[    0.001248] Initializing cgroup subsys devices
[    0.001251] Initializing cgroup subsys freezer
[    0.001254] Initializing cgroup subsys net_cls
[    0.001256] Initializing cgroup subsys blkio
[    0.001259] Initializing cgroup subsys perf_event
[    0.001280] Disabled fast string operations
[    0.001286] CPU: Physical Processor ID: 0
[    0.001288] CPU: Processor Core ID: 0
[    0.001291] mce: CPU supports 6 MCE banks
[    0.001298] CPU0: Thermal monitoring handled by SMI
[    0.001301] process: using mwait in idle threads
[    0.001307] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4
[    0.001307] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32
[    0.001307] tlb_flushall_shift: -1
[    0.001382] Freeing SMP alternatives: 20k freed
[    0.001400] ACPI: Core revision 20120913
[    0.008016] ftrace: allocating 21450 entries in 84 pages
[    0.013049] dmar: Host address width 36
[    0.013053] dmar: DRHD base: 0x000000feb03000 flags: 0x0
[    0.013060] dmar: IOMMU 0: reg_base_addr feb03000 ver 1:0 cap c9008020e30260 ecap 1000
[    0.013063] dmar: DRHD base: 0x000000feb00000 flags: 0x0
[    0.013071] dmar: IOMMU 1: reg_base_addr feb00000 ver 1:0 cap c0000020630270 ecap 1000
[    0.013074] dmar: DRHD base: 0x000000feb02000 flags: 0x1
[    0.013079] dmar: IOMMU 2: reg_base_addr feb02000 ver 1:0 cap c9008020630260 ecap 1000
[    0.013083] dmar: RMRR base: 0x000000b9d70000 end: 0x000000b9d7ffff
[    0.013590] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.023978] smpboot: CPU0: Intel(R) Core(TM)2 Duo CPU     T9550  @ 2.66GHz (fam: 06, model: 17, stepping: 0a)
[    0.024000] Performance Events: PEBS fmt0+, 4-deep LBR, Core2 events, Intel PMU driver.
[    0.024000] ... version:                2
[    0.024000] ... bit width:              40
[    0.024000] ... generic registers:      2
[    0.024000] ... value mask:             000000ffffffffff
[    0.024000] ... max period:             000000007fffffff
[    0.024000] ... fixed-purpose events:   3
[    0.024000] ... event mask:             0000000700000003
[    0.002000] CPU1: Thermal monitoring handled by SMI
[    0.024000] smpboot: Booting Node   0, Processors  #1
[    0.035016] Brought up 2 CPUs
[    0.035024] smpboot: Total of 2 processors activated (10640.20 BogoMIPS)
[    0.036073] devtmpfs: initialized
[    0.037112] PM: Registering ACPI NVS region [mem 0xb9d70000-0xb9d7ffff] (65536 bytes)
[    0.037112] PM: Registering ACPI NVS region [mem 0xbc49d000-0xbc69cfff] (2097152 bytes)
[    0.037112] PM: Registering ACPI NVS region [mem 0xbdecf000-0xbdfcefff] (1048576 bytes)
[    0.037114] xor: automatically using best checksumming function:
[    0.047001]    generic_sse: 10412.000 MB/sec
[    0.047006] atomic64 test passed for x86-64 platform with CX8 and with SSE
[    0.047029] regulator-dummy: no parameters
[    0.047046] NET: Registered protocol family 16
[    0.047072] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    0.047072] ACPI: bus type pci registered
[    0.047072] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.047072] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    0.077967] PCI: Using configuration type 1 for base access
[    0.082000] bio: create slab <bio-0> at 0
[    0.098607] raid6: sse2x1    4363 MB/s
[    0.115608] raid6: sse2x2    4507 MB/s
[    0.132599] raid6: sse2x4    7820 MB/s
[    0.132601] raid6: using algorithm sse2x4 (7820 MB/s)
[    0.132604] raid6: using ssse3x2 recovery algorithm
[    0.133018] ACPI: Added _OSI(Module Device)
[    0.133021] ACPI: Added _OSI(Processor Device)
[    0.133024] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.133026] ACPI: Added _OSI(Processor Aggregator Device)
[    0.134102] ACPI: EC: Look up EC in DSDT
[    0.140759] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.150391] ACPI: SSDT 00000000bdec7c18 002B7 (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.150727] ACPI: Dynamic OEM Table Load:
[    0.150731] ACPI: SSDT           (null) 002B7 (v01  PmRef  Cpu0Ist 00003000 INTL 20060912)
[    0.150830] ACPI: SSDT 00000000bdec5618 0059A (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.151159] ACPI: Dynamic OEM Table Load:
[    0.151162] ACPI: SSDT           (null) 0059A (v01  PmRef  Cpu0Cst 00003001 INTL 20060912)
[    0.157187] ACPI: SSDT 00000000bdec6e18 001D7 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.157533] ACPI: Dynamic OEM Table Load:
[    0.157536] ACPI: SSDT           (null) 001D7 (v01  PmRef    ApIst 00003000 INTL 20060912)
[    0.162069] ACPI: SSDT 00000000bdec7f18 0008D (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.162401] ACPI: Dynamic OEM Table Load:
[    0.162405] ACPI: SSDT           (null) 0008D (v01  PmRef    ApCst 00003000 INTL 20060912)
[    0.411551] ACPI: Interpreter enabled
[    0.411556] ACPI: (supports S0 S3 S4 S5)
[    0.411572] ACPI: Using IOAPIC for interrupt routing
[    0.413061] ACPI: Power Resource [APPR] (off)
[    0.425229] ACPI: Power Resource [LPP] (on)
[    0.427052] ACPI: Power Resource [PGF0] (off)
[    0.427090] ACPI: EC: GPE = 0x16, I/O: command/status = 0x66, data = 0x62
[    0.427161] ACPI: No dock devices found.
[    0.427166] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.427734] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.428418] PCI host bridge to bus 0000:00
[    0.428418] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.428418] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.428418] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.428418] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.428418] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xdfffffff]
[    0.428418] pci_bus 0000:00: root bus resource [mem 0xf0000000-0xfedfffff]
[    0.428418] pci_bus 0000:00: root bus resource [mem 0xfee01000-0xffffffff]
[    0.428418] pci 0000:00:00.0: [8086:2a40] type 00 class 0x060000
[    0.428418] DMAR: Forcing write-buffer flush capability
[    0.428418] DMAR: Disabling IOMMU for graphics on this chipset
[    0.428418] pci 0000:00:01.0: [8086:2a41] type 01 class 0x060400
[    0.428418] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.428418] pci 0000:00:03.0: [8086:2a44] type 00 class 0x078000
[    0.428418] pci 0000:00:03.0: reg 10: [mem 0xdb327000-0xdb32700f 64bit]
[    0.428418] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold
[    0.428418] pci 0000:00:03.2: [8086:2a46] type 00 class 0x010185
[    0.428418] pci 0000:00:03.2: reg 10: [io  0x9130-0x9137]
[    0.428418] pci 0000:00:03.2: reg 14: [io  0x9144-0x9147]
[    0.428418] pci 0000:00:03.2: reg 18: [io  0x9128-0x912f]
[    0.428418] pci 0000:00:03.2: reg 1c: [io  0x9140-0x9143]
[    0.428418] pci 0000:00:03.2: reg 20: [io  0x9100-0x910f]
[    0.428418] pci 0000:00:03.3: [8086:2a47] type 00 class 0x070002
[    0.428418] pci 0000:00:03.3: reg 10: [io  0x9120-0x9127]
[    0.428418] pci 0000:00:03.3: reg 14: [mem 0xdb325000-0xdb325fff]
[    0.428418] pci 0000:00:19.0: [8086:10f5] type 00 class 0x020000
[    0.428441] pci 0000:00:19.0: reg 10: [mem 0xdb300000-0xdb31ffff]
[    0.428451] pci 0000:00:19.0: reg 14: [mem 0xdb324000-0xdb324fff]
[    0.428462] pci 0000:00:19.0: reg 18: [io  0x90e0-0x90ff]
[    0.428548] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold
[    0.428572] pci 0000:00:1a.0: [8086:2937] type 00 class 0x0c0300
[    0.429054] pci 0000:00:1a.0: reg 20: [io  0x90c0-0x90df]
[    0.429119] pci 0000:00:1a.1: [8086:2938] type 00 class 0x0c0300
[    0.429173] pci 0000:00:1a.1: reg 20: [io  0x90a0-0x90bf]
[    0.429237] pci 0000:00:1a.2: [8086:2939] type 00 class 0x0c0300
[    0.429291] pci 0000:00:1a.2: reg 20: [io  0x9080-0x909f]
[    0.429365] pci 0000:00:1a.7: [8086:293c] type 00 class 0x0c0320
[    0.429389] pci 0000:00:1a.7: reg 10: [mem 0xdb326c00-0xdb326fff]
[    0.429494] pci 0000:00:1a.7: PME# supported from D0 D3hot D3cold
[    0.429526] pci 0000:00:1b.0: [8086:293e] type 00 class 0x040300
[    0.429545] pci 0000:00:1b.0: reg 10: [mem 0xdb320000-0xdb323fff 64bit]
[    0.429639] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.429665] pci 0000:00:1c.0: [8086:2940] type 01 class 0x060400
[    0.429762] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.429790] pci 0000:00:1c.1: [8086:2942] type 01 class 0x060400
[    0.429888] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.429918] pci 0000:00:1c.2: [8086:2944] type 01 class 0x060400
[    0.430028] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.430059] pci 0000:00:1c.4: [8086:2948] type 01 class 0x060400
[    0.430156] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[    0.430188] pci 0000:00:1d.0: [8086:2934] type 00 class 0x0c0300
[    0.430242] pci 0000:00:1d.0: reg 20: [io  0x9060-0x907f]
[    0.430306] pci 0000:00:1d.1: [8086:2935] type 00 class 0x0c0300
[    0.430360] pci 0000:00:1d.1: reg 20: [io  0x9040-0x905f]
[    0.430424] pci 0000:00:1d.2: [8086:2936] type 00 class 0x0c0300
[    0.430478] pci 0000:00:1d.2: reg 20: [io  0x9020-0x903f]
[    0.430553] pci 0000:00:1d.7: [8086:293a] type 00 class 0x0c0320
[    0.430577] pci 0000:00:1d.7: reg 10: [mem 0xdb326800-0xdb326bff]
[    0.430682] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[    0.430707] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
[    0.430794] pci 0000:00:1f.0: [8086:2917] type 00 class 0x060100
[    0.430954] pci 0000:00:1f.2: [8086:2929] type 00 class 0x010601
[    0.430980] pci 0000:00:1f.2: reg 10: [io  0x9118-0x911f]
[    0.430990] pci 0000:00:1f.2: reg 14: [io  0x913c-0x913f]
[    0.431005] pci 0000:00:1f.2: reg 18: [io  0x9110-0x9117]
[    0.431015] pci 0000:00:1f.2: reg 1c: [io  0x9138-0x913b]
[    0.431026] pci 0000:00:1f.2: reg 20: [io  0x9000-0x901f]
[    0.431036] pci 0000:00:1f.2: reg 24: [mem 0xdb326000-0xdb3267ff]
[    0.431103] pci 0000:00:1f.2: PME# supported from D3hot
[    0.431188] pci 0000:01:00.0: [10de:065c] type 00 class 0x030000
[    0.431217] pci 0000:01:00.0: reg 10: [mem 0xd2000000-0xd2ffffff]
[    0.431241] pci 0000:01:00.0: reg 14: [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.431266] pci 0000:01:00.0: reg 1c: [mem 0xd0000000-0xd1ffffff 64bit]
[    0.431284] pci 0000:01:00.0: reg 24: [io  0x8000-0x807f]
[    0.431302] pci 0000:01:00.0: reg 30: [mem 0xfff80000-0xffffffff pref]
[    0.433025] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.433029] pci 0000:00:01.0:   bridge window [io  0x8000-0x8fff]
[    0.433032] pci 0000:00:01.0:   bridge window [mem 0xd0000000-0xd2ffffff]
[    0.433035] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.433089] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.433098] pci 0000:00:1c.0:   bridge window [mem 0xdb200000-0xdb2fffff]
[    0.433216] pci 0000:03:00.0: [8086:4236] type 00 class 0x028000
[    0.433259] pci 0000:03:00.0: reg 10: [mem 0xdb100000-0xdb101fff 64bit]
[    0.433458] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    0.435043] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.435052] pci 0000:00:1c.1:   bridge window [mem 0xdb100000-0xdb1fffff]
[    0.435134] pci 0000:04:00.0: [1987:5000] type 00 class 0x01018f
[    0.435155] pci 0000:04:00.0: reg 10: [io  0x5018-0x501f]
[    0.435170] pci 0000:04:00.0: reg 14: [io  0x5024-0x5027]
[    0.435185] pci 0000:04:00.0: reg 18: [io  0x5010-0x5017]
[    0.435200] pci 0000:04:00.0: reg 1c: [io  0x5020-0x5023]
[    0.435215] pci 0000:04:00.0: reg 20: [io  0x5000-0x500f]
[    0.437016] pci 0000:00:1c.2: PCI bridge to [bus 04-44]
[    0.437022] pci 0000:00:1c.2:   bridge window [io  0x5000-0x7fff]
[    0.437026] pci 0000:00:1c.2:   bridge window [mem 0xd7100000-0xdb0fffff]
[    0.437086] pci 0000:00:1c.4: PCI bridge to [bus 45-85]
[    0.437091] pci 0000:00:1c.4:   bridge window [io  0x3000-0x4fff]
[    0.437095] pci 0000:00:1c.4:   bridge window [mem 0xd3100000-0xd70fffff]
[    0.437159] pci 0000:86:09.0: [1180:0822] type 00 class 0x080500
[    0.437184] pci 0000:86:09.0: reg 10: [mem 0xd3001b00-0xd3001bff]
[    0.437295] pci 0000:86:09.0: supports D1 D2
[    0.437297] pci 0000:86:09.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.437322] pci 0000:86:09.1: [1180:0843] type 00 class 0x088000
[    0.437346] pci 0000:86:09.1: reg 10: [mem 0xd3001a00-0xd3001aff]
[    0.437458] pci 0000:86:09.1: supports D1 D2
[    0.437459] pci 0000:86:09.1: PME# supported from D0 D1 D2 D3hot D3cold
[    0.437485] pci 0000:86:09.2: [1180:0592] type 00 class 0x088000
[    0.437509] pci 0000:86:09.2: reg 10: [mem 0xd3001900-0xd30019ff]
[    0.437620] pci 0000:86:09.2: supports D1 D2
[    0.437621] pci 0000:86:09.2: PME# supported from D0 D1 D2 D3hot D3cold
[    0.437647] pci 0000:86:09.3: [1180:0852] type 00 class 0x088000
[    0.437671] pci 0000:86:09.3: reg 10: [mem 0xd3001800-0xd30018ff]
[    0.437782] pci 0000:86:09.3: supports D1 D2
[    0.437783] pci 0000:86:09.3: PME# supported from D0 D1 D2 D3hot D3cold
[    0.437844] pci 0000:00:1e.0: PCI bridge to [bus 86-87] (subtractive decode)
[    0.437850] pci 0000:00:1e.0:   bridge window [io  0x2000-0x2fff]
[    0.437854] pci 0000:00:1e.0:   bridge window [mem 0xd3000000-0xd30fffff]
[    0.437861] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
[    0.437863] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff] (subtractive decode)
[    0.437864] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[    0.437868] pci 0000:00:1e.0:   bridge window [mem 0xc0000000-0xdfffffff] (subtractive decode)
[    0.437869] pci 0000:00:1e.0:   bridge window [mem 0xf0000000-0xfedfffff] (subtractive decode)
[    0.437871] pci 0000:00:1e.0:   bridge window [mem 0xfee01000-0xffffffff] (subtractive decode)
[    0.437902] pci_bus 0000:00: on NUMA node 0
[    0.437904] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.438022] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[    0.438059] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.438086] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.438116] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[    0.438164] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP05._PRT]
[    0.438229] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
[    0.438601]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.439508]  pci0000:00: ACPI _OSC control (0x1d) granted
[    0.446068] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[    0.446084] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.446122] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[    0.446161] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.446198] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[    0.446236] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[    0.446274] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[    0.446312] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *0, disabled.
[    0.446340] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.446340] vgaarb: loaded
[    0.446340] vgaarb: bridge control possible 0000:01:00.0
[    0.447016] SCSI subsystem initialized
[    0.447020] ACPI: bus type scsi registered
[    0.447028] libata version 3.00 loaded.
[    0.447028] ACPI: bus type usb registered
[    0.447028] usbcore: registered new interface driver usbfs
[    0.447028] usbcore: registered new interface driver hub
[    0.447028] usbcore: registered new device driver usb
[    0.447028] PCI: Using ACPI for IRQ routing
[    0.458025] PCI: pci_cache_line_size set to 64 bytes
[    0.458124] e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff]
[    0.458126] e820: reserve RAM buffer [mem 0xb8f28000-0xbbffffff]
[    0.458127] e820: reserve RAM buffer [mem 0xb9d70000-0xbbffffff]
[    0.458128] e820: reserve RAM buffer [mem 0xbc49d000-0xbfffffff]
[    0.458129] e820: reserve RAM buffer [mem 0xbde92000-0xbfffffff]
[    0.458131] e820: reserve RAM buffer [mem 0xbdebf000-0xbfffffff]
[    0.458132] e820: reserve RAM buffer [mem 0xbe000000-0xbfffffff]
[    0.458142] HPET: 4 timers in total, 0 timers will be used for per-cpu timer
[    0.458142] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
[    0.458142] hpet0: 4 comparators, 64-bit 14.318180 MHz counter
[    0.460020] Switching to clocksource hpet
[    0.461260] pnp: PnP ACPI init
[    0.461269] ACPI: bus type pnp registered
[    0.461507] pnp 00:00: [bus 00-ff]
[    0.461510] pnp 00:00: [io  0x0000-0x0cf7 window]
[    0.461512] pnp 00:00: [io  0x0cf8-0x0cff]
[    0.461513] pnp 00:00: [io  0x0d00-0xffff window]
[    0.461515] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    0.461516] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
[    0.461518] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
[    0.461519] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
[    0.461521] pnp 00:00: [mem 0x000cc000-0x000cffff window]
[    0.461522] pnp 00:00: [mem 0x000d0000-0x000d3fff window]
[    0.461524] pnp 00:00: [mem 0x000d4000-0x000d7fff window]
[    0.461525] pnp 00:00: [mem 0x000d8000-0x000dbfff window]
[    0.461527] pnp 00:00: [mem 0x000dc000-0x000dffff window]
[    0.461528] pnp 00:00: [mem 0x000e0000-0x000e3fff window]
[    0.461530] pnp 00:00: [mem 0x000e4000-0x000e7fff window]
[    0.461531] pnp 00:00: [mem 0x000e8000-0x000ebfff window]
[    0.461533] pnp 00:00: [mem 0x000ec000-0x000effff window]
[    0.461535] pnp 00:00: [mem 0x000f0000-0x000fffff window]
[    0.461536] pnp 00:00: [mem 0xc0000000-0xdfffffff window]
[    0.461538] pnp 00:00: [mem 0xf0000000-0xfedfffff window]
[    0.461539] pnp 00:00: [mem 0xfee01000-0xffffffff window]
[    0.461593] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.461653] pnp 00:01: [mem 0xfed1c000-0xfed1ffff]
[    0.461655] pnp 00:01: [mem 0xfed10000-0xfed13fff]
[    0.461657] pnp 00:01: [mem 0xfed18000-0xfed18fff]
[    0.461658] pnp 00:01: [mem 0xfed19000-0xfed19fff]
[    0.461660] pnp 00:01: [mem 0xe0000000-0xefffffff]
[    0.461661] pnp 00:01: [mem 0xfec00000-0xfec00fff]
[    0.461662] pnp 00:01: [mem 0xfed20000-0xfed3ffff]
[    0.461664] pnp 00:01: [mem 0xfed45000-0xfed8ffff]
[    0.461717] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.461722] system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved
[    0.461725] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.461729] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.461732] system 00:01: [mem 0xe0000000-0xefffffff] has been reserved
[    0.461736] system 00:01: [mem 0xfec00000-0xfec00fff] could not be reserved
[    0.461739] system 00:01: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.461743] system 00:01: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.461747] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.462026] pnp 00:02: [io  0x0000-0x001f]
[    0.462028] pnp 00:02: [io  0x0081-0x0091]
[    0.462029] pnp 00:02: [io  0x0093-0x009f]
[    0.462030] pnp 00:02: [io  0x00c0-0x00df]
[    0.462032] pnp 00:02: [dma 4]
[    0.462077] pnp 00:02: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.462085] pnp 00:03: [mem 0xff000000-0xffffffff]
[    0.462130] pnp 00:03: Plug and Play ACPI device, IDs INT0800 (active)
[    0.462170] pnp 00:04: [io  0xfe00-0xfe0f]
[    0.462174] pnp 00:04: [io  0xfe80-0xfe8f]
[    0.462175] pnp 00:04: [mem 0xfed40000-0xfed44fff]
[    0.462218] pnp 00:04: Plug and Play ACPI device, IDs IFX0102 PNP0c31 (active)
[    0.462280] pnp 00:05: [mem 0xfed00000-0xfed003ff]
[    0.462335] system 00:05: [mem 0xfed00000-0xfed003ff] has been reserved
[    0.462340] system 00:05: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    0.462348] pnp 00:06: [io  0x00f0]
[    0.462356] pnp 00:06: [irq 13]
[    0.462401] pnp 00:06: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.462411] pnp 00:07: [io  0x002e-0x002f]
[    0.462412] pnp 00:07: [io  0x004e-0x004f]
[    0.462413] pnp 00:07: [io  0x0061]
[    0.462415] pnp 00:07: [io  0x0063]
[    0.462416] pnp 00:07: [io  0x0065]
[    0.462417] pnp 00:07: [io  0x0067]
[    0.462419] pnp 00:07: [io  0x0070]
[    0.462420] pnp 00:07: [io  0x0080]
[    0.462421] pnp 00:07: [io  0x0092]
[    0.462422] pnp 00:07: [io  0x00b2-0x00b3]
[    0.462424] pnp 00:07: [io  0x0200-0x027f]
[    0.462425] pnp 00:07: [io  0x1000-0x1003]
[    0.462427] pnp 00:07: [io  0x1010-0x101f]
[    0.462428] pnp 00:07: [io  0xffff]
[    0.462429] pnp 00:07: [io  0x0400-0x047f]
[    0.462431] pnp 00:07: [io  0x0500-0x057f]
[    0.462432] pnp 00:07: [io  0xef80-0xef9f]
[    0.462498] system 00:07: [io  0x0200-0x027f] has been reserved
[    0.462502] system 00:07: [io  0x1000-0x1003] has been reserved
[    0.462506] system 00:07: [io  0x1010-0x101f] has been reserved
[    0.462509] system 00:07: [io  0xffff] has been reserved
[    0.462512] system 00:07: [io  0x0400-0x047f] has been reserved
[    0.462515] system 00:07: [io  0x0500-0x057f] has been reserved
[    0.462519] system 00:07: [io  0xef80-0xef9f] has been reserved
[    0.462523] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.462530] pnp 00:08: [io  0x0070-0x0077]
[    0.462535] pnp 00:08: [irq 8]
[    0.462579] pnp 00:08: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.462900] pnp 00:09: [io  0x0378-0x037f]
[    0.462902] pnp 00:09: [io  0x0778-0x077a]
[    0.462907] pnp 00:09: [irq 5]
[    0.462909] pnp 00:09: [dma 0 disabled]
[    0.462999] pnp 00:09: Plug and Play ACPI device, IDs PNP0401 (active)
[    0.463021] pnp 00:0a: [io  0x0060]
[    0.463023] pnp 00:0a: [io  0x0064]
[    0.463028] pnp 00:0a: [irq 1]
[    0.463073] pnp 00:0a: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.463084] pnp 00:0b: [irq 12]
[    0.463128] pnp 00:0b: Plug and Play ACPI device, IDs SYN0144 SYN0100 SYN0002 PNP0f13 (active)
[    0.463156] pnp 00:0c: [irq 23]
[    0.463200] pnp 00:0c: Plug and Play ACPI device, IDs HPQ0004 (active)
[    0.463302] pnp: PnP ACPI: found 13 devices
[    0.463305] ACPI: ACPI bus type pnp unregistered
[    0.471180] pci 0000:01:00.0: no compatible bridge window for [mem 0xfff80000-0xffffffff pref]
[    0.471200] pci 0000:00:1c.0: bridge window [io  0x1000-0x0fff] to [bus 02] add_size 1000
[    0.471203] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 02] add_size 200000
[    0.471213] pci 0000:00:1c.1: bridge window [io  0x1000-0x0fff] to [bus 03] add_size 1000
[    0.471215] pci 0000:00:1c.1: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 03] add_size 200000
[    0.471225] pci 0000:00:1c.2: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 04-44] add_size 200000
[    0.471235] pci 0000:00:1c.4: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 45-85] add_size 200000
[    0.471250] pci 0000:00:1c.0: res[9]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    0.471253] pci 0000:00:1c.1: res[9]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    0.471255] pci 0000:00:1c.2: res[9]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    0.471256] pci 0000:00:1c.4: res[9]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
[    0.471258] pci 0000:00:1c.0: res[7]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    0.471260] pci 0000:00:1c.1: res[7]=[io  0x1000-0x0fff] get_res_add_size add_size 1000
[    0.471264] pci 0000:00:1c.0: BAR 9: assigned [mem 0xdb400000-0xdb5fffff 64bit pref]
[    0.471269] pci 0000:00:1c.1: BAR 9: assigned [mem 0xdb600000-0xdb7fffff 64bit pref]
[    0.471274] pci 0000:00:1c.2: BAR 9: assigned [mem 0xdb800000-0xdb9fffff 64bit pref]
[    0.471278] pci 0000:00:1c.4: BAR 9: assigned [mem 0xdba00000-0xdbbfffff 64bit pref]
[    0.471283] pci 0000:00:1c.0: BAR 7: assigned [io  0xa000-0xafff]
[    0.471287] pci 0000:00:1c.1: BAR 7: assigned [io  0xb000-0xbfff]
[    0.471291] pci 0000:01:00.0: BAR 6: can't assign mem pref (size 0x80000)
[    0.471295] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.471299] pci 0000:00:01.0:   bridge window [io  0x8000-0x8fff]
[    0.471304] pci 0000:00:01.0:   bridge window [mem 0xd0000000-0xd2ffffff]
[    0.471308] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.471314] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.471318] pci 0000:00:1c.0:   bridge window [io  0xa000-0xafff]
[    0.471324] pci 0000:00:1c.0:   bridge window [mem 0xdb200000-0xdb2fffff]
[    0.471330] pci 0000:00:1c.0:   bridge window [mem 0xdb400000-0xdb5fffff 64bit pref]
[    0.471339] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.471343] pci 0000:00:1c.1:   bridge window [io  0xb000-0xbfff]
[    0.471350] pci 0000:00:1c.1:   bridge window [mem 0xdb100000-0xdb1fffff]
[    0.471356] pci 0000:00:1c.1:   bridge window [mem 0xdb600000-0xdb7fffff 64bit pref]
[    0.471365] pci 0000:00:1c.2: PCI bridge to [bus 04-44]
[    0.471369] pci 0000:00:1c.2:   bridge window [io  0x5000-0x7fff]
[    0.471375] pci 0000:00:1c.2:   bridge window [mem 0xd7100000-0xdb0fffff]
[    0.471381] pci 0000:00:1c.2:   bridge window [mem 0xdb800000-0xdb9fffff 64bit pref]
[    0.471390] pci 0000:00:1c.4: PCI bridge to [bus 45-85]
[    0.471394] pci 0000:00:1c.4:   bridge window [io  0x3000-0x4fff]
[    0.471401] pci 0000:00:1c.4:   bridge window [mem 0xd3100000-0xd70fffff]
[    0.471407] pci 0000:00:1c.4:   bridge window [mem 0xdba00000-0xdbbfffff 64bit pref]
[    0.471415] pci 0000:00:1e.0: PCI bridge to [bus 86-87]
[    0.471420] pci 0000:00:1e.0:   bridge window [io  0x2000-0x2fff]
[    0.471426] pci 0000:00:1e.0:   bridge window [mem 0xd3000000-0xd30fffff]
[    0.471472] pci 0000:00:1e.0: setting latency timer to 64
[    0.471475] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.471477] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.471479] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.471480] pci_bus 0000:00: resource 7 [mem 0xc0000000-0xdfffffff]
[    0.471482] pci_bus 0000:00: resource 8 [mem 0xf0000000-0xfedfffff]
[    0.471483] pci_bus 0000:00: resource 9 [mem 0xfee01000-0xffffffff]
[    0.471485] pci_bus 0000:01: resource 0 [io  0x8000-0x8fff]
[    0.471486] pci_bus 0000:01: resource 1 [mem 0xd0000000-0xd2ffffff]
[    0.471488] pci_bus 0000:01: resource 2 [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.471490] pci_bus 0000:02: resource 0 [io  0xa000-0xafff]
[    0.471491] pci_bus 0000:02: resource 1 [mem 0xdb200000-0xdb2fffff]
[    0.471493] pci_bus 0000:02: resource 2 [mem 0xdb400000-0xdb5fffff 64bit pref]
[    0.471494] pci_bus 0000:03: resource 0 [io  0xb000-0xbfff]
[    0.471496] pci_bus 0000:03: resource 1 [mem 0xdb100000-0xdb1fffff]
[    0.471497] pci_bus 0000:03: resource 2 [mem 0xdb600000-0xdb7fffff 64bit pref]
[    0.471499] pci_bus 0000:04: resource 0 [io  0x5000-0x7fff]
[    0.471501] pci_bus 0000:04: resource 1 [mem 0xd7100000-0xdb0fffff]
[    0.471502] pci_bus 0000:04: resource 2 [mem 0xdb800000-0xdb9fffff 64bit pref]
[    0.471504] pci_bus 0000:45: resource 0 [io  0x3000-0x4fff]
[    0.471506] pci_bus 0000:45: resource 1 [mem 0xd3100000-0xd70fffff]
[    0.471507] pci_bus 0000:45: resource 2 [mem 0xdba00000-0xdbbfffff 64bit pref]
[    0.471509] pci_bus 0000:86: resource 0 [io  0x2000-0x2fff]
[    0.471510] pci_bus 0000:86: resource 1 [mem 0xd3000000-0xd30fffff]
[    0.471512] pci_bus 0000:86: resource 4 [io  0x0000-0x0cf7]
[    0.471513] pci_bus 0000:86: resource 5 [io  0x0d00-0xffff]
[    0.471515] pci_bus 0000:86: resource 6 [mem 0x000a0000-0x000bffff]
[    0.471516] pci_bus 0000:86: resource 7 [mem 0xc0000000-0xdfffffff]
[    0.471518] pci_bus 0000:86: resource 8 [mem 0xf0000000-0xfedfffff]
[    0.471519] pci_bus 0000:86: resource 9 [mem 0xfee01000-0xffffffff]
[    0.471544] NET: Registered protocol family 2
[    0.471670] TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
[    0.473116] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.473513] TCP: Hash tables configured (established 262144 bind 65536)
[    0.473583] TCP: reno registered
[    0.473588] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.473643] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.473769] NET: Registered protocol family 1
[    0.473857] RPC: Registered named UNIX socket transport module.
[    0.473860] RPC: Registered udp transport module.
[    0.473863] RPC: Registered tcp transport module.
[    0.473865] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.474152] pci 0000:01:00.0: Boot video device
[    0.474172] PCI: CLS 64 bytes, default 64
[    0.474215] Trying to unpack rootfs image as initramfs...
[    0.567099] Freeing initrd memory: 5608k freed
[    0.569012] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.569021] software IO TLB [mem 0xb4f28000-0xb8f27fff] (64MB) mapped at [ffff8800b4f28000-ffff8800b8f27fff]
[    0.569570] AVX instructions are not detected.
[    0.569824] AVX instructions are not detected.
[    0.570097] audit: initializing netlink socket (disabled)
[    0.570112] type=2000 audit(1354967442.569:1): initialized
[    0.573362] VFS: Disk quotas dquot_6.5.2
[    0.573423] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.573741] NFS: Registering the id_resolver key type
[    0.573753] Key type id_resolver registered
[    0.573756] Key type id_legacy registered
[    0.573764] ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.573813] msgmni has been set to 15753
[    0.574970] async_tx: api initialized (async)
[    0.575106] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.575133] io scheduler noop registered
[    0.575137] io scheduler deadline registered
[    0.575189] io scheduler cfq registered (default)
[    0.575311] pcieport 0000:00:01.0: irq 40 for MSI/MSI-X
[    0.575490] pcieport 0000:00:1c.0: irq 41 for MSI/MSI-X
[    0.575693] pcieport 0000:00:1c.1: irq 42 for MSI/MSI-X
[    0.575895] pcieport 0000:00:1c.2: irq 43 for MSI/MSI-X
[    0.576106] pcieport 0000:00:1c.4: irq 44 for MSI/MSI-X
[    0.576326] pcieport 0000:00:01.0: Signaling PME through PCIe PME interrupt
[    0.576330] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    0.576335] pcie_pme 0000:00:01.0:pcie01: service driver pcie_pme loaded
[    0.576353] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
[    0.576359] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded
[    0.576377] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt
[    0.576381] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[    0.576387] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded
[    0.576404] pcieport 0000:00:1c.2: Signaling PME through PCIe PME interrupt
[    0.576407] pci 0000:04:00.0: Signaling PME through PCIe PME interrupt
[    0.576413] pcie_pme 0000:00:1c.2:pcie01: service driver pcie_pme loaded
[    0.576431] pcieport 0000:00:1c.4: Signaling PME through PCIe PME interrupt
[    0.576438] pcie_pme 0000:00:1c.4:pcie01: service driver pcie_pme loaded
[    0.576494] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.576569] vesafb: mode is 1680x1050x32, linelength=6720, pages=1
[    0.576573] vesafb: scrolling: redraw
[    0.576576] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.578343] vesafb: framebuffer at 0xd1000000, mapped to 0xffffc90010100000, using 13781k, total 14336k
[    0.659238] Console: switching to colour frame buffer device 210x65
[    0.734474] fb0: VESA VGA frame buffer device
[    0.734797] intel_idle: does not run on family 6 model 23
[    0.734866] GHES: HEST is not enabled!
[    0.737767] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.758942] 0000:00:03.3: ttyS0 at I/O 0x9120 (irq = 17) is a 16550A
[    0.759988] Floppy drive(s): fd0 is 1.44M
[    0.761795] brd: module loaded
[    0.762479] ahci 0000:00:1f.2: version 3.0
[    0.762535] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X
[    0.762596] ahci: SSS flag set, parallel bus scan disabled
[    0.762997] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 4 ports 3 Gbps 0x33 impl SATA mode
[    0.763563] ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part ccc ems sxs 
[    0.764175] ahci 0000:00:1f.2: setting latency timer to 64
[    0.770719] scsi0 : ahci
[    0.770994] scsi1 : ahci
[    0.771270] scsi2 : ahci
[    0.771533] scsi3 : ahci
[    0.771794] scsi4 : ahci
[    0.772055] scsi5 : ahci
[    0.772311] ata1: SATA max UDMA/133 abar m2048@0xdb326000 port 0xdb326100 irq 45
[    0.772807] ata2: SATA max UDMA/133 abar m2048@0xdb326000 port 0xdb326180 irq 45
[    0.773318] ata3: DUMMY
[    0.773482] ata4: DUMMY
[    0.773647] ata5: SATA max UDMA/133 abar m2048@0xdb326000 port 0xdb326300 irq 45
[    0.774164] ata6: SATA max UDMA/133 abar m2048@0xdb326000 port 0xdb326380 irq 45
[    0.776743] pata_acpi 0000:00:03.2: enabling device (0000 -> 0001)
[    0.777199] pata_acpi 0000:00:03.2: setting latency timer to 64
[    0.777218] pata_acpi 0000:04:00.0: enabling device (0000 -> 0001)
[    0.777716] ata_generic 0000:00:03.2: setting latency timer to 64
[    0.778100] scsi6 : ata_generic
[    0.778402] scsi7 : ata_generic
[    0.778684] ata7: PATA max UDMA/100 cmd 0x9130 ctl 0x9144 bmdma 0x9100 irq 18
[    0.779177] ata8: PATA max UDMA/100 cmd 0x9128 ctl 0x9140 bmdma 0x9108 irq 18
[    0.780095] scsi8 : pata_legacy
[    0.780376] ata9: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
[    1.079024] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.081410] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    1.082114] ata1.00: ATA-8: WDC WD6400BEVT-22A0RT0, 01.01A01, max UDMA/133
[    1.082575] ata1.00: 1250263728 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    1.083221] ata1.00: failed to get Identify Device Data, Emask 0x1
[    1.085248] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    1.086111] ata1.00: failed to get Identify Device Data, Emask 0x1
[    1.086114] ata1.00: configured for UDMA/133
[    1.572014] tsc: Refined TSC clocksource calibration: 2659.999 MHz
[    1.587885] Switching to clocksource tsc
[    3.776025] floppy0: no floppy controllers found
[    3.792132] scsi 0:0:0:0: Direct-Access     ATA      WDC WD6400BEVT-2 01.0 PQ: 0 ANSI: 5
[    3.808628] sd 0:0:0:0: [sda] 1250263728 512-byte logical blocks: (640 GB/596 GiB)
[    3.825049] sd 0:0:0:0: [sda] Write Protect is off
[    3.841151] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.841166] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.972945]  sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 sda9 >
[    3.990157] sd 0:0:0:0: [sda] Attached SCSI disk
[    4.144016] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    4.161669] ata2.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.179164] ata2.00: ATA-8: Hitachi HTS723225L9A360, FCDOC60A, max UDMA/100
[    4.196148] ata2.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    4.347694] ata2.00: failed to get Identify Device Data, Emask 0x1
[    4.349068] ata2.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    4.497693] ata2.00: failed to get Identify Device Data, Emask 0x1
[    4.497696] ata2.00: configured for UDMA/100
[    4.514920] scsi 1:0:0:0: Direct-Access     ATA      Hitachi HTS72322 FCDO PQ: 0 ANSI: 5
[    4.532567] sd 1:0:0:0: [sdb] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    3.825090] ACPI: Invalid Power Resource to register!
[    4.532656] ACPI: Invalid Power Resource to register!<5>[    4.550168] sd 1:0:0:0: [sdb] Write Protect is off
[    4.567516] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    4.567530] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.603287]  sdb: sdb1
[    4.620874] sd 1:0:0:0: [sdb] Attached SCSI disk
[    4.837014] ata5: SATA link down (SStatus 0 SControl 300)
[    5.159014] ata6: SATA link down (SStatus 0 SControl 300)
[    5.337896] scsi9 : pata_legacy
[    5.354852] ata10: PATA max PIO4 cmd 0x170 ctl 0x376 irq 15
[    5.522386] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    5.541357] i8042: Detected active multiplexing controller, rev 1.1
[    5.559441] serio: i8042 KBD port at 0x60,0x64 irq 1
[    5.576710] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    5.593885] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    5.610913] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    5.627726] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    5.644300] mousedev: PS/2 mouse device common for all mice
[    5.660744] rtc_cmos 00:08: RTC can wake from S4
[    5.677099] rtc_cmos 00:08: rtc core: registered rtc_cmos as rtc0
[    5.693632] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    5.710534] md: linear personality registered for level -1
[    5.727645] md: raid0 personality registered for level 0
[    5.744984] md: raid1 personality registered for level 1
[    5.762335] md: raid10 personality registered for level 10
[    5.779574] md: raid6 personality registered for level 6
[    5.797022] md: raid5 personality registered for level 5
[    5.814163] md: raid4 personality registered for level 4
[    5.831327] md: multipath personality registered for level -4
[    5.848536] device-mapper: uevent: version 1.0.3
[    5.865923] device-mapper: ioctl: 4.23.0-ioctl (2012-07-25) initialised: dm-devel@redhat.com
[    5.883596] cpuidle: using governor ladder
[    5.886602] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    5.919508] cpuidle: using governor menu
[    5.938006] TCP: cubic registered
[    5.956140] Initializing XFRM netlink socket
[    5.974550] NET: Registered protocol family 17
[    5.992858] Key type dns_resolver registered
[    6.015429] registered taskstats version 1
[    6.034057] rtc_cmos 00:08: setting system clock to 2012-12-08 11:50:48 UTC (1354967448)
[    6.053425] Freeing unused kernel memory: 724k freed
[    6.071975] Write protecting the kernel read-only data: 8192k
[    6.091740] Freeing unused kernel memory: 624k freed
[    6.110781] Freeing unused kernel memory: 276k freed
[    6.137975] udevd[1092]: starting version 182
[   12.862545] bio: create slab <bio-1> at 1
[   12.903224] bio: create slab <bio-1> at 1
[   13.173367] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[   14.649162] loop: module loaded
[   14.916688] udevd[1290]: starting version 182
[   15.813857] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20120913/utaddress-251)
[   15.833707] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   15.857541] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
[   15.878271] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   15.898906] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
[   15.919981] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   15.941481] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   16.043826] r592 0000:86:09.2: setting latency timer to 64
[   16.043910] r592: driver successfully loaded
[   16.114963] phison: module is from the staging directory, the quality is unknown, you have been warned.
[   16.115458] scsi10 : phison_e-box
[   16.116013] scsi11 : phison_e-box
[   16.116043] ata11: PATA max UDMA/100 cmd 0x5018 ctl 0x5024 bmdma 0x5000 irq 18
[   16.116044] ata12: PATA max UDMA/100 cmd 0x5010 ctl 0x5020 bmdma 0x5008 irq 18
[   16.230778] wmi: Mapper loaded
[   16.253645] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input1
[   16.277084] ACPI: Sleep Button [SLPB]
[   16.299920] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
[   16.300425] ata11.00: ATA-7: ExpressCard SSD, PER1.36, max UDMA/133
[   16.300426] ata11.00: 125796352 sectors, multi 0: LBA 
[   16.371022] ACPI: Lid Switch [LID]
[   16.371446] ata11.00: configured for UDMA/100
[   16.371524] scsi 10:0:0:0: Direct-Access     ATA      ExpressCard SSD  PER1 PQ: 0 ANSI: 5
[   16.371631] sd 10:0:0:0: [sdc] 125796352 512-byte logical blocks: (64.4 GB/59.9 GiB)
[   16.371664] sd 10:0:0:0: [sdc] Write Protect is off
[   16.371666] sd 10:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[   16.371681] sd 10:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   16.510073] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[   16.510744] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[   16.510816] ACPI: AC Adapter [AC] (on-line)
[   16.581501] ACPI: Power Button [PWRF]
[   16.582968] mei 0000:00:03.0: setting latency timer to 64
[   16.605320] mei 0000:00:03.0: irq 46 for MSI/MSI-X
[   16.605667] sdhci: Secure Digital Host Controller Interface driver
[   16.629388] sdhci: Copyright(c) Pierre Ossman
[   16.653970] Linux agpgart interface v0.103
[   16.678152] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   16.703212] ehci_hcd 0000:00:1a.7: setting latency timer to 64
[   16.703216] ehci_hcd 0000:00:1a.7: EHCI Host Controller
[   16.707554] e1000e: Intel(R) PRO/1000 Network Driver - 2.1.4-k
[   16.707554] e1000e: Copyright(c) 1999 - 2012 Intel Corporation.
[   16.775870] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[   16.777684] microcode: CPU0 sig=0x1067a, pf=0x80, revision=0xa07
[   16.828529] ehci_hcd 0000:00:1a.7: debug port 1
[   16.852793] ehci_hcd 0000:00:1a.7: cache line size of 64 is not supported
[   16.853091] ehci_hcd 0000:00:1a.7: irq 19, io mem 0xdb326c00
[   16.883006] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[   16.907199] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   16.907333] microcode: CPU1 sig=0x1067a, pf=0x80, revision=0xa07
[   16.955112] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   16.955184] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[   17.003400] usb usb1: Product: EHCI Host Controller
[   17.027153] usb usb1: Manufacturer: Linux 3.7.0-rc4 ehci_hcd
[   17.050581] usb usb1: SerialNumber: 0000:00:1a.7
[   17.073741] hub 1-0:1.0: USB hub found
[   17.096457] hub 1-0:1.0: 6 ports detected
[   17.119058] e1000e 0000:00:19.0: setting latency timer to 64
[   17.119155] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[   17.141959] e1000e 0000:00:19.0: irq 47 for MSI/MSI-X
[   17.178841] ACPI: Requesting acpi_cpufreq
[   17.204027] Monitor-Mwait will be used to enter C-1 state
[   17.204038] Monitor-Mwait will be used to enter C-2 state
[   17.204041] tsc: Marking TSC unstable due to TSC halts in idle
[   17.204241] acpi device:03: registered as cooling_device0
[   17.204320] ACPI: Can't attach device
[   17.204323] video: probe of LNXVIDEO:00 failed with error -2
[   17.208393] ACPI: Fan [FANG] (off)
[   17.218047] thermal LNXTHERM:00: registered as thermal_zone0
[   17.218048] ACPI: Thermal Zone [GFXZ] (30 C)
[   17.221520] thermal LNXTHERM:01: registered as thermal_zone1
[   17.221521] ACPI: Thermal Zone [DTSZ] (76 C)
[   17.228144] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[   17.228147] ACPI: Battery Slot [BAT0] (battery present)
[   17.228190] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[   17.228193] ACPI: Battery Slot [BAT1] (battery absent)
[   17.244422] thermal LNXTHERM:02: registered as thermal_zone2
[   17.244423] ACPI: Thermal Zone [BATZ] (32 C)
[   17.256858] thermal LNXTHERM:03: registered as thermal_zone3
[   17.256859] ACPI: Thermal Zone [CPUZ] (81 C)
[   17.259455] thermal LNXTHERM:04: registered as thermal_zone4
[   17.259456] ACPI: Thermal Zone [LOCZ] (57 C)
[   17.262153] thermal LNXTHERM:05: registered as thermal_zone5
[   17.262154] ACPI: Thermal Zone [CP2Z] (16 C)
[   17.350130] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 78:e7:d1:af:cf:c2
[   17.350132] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
[   17.350153] e1000e 0000:00:19.0 eth0: MAC: 7, PHY: 8, PBA No: 1052FF-0FF
[   17.716598] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[   17.716604] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[   17.716708] ACPI: acpi_idle registered with cpuidle
[   17.719792] Switching to clocksource hpet
[   17.757507] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[   17.758034]  sdc: sdc1 sdc2 sdc3 sdc4
[   17.799397] sd 10:0:0:0: [sdc] Attached SCSI disk
[   17.802949] ehci_hcd 0000:00:1d.7: debug port 1
[   17.802956] ehci_hcd 0000:00:1d.7: cache line size of 64 is not supported
[   17.802976] ehci_hcd 0000:00:1d.7: irq 20, io mem 0xdb326800
[   17.862399] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[   17.883956] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[   17.904339] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   17.924381] usb usb2: Product: EHCI Host Controller
[   17.944212] usb usb2: Manufacturer: Linux 3.7.0-rc4 ehci_hcd
[   17.964015] usb usb2: SerialNumber: 0000:00:1d.7
[   17.984146] hub 2-0:1.0: USB hub found
[   18.004684] hub 2-0:1.0: 6 ports detected
[   18.054591] cfg80211: Calling CRDA to update world regulatory domain
[   18.086028] usb 1-5: new high-speed USB device number 3 using ehci_hcd
[   18.121054] hp_accel: hardware type NC693xx found
[   18.140954] sdhci-pci 0000:86:09.0: SDHCI controller found [1180:0822] (rev 25)
[   18.143100] lis3lv02d: 8 bits sensor found
[   18.181693] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input4
[   18.182260] sdhci-pci 0000:86:09.0: Will use DMA mode even though HW doesn't fully claim to support it.
[   18.182266] sdhci-pci 0000:86:09.0: setting latency timer to 64
[   18.182270] mmc0: no vqmmc regulator found
[   18.182271] mmc0: no vmmc regulator found
[   18.183281] sdhci-pci 0000:86:09.0: Will use DMA mode even though HW doesn't fully claim to support it.
[   18.183305] Registered led device: mmc0::
[   18.205014] mmc0: SDHCI controller on PCI [0000:86:09.0] using DMA
[   18.205025] sdhci-pci 0000:86:09.1: SDHCI controller found [1180:0843] (rev 14)
[   18.205053] sdhci-pci 0000:86:09.1: setting latency timer to 64
[   18.205056] mmc1: no vqmmc regulator found
[   18.205057] mmc1: no vmmc regulator found
[   18.205079] Registered led device: mmc1::
[   18.227012] mmc1: SDHCI controller on PCI [0000:86:09.1] using DMA
[   18.385984] Registered led device: hp::hddprotect
[   18.434686] mmc0: new SDHC card at address b368
[   18.459880] usb 1-5: New USB device found, idVendor=04f2, idProduct=b053
[   18.480180] usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[   18.500612] usb 1-5: Product: CKA7216
[   18.520631] usb 1-5: Manufacturer: Chicony Electronics Co., Ltd.
[   18.540427] usb 1-5: SerialNumber: SN0001
[   18.622225] parport_pc 00:09: reported by Plug and Play ACPI
[   18.642291] parport0: PC-style at 0x378 (0x778), irq 5 [PCSPP,TRISTATE]
[   18.705294] uhci_hcd: USB Universal Host Controller Interface driver
[   18.725796] input: HP WMI hotkeys as /devices/virtual/input/input5
[   18.726054] uhci_hcd 0000:00:1a.0: setting latency timer to 64
[   18.726057] uhci_hcd 0000:00:1a.0: UHCI Host Controller
[   18.726119] uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3
[   18.726156] uhci_hcd 0000:00:1a.0: irq 16, io base 0x000090c0
[   18.726189] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[   18.726190] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.726191] usb usb3: Product: UHCI Host Controller
[   18.726192] usb usb3: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.726193] usb usb3: SerialNumber: 0000:00:1a.0
[   18.726325] hub 3-0:1.0: USB hub found
[   18.726330] hub 3-0:1.0: 2 ports detected
[   18.726471] uhci_hcd 0000:00:1a.1: setting latency timer to 64
[   18.726474] uhci_hcd 0000:00:1a.1: UHCI Host Controller
[   18.726529] uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 4
[   18.726563] uhci_hcd 0000:00:1a.1: irq 17, io base 0x000090a0
[   18.726592] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[   18.726593] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.726594] usb usb4: Product: UHCI Host Controller
[   18.726595] usb usb4: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.726596] usb usb4: SerialNumber: 0000:00:1a.1
[   18.726719] hub 4-0:1.0: USB hub found
[   18.726722] hub 4-0:1.0: 2 ports detected
[   18.726839] uhci_hcd 0000:00:1a.2: setting latency timer to 64
[   18.726842] uhci_hcd 0000:00:1a.2: UHCI Host Controller
[   18.726892] uhci_hcd 0000:00:1a.2: new USB bus registered, assigned bus number 5
[   18.726918] uhci_hcd 0000:00:1a.2: irq 18, io base 0x00009080
[   18.726948] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
[   18.726949] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.726950] usb usb5: Product: UHCI Host Controller
[   18.726951] usb usb5: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.726952] usb usb5: SerialNumber: 0000:00:1a.2
[   18.727090] hub 5-0:1.0: USB hub found
[   18.727093] hub 5-0:1.0: 2 ports detected
[   18.727203] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[   18.727205] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[   18.727256] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 6
[   18.727282] uhci_hcd 0000:00:1d.0: irq 20, io base 0x00009060
[   18.727312] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001
[   18.727313] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.727314] usb usb6: Product: UHCI Host Controller
[   18.727315] usb usb6: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.727316] usb usb6: SerialNumber: 0000:00:1d.0
[   18.727435] hub 6-0:1.0: USB hub found
[   18.727438] hub 6-0:1.0: 2 ports detected
[   18.727528] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[   18.727530] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[   18.727581] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 7
[   18.727607] uhci_hcd 0000:00:1d.1: irq 22, io base 0x00009040
[   18.727635] usb usb7: New USB device found, idVendor=1d6b, idProduct=0001
[   18.727636] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.727637] usb usb7: Product: UHCI Host Controller
[   18.727638] usb usb7: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.727639] usb usb7: SerialNumber: 0000:00:1d.1
[   18.727760] hub 7-0:1.0: USB hub found
[   18.727763] hub 7-0:1.0: 2 ports detected
[   18.727880] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[   18.727882] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[   18.727935] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 8
[   18.727959] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00009020
[   18.727988] usb usb8: New USB device found, idVendor=1d6b, idProduct=0001
[   18.727989] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   18.727990] usb usb8: Product: UHCI Host Controller
[   18.727991] usb usb8: Manufacturer: Linux 3.7.0-rc4 uhci_hcd
[   18.727992] usb usb8: SerialNumber: 0000:00:1d.2
[   18.728120] hub 8-0:1.0: USB hub found
[   18.728123] hub 8-0:1.0: 2 ports detected
[   19.951678] psmouse serio4: synaptics: Touchpad model: 1, fw: 7.0, id: 0x1c0b1, caps: 0xd44791/0xb00000/0x20000, board id: 71, fw id: 504136
[   19.959289] ppdev: user-space parallel port driver
[   19.983981] psmouse serio4: synaptics: serio: Synaptics pass-through port at isa0060/serio4/input0
[   20.002017] usb 3-1: new full-speed USB device number 2 using uhci_hcd
[   20.056587] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input6
[   20.084481] [drm] Initialized drm 1.1.0 20060810
[   20.092373] mmcblk0: mmc0:b368 SDC   14.9 GiB 
[   20.118281]  mmcblk0: p1
[   20.195243] usb 3-1: New USB device found, idVendor=03f0, idProduct=171d
[   20.212560] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   20.229862] usb 3-1: Product: HP Integrated Module
[   20.247110] usb 3-1: Manufacturer: Broadcom Corp
[   20.273594] snd_hda_intel 0000:00:1b.0: irq 48 for MSI/MSI-X
[   20.351039] Intel(R) Wireless WiFi driver for Linux, in-tree:
[   20.368124] Copyright(c) 2003-2012 Intel Corporation
[   20.385330] usb 6-2: new full-speed USB device number 2 using uhci_hcd
[   20.402645] iwlwifi 0000:03:00.0: pci_resource_len = 0x00002000
[   20.419957] iwlwifi 0000:03:00.0: pci_resource_base = ffffc90000054000
[   20.437446] iwlwifi 0000:03:00.0: HW Revision ID = 0x0
[   20.458923] iwlwifi 0000:03:00.0: irq 49 for MSI/MSI-X
[   20.459867] r852 0000:86:09.3: setting latency timer to 64
[   20.459980] r852: driver loaded successfully
[   20.643385] usb 6-2: New USB device found, idVendor=046d, idProduct=0a01
[   20.661110] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   20.678903] usb 6-2: Product: Logitech USB Headset
[   20.696586] usb 6-2: Manufacturer: Logitech
[   20.841098] cfg80211: World regulatory domain updated:
[   20.858525] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   20.876262] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   20.894089] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   20.911790] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   20.929347] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   20.946888] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   21.023160] iwlwifi 0000:03:00.0: loaded firmware version 8.83.5.1 build 33692
[   21.094325] iwldvm: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:
[   21.112125] iwldvm: Copyright(c) 2003-2012 Intel Corporation
[   21.130722] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUG disabled
[   21.148366] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[   21.165935] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[   21.183426] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[   21.200862] iwlwifi 0000:03:00.0: CONFIG_IWLWIFI_P2P disabled
[   21.218155] iwlwifi 0000:03:00.0: Detected Intel(R) Ultimate N WiFi Link 5300 AGN, REV=0x24
[   21.236035] iwlwifi 0000:03:00.0: L1 Disabled; Enabling L0S
[   21.272864] iwlwifi 0000:03:00.0: device EEPROM VER=0x11f, CALIB=0x4
[   21.290426] iwlwifi 0000:03:00.0: Device SKU: 0xF0
[   21.307768] iwlwifi 0000:03:00.0: Valid Tx ant: 0x7, Valid Rx ant: 0x7
[   21.325459] Registered led device: phy0-led
[   21.325527] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   21.378857] MXM: GUID detected in BIOS
[   21.396237] checking generic (d1000000 e00000) vs hw (c0000000 10000000)
[   21.396238] checking generic (d1000000 e00000) vs hw (d0000000 2000000)
[   21.396239] fb: conflicting fb hw usage nouveaufb vs VESA VGA - removing generic driver
[   21.414033] Console: switching to colour dummy device 80x25
[   21.414576] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x096e00a1
[   21.414581] nouveau  [  DEVICE][0000:01:00.0] Chipset: G96 (NV96)
[   21.414584] nouveau  [  DEVICE][0000:01:00.0] Family : NV50
[   21.416923] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
[   21.501858] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
[   21.501862] nouveau  [   VBIOS][0000:01:00.0] using image from PRAMIN
[   21.501968] nouveau  [   VBIOS][0000:01:00.0] BIT signature found
[   21.501972] nouveau  [   VBIOS][0000:01:00.0] version 62.94.3b.00
[   21.523197] nouveau  [     MXM][0000:01:00.0] BIOS version 2.1
[   21.525870] nouveau  [     MXM][0000:01:00.0] MXMS Version 2.0
[   21.525889] nouveau  [     MXM][0000:01:00.0] unmatched output device 0x0103010201010100
[   21.525914] nouveau  [     PFB][0000:01:00.0] RAM type: GDDR3
[   21.525917] nouveau  [     PFB][0000:01:00.0] RAM size: 512 MiB
[   21.564182] [TTM] Zone  kernel: Available graphics memory: 4033752 kiB
[   21.564189] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[   21.564192] [TTM] Initializing pool allocator
[   21.564198] [TTM] Initializing DMA pool allocator
[   21.564213] mtrr: no more MTRRs available
[   21.564217] nouveau  [     DRM] VRAM: 512 MiB
[   21.564219] nouveau  [     DRM] GART: 512 MiB
[   21.564223] nouveau  [     DRM] BIT BIOS found
[   21.564227] nouveau  [     DRM] Bios version 62.94.3b.00
[   21.564232] nouveau  [     DRM] TMDS table version 2.0
[   21.564235] nouveau  [     DRM] DCB version 4.0
[   21.564238] nouveau  [     DRM] DCB outp 00: 01000323 00010034
[   21.564241] nouveau  [     DRM] DCB outp 02: 04011312 00020030
[   21.564244] nouveau  [     DRM] DCB outp 03: 04022312 00020020
[   21.564247] nouveau  [     DRM] DCB outp 06: 02044300 00000028
[   21.564250] nouveau  [     DRM] DCB conn 00: 00000040
[   21.564254] nouveau  [     DRM] DCB conn 01: 00001131
[   21.564256] nouveau  [     DRM] DCB conn 02: 00020231
[   21.564259] nouveau  [     DRM] DCB conn 03: 00110346
[   21.564262] nouveau  [     DRM] DCB conn 04: 00000400
[   21.564265] nouveau  [     DRM] DCB conn 05: 00000510
[   21.564268] nouveau  [     DRM] DCB conn 06: 00000511
[   21.564270] nouveau  [     DRM] DCB conn 07: 00000513
[   21.564273] nouveau  [     DRM] DCB conn 08: 00002631
[   21.564276] nouveau  [     DRM] DCB conn 09: 00001731
[   21.564279] nouveau  [     DRM] DCB conn 10: 00002831
[   21.564281] nouveau  [     DRM] DCB conn 11: 00110946
[   21.564284] nouveau  [     DRM] DCB conn 12: 00000a00
[   21.564287] nouveau  [     DRM] DCB conn 13: 00000b10
[   21.564289] nouveau  [     DRM] DCB conn 14: 00000b11
[   21.564292] nouveau  [     DRM] DCB conn 15: 00000b13
[   21.579067] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   21.579073] [drm] No driver support for vblank timestamp query.
[   21.579077] nouveau  [     DRM] ACPI backlight interface available, not registering our own
[   22.931146] nouveau  [     DRM] 4 available performance level(s)
[   22.931156] nouveau  [     DRM] 0: core 169MHz shader 338MHz memory 100MHz voltage 890mV fanspeed 100%
[   22.931161] nouveau  [     DRM] 1: core 275MHz shader 550MHz memory 300MHz voltage 890mV fanspeed 100%
[   22.931166] nouveau  [     DRM] 2: core 400MHz shader 800MHz memory 300MHz voltage 890mV fanspeed 100%
[   22.931171] nouveau  [     DRM] 3: core 500MHz shader 1250MHz memory 800MHz voltage 1050mV fanspeed 100%
[   22.931176] nouveau  [     DRM] c: core 275MHz shader 550MHz memory 300MHz voltage 890mV
[   22.945643] nouveau  [     DRM] MM: using CRYPT for buffer copies
[   23.019383] nouveau  [     DRM] allocated 1920x1080 fb: 0x70000, bo ffff880230755400
[   23.019476] fbcon: nouveaufb (fb0) is primary device
[   23.305013] Console: switching to colour frame buffer device 210x65
[   23.307212] fb0: nouveaufb frame buffer device
[   23.307227] drm: registered panic notifier
[   23.307245] [drm] Initialized nouveau 1.1.0 20120801 for 0000:01:00.0 on minor 0
[   23.458663] Bluetooth: Core ver 2.16
[   23.458684] NET: Registered protocol family 31
[   23.458690] Bluetooth: HCI device and connection manager initialized
[   23.458703] Bluetooth: HCI socket layer initialized
[   23.458709] Bluetooth: L2CAP socket layer initialized
[   23.458717] Bluetooth: SCO socket layer initialized
[   23.504562] usbcore: registered new interface driver btusb
[   24.397637] usbcore: registered new interface driver snd-usb-audio
[   26.178904] input: PS/2 Generic Mouse as /devices/platform/i8042/serio4/serio5/input/input7
[   30.598384] Adding 2097148k swap on /dev/mapper/cryptswap.  Priority:-1 extents:1 across:2097148k 
[   30.712874] fuse init (API version 7.20)
[   31.637247] EXT4-fs (dm-0): re-mounted. Opts: (null)
[   32.041626] lp0: using parport0 (interrupt-driven).
[   32.041639] lp0: console ready
[   36.286807] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   36.445487] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[   36.601194] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: (null)
[   36.656661] SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
[   36.799290] XFS (sda6): Mounting Filesystem
[   36.989146] XFS (sda6): Ending clean mount
[   37.101736] XFS (sdb1): Mounting Filesystem
[   37.319569] XFS (sdb1): Ending clean mount
[   37.472581] EXT4-fs (sda9): mounted filesystem with ordered data mode. Opts: (null)
[   42.657241] NET: Registered protocol family 10
[   52.572399] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   52.572402] Bluetooth: BNEP filters: protocol multicast
[   52.572416] Bluetooth: BNEP socket layer initialized
[   52.996404] Bluetooth: RFCOMM TTY layer initialized
[   52.996415] Bluetooth: RFCOMM socket layer initialized
[   52.996416] Bluetooth: RFCOMM ver 1.11
[   56.103182] e1000e 0000:00:19.0: irq 47 for MSI/MSI-X
[   56.204104] e1000e 0000:00:19.0: irq 47 for MSI/MSI-X
[   56.204211] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   56.206715] iwlwifi 0000:03:00.0: L1 Disabled; Enabling L0S
[   56.207129] iwlwifi 0000:03:00.0: Radio type=0x0-0x2-0x0
[   56.439153] iwlwifi 0000:03:00.0: L1 Disabled; Enabling L0S
[   56.439537] iwlwifi 0000:03:00.0: Radio type=0x0-0x2-0x0
[   56.583875] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   59.185892] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[   59.186067] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   62.685750] netlink: 12 bytes leftover after parsing attributes.

[-- Attachment #1.4: darkstar.dmesg --]
[-- Type: text/plain, Size: 65048 bytes --]

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.29-smp (root@hive) (gcc version 4.7.1 (GCC) ) #2 SMP Mon Sep 17 13:16:43 CDT 2012
[    0.000000] Disabled fast string operations
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000007ffc0000 (usable)
[    0.000000]  BIOS-e820: 000000007ffc0000 - 000000007ffce000 (ACPI data)
[    0.000000]  BIOS-e820: 000000007ffce000 - 0000000080000000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.4 present.
[    0.000000] DMI: ASUSTeK Computer Inc.  VX1                 /VX1       , BIOS 206          12/28/2006
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] last_pfn = 0x7ffc0 max_arch_pfn = 0x1000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-CFFFF write-protect
[    0.000000]   D0000-DFFFF uncachable
[    0.000000]   E0000-EFFFF write-through
[    0.000000]   F0000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask F80000000 write-back
[    0.000000]   1 disabled
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] PAT not supported by CPU.
[    0.000000] found SMP MP-table at [c00ff780] ff780
[    0.000000] initial memory mapped : 0 - 02400000
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[    0.000000] init_memory_mapping: 0000000000000000-00000000379fe000
[    0.000000]  0000000000 - 0000200000 page 4k
[    0.000000]  0000200000 - 0037800000 page 2M
[    0.000000]  0037800000 - 00379fe000 page 4k
[    0.000000] kernel direct mapping tables up to 379fe000 @ 23fa000-2400000
[    0.000000] ACPI: RSDP 000f7ae0 00014 (v00 ACPIAM)
[    0.000000] ACPI: RSDT 7ffc0000 00044 (v01 A M I  OEMRSDT  12000628 MSFT 00000097)
[    0.000000] ACPI: FACP 7ffc0200 00084 (v02 A M I  OEMFACP  12000628 MSFT 00000097)
[    0.000000] ACPI: DSDT 7ffc05e0 089F2 (v01  VX100 VX100005 00000005 INTL 02002026)
[    0.000000] ACPI: FACS 7ffce000 00040
[    0.000000] ACPI: APIC 7ffc0390 0005C (v01 A M I  OEMAPIC  12000628 MSFT 00000097)
[    0.000000] ACPI: MCFG 7ffc03f0 0003C (v01 A M I  OEMMCFG  12000628 MSFT 00000097)
[    0.000000] ACPI: BOOT 7ffc05b0 00028 (v01 A M I  OEMBOOT  12000628 MSFT 00000097)
[    0.000000] ACPI: SLIC 7ffc0430 00176 (v01 A M I  OEMSLIC  12000628 MSFT 00000097)
[    0.000000] ACPI: OEMB 7ffce040 0005B (v01 A M I  AMI_OEM  12000628 MSFT 00000097)
[    0.000000] ACPI: HPET 7ffc8fe0 00038 (v01 A M I  OEMHPET  12000628 MSFT 00000097)
[    0.000000] ACPI: TCPA 7ffc9020 00032 (v01 A M I  TBLOEMID 00000001 MSFT 00000097)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-000000007ffc0000
[    0.000000] node 0 pfn: [0 - 7ffc0]
[    0.000000] remap_alloc: node 0 [7ec00000-7fe00000) -> [f6600000-f7800000)
[    0.000000] Initmem setup node 0 0000000000000000-000000007ffc0000
[    0.000000]   NODE_DATA [0000000036600000 - 0000000036601fff] (remapped)
[    0.000000] 1157MB HIGHMEM available.
[    0.000000] 889MB LOWMEM available.
[    0.000000] max_low_pfn = 379fe, highstart_pfn = 379fe
[    0.000000] Low memory ends at vaddr f79fe000
[    0.000000] High memory starts at vaddr f79fe000
[    0.000000]   mapped low ram: 0 - 379fe000
[    0.000000]   low ram: 0 - 379fe000
[    0.000000] Node: 0, start_pfn: 10, end_pfn: 9f
[    0.000000]   Setting physnode_map array to node 0 for pfns:
[    0.000000]   10 
[    0.000000] Node: 0, start_pfn: 100, end_pfn: 7ffc0
[    0.000000]   Setting physnode_map array to node 0 for pfns:
[    0.000000]   100 4100 8100 c100 10100 14100 18100 1c100 20100 24100 28100 2c100 30100 34100 38100 3c100 40100 44100 48100 4c100 50100 54100 58100 5c100 60100 64100 68100 6c100 70100 74100 78100 7c100 
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   Normal   0x00001000 -> 0x000379fe
[    0.000000]   HighMem  0x000379fe -> 0x0007ffc0
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009f
[    0.000000]     0: 0x00000100 -> 0x0007ffc0
[    0.000000] On node 0 totalpages: 524111
[    0.000000] free_area_init_node: node 0, pgdat f6600000, node_mem_map f6602200
[    0.000000]   DMA zone: 32 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3951 pages, LIFO batch:0
[    0.000000]   Normal zone: 1748 pages used for memmap
[    0.000000]   Normal zone: 221994 pages, LIFO batch:31
[    0.000000]   HighMem zone: 2316 pages used for memmap
[    0.000000]   HighMem zone: 294070 pages, LIFO batch:31
[    0.000000] Using APIC driver default
[    0.000000] ACPI: PM-Timer IO Port: 0x808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0xffffffff base: 0xfed00000
[    0.000000] SMP: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] Allocating PCI resources starting at 80000000 (gap: 80000000:7ee00000)
[    0.000000] setup_percpu: NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:2 nr_node_ids:1
[    0.000000] PERCPU: Embedded 13 pages/cpu @f79d7000 s29696 r0 d23552 u53248
[    0.000000] pcpu-alloc: s29696 r0 d23552 u53248 alloc=13*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 520015
[    0.000000] Policy zone: HighMem
[    0.000000] Kernel command line: auto BOOT_IMAGE=Slackware-14.0 ro root=805 vt.default_utf8=1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Initializing CPU#0
[    0.000000] allocated 8387328 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Initializing HighMem for node 0 (000379fe:0007ffc0)
[    0.000000] Memory: 2034676k/2096896k available (10705k kernel code, 43336k reserved, 3285k data, 668k init, 1167112k highmem)
[    0.000000] virtual kernel memory layout:
[    0.000000]     fixmap  : 0xffd37000 - 0xfffff000   (2848 kB)
[    0.000000]     pkmap   : 0xffa00000 - 0xffc00000   (2048 kB)
[    0.000000]     vmalloc : 0xf81fe000 - 0xff9fe000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf79fe000   ( 889 MB)
[    0.000000]       .init : 0xc1daa000 - 0xc1e51000   ( 668 kB)
[    0.000000]       .data : 0xc1a74702 - 0xc1da9f00   (3285 kB)
[    0.000000]       .text : 0xc1000000 - 0xc1a74702   (10705 kB)
[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS:2304 nr_irqs:512 16
[    0.000000] CPU 0 irqstacks, hard=f580a000 soft=f580c000
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] hpet clockevent registered
[    0.000000] Fast TSC calibration using PIT
[    0.000000] Detected 1994.948 MHz processor.
[    0.001002] Calibrating delay loop (skipped), value calculated using timer frequency.. 3989.89 BogoMIPS (lpj=1994948)
[    0.001019] pid_max: default: 32768 minimum: 301
[    0.001050] Security Framework initialized
[    0.001077] Mount-cache hash table entries: 512
[    0.001251] Initializing cgroup subsys cpuacct
[    0.001264] Initializing cgroup subsys memory
[    0.001279] Initializing cgroup subsys devices
[    0.001287] Initializing cgroup subsys freezer
[    0.001295] Initializing cgroup subsys net_cls
[    0.001303] Initializing cgroup subsys blkio
[    0.001317] Initializing cgroup subsys perf_event
[    0.001348] Disabled fast string operations
[    0.001359] CPU: Physical Processor ID: 0
[    0.001365] CPU: Processor Core ID: 0
[    0.001373] mce: CPU supports 6 MCE banks
[    0.001387] CPU0: Thermal monitoring handled by SMI
[    0.001391] using mwait in idle threads.
[    0.001609] ACPI: Core revision 20110623
[    0.009012] ftrace: allocating 35311 entries in 70 pages
[    0.010061] Enabling APIC mode:  Flat.  Using 1 I/O APICs
[    0.010501] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.021088] CPU0: Genuine Intel(R) CPU           T2500  @ 2.00GHz stepping 08
[    0.021998] Performance Events: Core events, core PMU driver.
[    0.021998] ... version:                1
[    0.021998] ... bit width:              40
[    0.021998] ... generic registers:      2
[    0.021998] ... value mask:             000000ffffffffff
[    0.021998] ... max period:             000000007fffffff
[    0.021998] ... fixed-purpose events:   0
[    0.021998] ... event mask:             0000000000000003
[    0.021998] CPU 1 irqstacks, hard=f58be000 soft=f58c0000
[    0.021998] Booting Node   0, Processors  #1 Ok.
[    0.021998] smpboot cpu 1: start_ip = 9b000
[    0.001999] Initializing CPU#1
[    0.001999] Disabled fast string operations
[    0.001999] CPU1: Thermal monitoring handled by SMI
[    0.093009] Brought up 2 CPUs
[    0.093023] Total of 2 processors activated (7979.73 BogoMIPS).
[    0.094088] devtmpfs: initialized
[    0.094246] PM: Registering ACPI NVS region at 7ffce000 (204800 bytes)
[    0.094246] xor: automatically using best checksumming function: pIII_sse
[    0.098995]    pIII_sse  :  5196.000 MB/sec
[    0.099000] xor: using function: pIII_sse (5196.000 MB/sec)
[    0.099010] atomic64 test passed for i586+ platform with CX8 and with SSE
[    0.099056] print_constraints: dummy: 
[    0.099057] NET: Registered protocol family 16
[    0.099079] ACPI: bus type pci registered
[    0.099079] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.099079] PCI: not using MMCONFIG
[    0.100036] PCI : PCI BIOS aera is rw and x. Use pci=nobios if you want it NX.
[    0.100133] PCI: PCI BIOS revision 3.00 entry at 0xf0031, last bus=7
[    0.100139] PCI: Using configuration type 1 for base access
[    0.121078] bio: create slab <bio-0> at 0
[    0.137899] raid6: int32x1    597 MB/s
[    0.154916] raid6: int32x2    597 MB/s
[    0.171914] raid6: int32x4    472 MB/s
[    0.188849] raid6: int32x8    562 MB/s
[    0.205858] raid6: mmxx1     1902 MB/s
[    0.222827] raid6: mmxx2     2074 MB/s
[    0.239863] raid6: sse1x1    1410 MB/s
[    0.256825] raid6: sse1x2    1902 MB/s
[    0.273844] raid6: sse2x1    2191 MB/s
[    0.290833] raid6: sse2x2    2355 MB/s
[    0.290838] raid6: using algorithm sse2x2 (2355 MB/s)
[    0.291021] ACPI: Added _OSI(Module Device)
[    0.291021] ACPI: Added _OSI(Processor Device)
[    0.291021] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.291021] ACPI: Added _OSI(Processor Aggregator Device)
[    0.293214] ACPI: EC: Look up EC in DSDT
[    0.295723] ACPI: Executed 1 blocks of module-level executable AML code
[    0.301178] ACPI Warning: Incorrect checksum in table [OEMB] - 0x5D, should be 0x0A (20110623/tbutils-314)
[    0.301197] ACPI Warning: Incorrect checksum in table [TCPA] - 0x00, should be 0x70 (20110623/tbutils-314)
[    0.301321] ACPI: SSDT 7ffc9060 004D2 (v01    AMI   CPU1PM 00000001 INTL 20051117)
[    0.301919] ACPI: Dynamic OEM Table Load:
[    0.301926] ACPI: SSDT   (null) 004D2 (v01    AMI   CPU1PM 00000001 INTL 20051117)
[    0.302066] ACPI: SSDT 7ffc9540 004D2 (v01    AMI   CPU2PM 00000001 INTL 20051117)
[    0.302666] ACPI: Dynamic OEM Table Load:
[    0.302673] ACPI: SSDT   (null) 004D2 (v01    AMI   CPU2PM 00000001 INTL 20051117)
[    0.302968] ACPI: Interpreter enabled
[    0.302988] ACPI: (supports S0 S3 S4 S5)
[    0.303018] ACPI: Using IOAPIC for interrupt routing
[    0.303049] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    0.306178] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in ACPI motherboard resources
[    0.306189] PCI: MMCONFIG for 0000 [bus00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) (size reduced!)
[    0.306198] PCI: Using MMCONFIG for extended config space
[    0.307040] ACPI: Power Resource [GFAN] (off)
[    0.318187] ACPI: EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62
[    0.321109] ACPI: No dock devices found.
[    0.321121] HEST: Table not found.
[    0.321139] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[    0.321457] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.321655] pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7] (ignored)
[    0.321655] pci_root PNP0A08:00: host bridge window [io  0x0d00-0xffff] (ignored)
[    0.321655] pci_root PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
[    0.321655] pci_root PNP0A08:00: host bridge window [mem 0x000d0000-0x000dffff] (ignored)
[    0.321655] pci_root PNP0A08:00: host bridge window [mem 0x80000000-0xffffffff] (ignored)
[    0.321655] pci 0000:00:00.0: [8086:27a0] type 0 class 0x000600
[    0.321655] pci 0000:00:01.0: [8086:27a1] type 1 class 0x000604
[    0.321655] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.321655] pci 0000:00:01.0: PME# disabled
[    0.321655] pci 0000:00:1b.0: [8086:27d8] type 0 class 0x000403
[    0.321655] pci 0000:00:1b.0: reg 10: [mem 0xfebfc000-0xfebfffff 64bit]
[    0.321983] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.321988] pci 0000:00:1b.0: PME# disabled
[    0.322016] pci 0000:00:1c.0: [8086:27d0] type 1 class 0x000604
[    0.322125] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.322131] pci 0000:00:1c.0: PME# disabled
[    0.322161] pci 0000:00:1c.1: [8086:27d2] type 1 class 0x000604
[    0.322271] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.322276] pci 0000:00:1c.1: PME# disabled
[    0.322307] pci 0000:00:1c.2: [8086:27d4] type 1 class 0x000604
[    0.322415] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[    0.322420] pci 0000:00:1c.2: PME# disabled
[    0.322450] pci 0000:00:1c.3: [8086:27d6] type 1 class 0x000604
[    0.322559] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[    0.322565] pci 0000:00:1c.3: PME# disabled
[    0.322595] pci 0000:00:1d.0: [8086:27c8] type 0 class 0x000c03
[    0.322651] pci 0000:00:1d.0: reg 20: [io  0xec00-0xec1f]
[    0.322694] pci 0000:00:1d.1: [8086:27c9] type 0 class 0x000c03
[    0.322751] pci 0000:00:1d.1: reg 20: [io  0xe880-0xe89f]
[    0.322793] pci 0000:00:1d.2: [8086:27ca] type 0 class 0x000c03
[    0.322850] pci 0000:00:1d.2: reg 20: [io  0xe800-0xe81f]
[    0.322893] pci 0000:00:1d.3: [8086:27cb] type 0 class 0x000c03
[    0.322949] pci 0000:00:1d.3: reg 20: [io  0xe480-0xe49f]
[    0.323016] pci 0000:00:1d.7: [8086:27cc] type 0 class 0x000c03
[    0.323041] pci 0000:00:1d.7: reg 10: [mem 0xfebfbc00-0xfebfbfff]
[    0.323148] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[    0.323154] pci 0000:00:1d.7: PME# disabled
[    0.323177] pci 0000:00:1e.0: [8086:2448] type 1 class 0x000604
[    0.323274] pci 0000:00:1f.0: [8086:27b9] type 0 class 0x000601
[    0.323391] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0a00 (mask 007f)
[    0.323402] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 06f0 (mask 000f)
[    0.323412] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 0250 (mask 000f)
[    0.323477] pci 0000:00:1f.1: [8086:27df] type 0 class 0x000101
[    0.323494] pci 0000:00:1f.1: reg 10: [io  0x0000-0x0007]
[    0.323507] pci 0000:00:1f.1: reg 14: [io  0x0000-0x0003]
[    0.323520] pci 0000:00:1f.1: reg 18: [io  0x08f0-0x08f7]
[    0.323532] pci 0000:00:1f.1: reg 1c: [io  0x08f8-0x08fb]
[    0.323545] pci 0000:00:1f.1: reg 20: [io  0xffa0-0xffaf]
[    0.323639] pci 0000:01:00.0: [10de:01d8] type 0 class 0x000300
[    0.323655] pci 0000:01:00.0: reg 10: [mem 0xfd000000-0xfdffffff]
[    0.323673] pci 0000:01:00.0: reg 14: [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.323691] pci 0000:01:00.0: reg 1c: [mem 0xfc000000-0xfcffffff 64bit]
[    0.323713] pci 0000:01:00.0: reg 30: [mem 0xfbfe0000-0xfbffffff pref]
[    0.323780] pci 0000:01:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
[    0.323797] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    0.323806] pci 0000:00:01.0:   bridge window [mem 0xf9f00000-0xfdffffff]
[    0.323811] pci 0000:00:01.0:   bridge window [mem 0xbdf00000-0xddefffff 64bit pref]
[    0.323904] pci 0000:02:00.0: [10ec:8168] type 0 class 0x000200
[    0.323930] pci 0000:02:00.0: reg 10: [io  0xc800-0xc8ff]
[    0.323973] pci 0000:02:00.0: reg 18: [mem 0xfe0ff000-0xfe0fffff 64bit]
[    0.324023] pci 0000:02:00.0: reg 30: [mem 0xfe0e0000-0xfe0effff pref]
[    0.324133] pci 0000:02:00.0: supports D1 D2
[    0.324135] pci 0000:02:00.0: PME# supported from D1 D2 D3hot D3cold
[    0.324142] pci 0000:02:00.0: PME# disabled
[    0.324166] pci 0000:02:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
[    0.324186] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.324195] pci 0000:00:1c.0:   bridge window [io  0xc000-0xcfff]
[    0.324201] pci 0000:00:1c.0:   bridge window [mem 0xfe000000-0xfe0fffff]
[    0.324370] pci 0000:03:00.0: [8086:4222] type 0 class 0x000280
[    0.324427] pci 0000:03:00.0: reg 10: [mem 0xfe1ff000-0xfe1fffff]
[    0.324846] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    0.324859] pci 0000:03:00.0: PME# disabled
[    0.324919] pci 0000:03:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
[    0.324953] pci 0000:00:1c.1: PCI bridge to [bus 03-03]
[    0.324967] pci 0000:00:1c.1:   bridge window [mem 0xfe100000-0xfe1fffff]
[    0.325035] pci 0000:00:1c.2: PCI bridge to [bus 04-05]
[    0.325043] pci 0000:00:1c.2:   bridge window [io  0xd000-0xdfff]
[    0.325049] pci 0000:00:1c.2:   bridge window [mem 0xfe200000-0xfe9fffff]
[    0.325058] pci 0000:00:1c.2:   bridge window [mem 0xddf00000-0xdfefffff 64bit pref]
[    0.325119] pci 0000:00:1c.3: PCI bridge to [bus 06-06]
[    0.325180] pci 0000:07:01.0: [1180:0832] type 0 class 0x000c00
[    0.325197] pci 0000:07:01.0: proprietary Ricoh MMC controller disabled (via firewire function)
[    0.325206] pci 0000:07:01.0: MMC cards are now supported by standard SDHCI controller
[    0.325228] pci 0000:07:01.0: reg 10: [mem 0xfeaff800-0xfeafffff]
[    0.325324] pci 0000:07:01.0: PME# supported from D0 D3hot D3cold
[    0.325330] pci 0000:07:01.0: PME# disabled
[    0.325352] pci 0000:07:01.1: [1180:0822] type 0 class 0x000805
[    0.325375] pci 0000:07:01.1: reg 10: [mem 0xfeaff400-0xfeaff4ff]
[    0.325470] pci 0000:07:01.1: supports D1 D2
[    0.325472] pci 0000:07:01.1: PME# supported from D0 D1 D2 D3hot D3cold
[    0.325478] pci 0000:07:01.1: PME# disabled
[    0.325500] pci 0000:07:01.2: [1180:0592] type 0 class 0x000880
[    0.325521] pci 0000:07:01.2: reg 10: [mem 0xfeafec00-0xfeafecff]
[    0.325618] pci 0000:07:01.2: supports D1 D2
[    0.325621] pci 0000:07:01.2: PME# supported from D0 D1 D2 D3hot D3cold
[    0.325627] pci 0000:07:01.2: PME# disabled
[    0.325649] pci 0000:07:01.3: [1180:0852] type 0 class 0x000880
[    0.325672] pci 0000:07:01.3: reg 10: [mem 0xfeafe800-0xfeafe8ff]
[    0.325768] pci 0000:07:01.3: supports D1 D2
[    0.325771] pci 0000:07:01.3: PME# supported from D0 D1 D2 D3hot D3cold
[    0.325776] pci 0000:07:01.3: PME# disabled
[    0.325847] pci 0000:00:1e.0: PCI bridge to [bus 07-07] (subtractive decode)
[    0.325859] pci 0000:00:1e.0:   bridge window [mem 0xfea00000-0xfeafffff]
[    0.325868] pci 0000:00:1e.0:   bridge window [io  0x0000-0xffff] (subtractive decode)
[    0.325872] pci 0000:00:1e.0:   bridge window [mem 0x00000000-0xffffffff] (subtractive decode)
[    0.325909] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.326071] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.326111] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P7._PRT]
[    0.326168] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P2._PRT]
[    0.326200] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P3._PRT]
[    0.326232] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P4._PRT]
[    0.326418]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.326684]  pci0000:00: ACPI _OSC control (0x1d) granted
[    0.335028] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[    0.335095] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 *11 12 14 15)
[    0.335095] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 10 11 12 14 15)
[    0.335099] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 10 11 12 14 *15)
[    0.335163] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
[    0.335234] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
[    0.335301] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
[    0.335369] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 *7 10 11 12 14 15)
[    0.335543] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.335543] vgaarb: loaded
[    0.335543] vgaarb: bridge control possible 0000:01:00.0
[    0.335991] SCSI subsystem initialized
[    0.336005] libata version 3.00 loaded.
[    0.336008] usbcore: registered new interface driver usbfs
[    0.336008] usbcore: registered new interface driver hub
[    0.336008] usbcore: registered new device driver usb
[    0.336008] PCI: Using ACPI for IRQ routing
[    0.336027] PCI: pci_cache_line_size set to 64 bytes
[    0.336138] reserve RAM buffer: 000000000009fc00 - 000000000009ffff 
[    0.336141] reserve RAM buffer: 000000007ffc0000 - 000000007fffffff 
[    0.337009] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
[    0.337021] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    0.337031] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
[    0.340151] Switching to clocksource hpet
[    0.349360] pnp: PnP ACPI init
[    0.349390] ACPI: bus type pnp registered
[    0.349528] pnp 00:00: [bus 00-ff]
[    0.349532] pnp 00:00: [io  0x0cf8-0x0cff]
[    0.349535] pnp 00:00: [io  0x0000-0x0cf7 window]
[    0.349538] pnp 00:00: [io  0x0d00-0xffff window]
[    0.349541] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    0.349544] pnp 00:00: [mem 0x000d0000-0x000dffff window]
[    0.349548] pnp 00:00: [mem 0x80000000-0xffffffff window]
[    0.349675] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.349688] pnp 00:01: [mem 0xfed13000-0xfed19fff]
[    0.349793] system 00:01: [mem 0xfed13000-0xfed19fff] has been reserved
[    0.349802] system 00:01: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.349841] pnp 00:02: [dma 4]
[    0.349844] pnp 00:02: [io  0x0000-0x000f]
[    0.349847] pnp 00:02: [io  0x0081-0x0083]
[    0.349849] pnp 00:02: [io  0x0087]
[    0.349852] pnp 00:02: [io  0x0089-0x008b]
[    0.349854] pnp 00:02: [io  0x008f]
[    0.349857] pnp 00:02: [io  0x00c0-0x00df]
[    0.349927] pnp 00:02: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.349942] pnp 00:03: [io  0x0070-0x0071]
[    0.349956] pnp 00:03: [irq 8]
[    0.350047] pnp 00:03: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.350085] pnp 00:04: [io  0x0060]
[    0.350087] pnp 00:04: [io  0x0064]
[    0.350094] pnp 00:04: [irq 1]
[    0.350172] pnp 00:04: Plug and Play ACPI device, IDs PNP0303 PNP030b (active)
[    0.350229] pnp 00:05: [irq 12]
[    0.350304] pnp 00:05: Plug and Play ACPI device, IDs SYN0a06 SYN0a00 SYN0002 PNP0f03 PNP0f13 PNP0f12 (active)
[    0.350317] pnp 00:06: [io  0x0061]
[    0.350393] pnp 00:06: Plug and Play ACPI device, IDs PNP0800 (active)
[    0.350405] pnp 00:07: [io  0x00f0-0x00ff]
[    0.350412] pnp 00:07: [irq 13]
[    0.350484] pnp 00:07: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.350752] pnp 00:08: [io  0x02f8-0x02ff]
[    0.350755] pnp 00:08: [io  0x06f8-0x06ff]
[    0.350761] pnp 00:08: [irq 3]
[    0.350763] pnp 00:08: [dma 1]
[    0.350892] pnp 00:08: Plug and Play ACPI device, IDs SMCf010 (active)
[    0.350967] pnp 00:09: [io  0x0000-0xffffffffffffffff disabled]
[    0.350970] pnp 00:09: [io  0x0a00-0x0a0f]
[    0.351081] system 00:09: [io  0x0a00-0x0a0f] has been reserved
[    0.351089] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.351212] pnp 00:0a: [io  0x0010-0x001f]
[    0.351215] pnp 00:0a: [io  0x0022-0x003f]
[    0.351218] pnp 00:0a: [io  0x0044-0x005f]
[    0.351220] pnp 00:0a: [io  0x0063]
[    0.351223] pnp 00:0a: [io  0x0065]
[    0.351225] pnp 00:0a: [io  0x0067-0x006f]
[    0.351228] pnp 00:0a: [io  0x0072-0x007f]
[    0.351230] pnp 00:0a: [io  0x0080]
[    0.351233] pnp 00:0a: [io  0x0084-0x0086]
[    0.351235] pnp 00:0a: [io  0x0088]
[    0.351238] pnp 00:0a: [io  0x008c-0x008e]
[    0.351241] pnp 00:0a: [io  0x0090-0x009f]
[    0.351243] pnp 00:0a: [io  0x00a2-0x00bf]
[    0.351246] pnp 00:0a: [io  0x00e0-0x00ef]
[    0.351248] pnp 00:0a: [io  0x04d0-0x04d1]
[    0.351251] pnp 00:0a: [io  0x0800-0x087f]
[    0.351253] pnp 00:0a: [io  0x0400-0x041f]
[    0.351256] pnp 00:0a: [io  0x0480-0x04bf]
[    0.351259] pnp 00:0a: [mem 0xfed1c000-0xfed1ffff]
[    0.351262] pnp 00:0a: [mem 0xfed20000-0xfed3ffff]
[    0.351264] pnp 00:0a: [mem 0xfed45000-0xfed89fff]
[    0.351267] pnp 00:0a: [mem 0xffb00000-0xffbfffff]
[    0.351270] pnp 00:0a: [mem 0xfff00000-0xffffffff]
[    0.351392] system 00:0a: [io  0x04d0-0x04d1] has been reserved
[    0.351400] system 00:0a: [io  0x0800-0x087f] has been reserved
[    0.351407] system 00:0a: [io  0x0400-0x041f] has been reserved
[    0.351413] system 00:0a: [io  0x0480-0x04bf] has been reserved
[    0.351421] system 00:0a: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.351429] system 00:0a: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.351436] system 00:0a: [mem 0xfed45000-0xfed89fff] has been reserved
[    0.351444] system 00:0a: [mem 0xffb00000-0xffbfffff] could not be reserved
[    0.351451] system 00:0a: [mem 0xfff00000-0xffffffff] has been reserved
[    0.351459] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.351506] pnp 00:0b: [mem 0xfed00000-0xfed003ff]
[    0.351581] pnp 00:0b: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.351643] pnp 00:0c: [mem 0xffb80000-0xffbfffff]
[    0.351647] pnp 00:0c: [mem 0xfff80000-0xffffffff]
[    0.351748] system 00:0c: [mem 0xffb80000-0xffbfffff] has been reserved
[    0.351756] system 00:0c: [mem 0xfff80000-0xffffffff] has been reserved
[    0.351764] system 00:0c: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.351815] pnp 00:0d: [mem 0xffc00000-0xfff7ffff]
[    0.351919] system 00:0d: [mem 0xffc00000-0xfff7ffff] could not be reserved
[    0.351928] system 00:0d: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.351985] pnp 00:0e: [mem 0xfec00000-0xfec00fff]
[    0.351988] pnp 00:0e: [mem 0xfee00000-0xfee00fff]
[    0.351991] pnp 00:0e: [mem 0xfec10000-0xfec17fff]
[    0.351993] pnp 00:0e: [mem 0xfec18000-0xfec1ffff]
[    0.351996] pnp 00:0e: [mem 0xfec20000-0xfec27fff]
[    0.352115] system 00:0e: [mem 0xfec00000-0xfec00fff] could not be reserved
[    0.352124] system 00:0e: [mem 0xfee00000-0xfee00fff] has been reserved
[    0.352131] system 00:0e: [mem 0xfec10000-0xfec17fff] has been reserved
[    0.352138] system 00:0e: [mem 0xfec18000-0xfec1ffff] has been reserved
[    0.352146] system 00:0e: [mem 0xfec20000-0xfec27fff] has been reserved
[    0.352153] system 00:0e: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.352261] pnp 00:0f: [mem 0xe0000000-0xe3ffffff]
[    0.352363] system 00:0f: [mem 0xe0000000-0xe3ffffff] has been reserved
[    0.352372] system 00:0f: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.368428] pnp 00:10: [mem 0x00000000-0x0009ffff]
[    0.368431] pnp 00:10: [mem 0x000c0000-0x000cffff]
[    0.368434] pnp 00:10: [mem 0x000e0000-0x000fffff]
[    0.368437] pnp 00:10: [mem 0x00100000-0x7fffffff]
[    0.368440] pnp 00:10: [mem 0x00000000-0xffffffffffffffff disabled]
[    0.368564] system 00:10: [mem 0x00000000-0x0009ffff] could not be reserved
[    0.368573] system 00:10: [mem 0x000c0000-0x000cffff] could not be reserved
[    0.368580] system 00:10: [mem 0x000e0000-0x000fffff] could not be reserved
[    0.368588] system 00:10: [mem 0x00100000-0x7fffffff] could not be reserved
[    0.368596] system 00:10: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.368765] pnp: PnP ACPI: found 17 devices
[    0.368771] ACPI: ACPI bus type pnp unregistered
[    0.410113] PCI: max bus depth: 1 pci_try_num: 2
[    0.410180] pci 0000:00:1c.3: BAR 8: assigned [mem 0x80000000-0x801fffff]
[    0.410190] pci 0000:00:1c.3: BAR 9: assigned [mem 0x80200000-0x803fffff 64bit pref]
[    0.410201] pci 0000:00:1c.3: BAR 7: assigned [io  0x1000-0x1fff]
[    0.410208] pci 0000:00:1c.1: BAR 9: assigned [mem 0x80400000-0x805fffff 64bit pref]
[    0.410218] pci 0000:00:1c.1: BAR 7: assigned [io  0x2000-0x2fff]
[    0.410225] pci 0000:00:1c.0: BAR 9: assigned [mem 0x80600000-0x807fffff 64bit pref]
[    0.410234] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    0.410242] pci 0000:00:01.0:   bridge window [mem 0xf9f00000-0xfdffffff]
[    0.410251] pci 0000:00:01.0:   bridge window [mem 0xbdf00000-0xddefffff 64bit pref]
[    0.410261] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[    0.410269] pci 0000:00:1c.0:   bridge window [io  0xc000-0xcfff]
[    0.410279] pci 0000:00:1c.0:   bridge window [mem 0xfe000000-0xfe0fffff]
[    0.410289] pci 0000:00:1c.0:   bridge window [mem 0x80600000-0x807fffff 64bit pref]
[    0.410303] pci 0000:00:1c.1: PCI bridge to [bus 03-03]
[    0.410310] pci 0000:00:1c.1:   bridge window [io  0x2000-0x2fff]
[    0.410321] pci 0000:00:1c.1:   bridge window [mem 0xfe100000-0xfe1fffff]
[    0.410330] pci 0000:00:1c.1:   bridge window [mem 0x80400000-0x805fffff 64bit pref]
[    0.410344] pci 0000:00:1c.2: PCI bridge to [bus 04-05]
[    0.410351] pci 0000:00:1c.2:   bridge window [io  0xd000-0xdfff]
[    0.410362] pci 0000:00:1c.2:   bridge window [mem 0xfe200000-0xfe9fffff]
[    0.410372] pci 0000:00:1c.2:   bridge window [mem 0xddf00000-0xdfefffff 64bit pref]
[    0.410385] pci 0000:00:1c.3: PCI bridge to [bus 06-06]
[    0.410392] pci 0000:00:1c.3:   bridge window [io  0x1000-0x1fff]
[    0.410403] pci 0000:00:1c.3:   bridge window [mem 0x80000000-0x801fffff]
[    0.410413] pci 0000:00:1c.3:   bridge window [mem 0x80200000-0x803fffff 64bit pref]
[    0.410427] pci 0000:00:1e.0: PCI bridge to [bus 07-07]
[    0.410437] pci 0000:00:1e.0:   bridge window [mem 0xfea00000-0xfeafffff]
[    0.410470] pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.410478] pci 0000:00:01.0: setting latency timer to 64
[    0.410486] pci 0000:00:1c.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    0.410495] pci 0000:00:1c.0: setting latency timer to 64
[    0.410503] pci 0000:00:1c.1: enabling device (0106 -> 0107)
[    0.410515] pci 0000:00:1c.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    0.410524] pci 0000:00:1c.1: setting latency timer to 64
[    0.410536] pci 0000:00:1c.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    0.410545] pci 0000:00:1c.2: setting latency timer to 64
[    0.410553] pci 0000:00:1c.3: enabling device (0104 -> 0107)
[    0.410564] pci 0000:00:1c.3: PCI INT D -> GSI 19 (level, low) -> IRQ 19
[    0.410574] pci 0000:00:1c.3: setting latency timer to 64
[    0.410583] pci 0000:00:1e.0: setting latency timer to 64
[    0.410588] pci_bus 0000:00: resource 0 [io  0x0000-0xffff]
[    0.410591] pci_bus 0000:00: resource 1 [mem 0x00000000-0xffffffff]
[    0.410594] pci_bus 0000:01: resource 1 [mem 0xf9f00000-0xfdffffff]
[    0.410597] pci_bus 0000:01: resource 2 [mem 0xbdf00000-0xddefffff 64bit pref]
[    0.410601] pci_bus 0000:02: resource 0 [io  0xc000-0xcfff]
[    0.410604] pci_bus 0000:02: resource 1 [mem 0xfe000000-0xfe0fffff]
[    0.410607] pci_bus 0000:02: resource 2 [mem 0x80600000-0x807fffff 64bit pref]
[    0.410610] pci_bus 0000:03: resource 0 [io  0x2000-0x2fff]
[    0.410613] pci_bus 0000:03: resource 1 [mem 0xfe100000-0xfe1fffff]
[    0.410616] pci_bus 0000:03: resource 2 [mem 0x80400000-0x805fffff 64bit pref]
[    0.410619] pci_bus 0000:04: resource 0 [io  0xd000-0xdfff]
[    0.410622] pci_bus 0000:04: resource 1 [mem 0xfe200000-0xfe9fffff]
[    0.410626] pci_bus 0000:04: resource 2 [mem 0xddf00000-0xdfefffff 64bit pref]
[    0.410629] pci_bus 0000:06: resource 0 [io  0x1000-0x1fff]
[    0.410632] pci_bus 0000:06: resource 1 [mem 0x80000000-0x801fffff]
[    0.410635] pci_bus 0000:06: resource 2 [mem 0x80200000-0x803fffff 64bit pref]
[    0.410638] pci_bus 0000:07: resource 1 [mem 0xfea00000-0xfeafffff]
[    0.410641] pci_bus 0000:07: resource 4 [io  0x0000-0xffff]
[    0.410644] pci_bus 0000:07: resource 5 [mem 0x00000000-0xffffffff]
[    0.410677] NET: Registered protocol family 2
[    0.410733] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.410866] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.411785] TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
[    0.412126] TCP: Hash tables configured (established 131072 bind 65536)
[    0.412133] TCP reno registered
[    0.412140] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.412155] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.412252] NET: Registered protocol family 1
[    0.412371] RPC: Registered named UNIX socket transport module.
[    0.412379] RPC: Registered udp transport module.
[    0.412384] RPC: Registered tcp transport module.
[    0.412389] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.412443] pci 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    0.412470] pci 0000:00:1d.0: PCI INT A disabled
[    0.412482] pci 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    0.412506] pci 0000:00:1d.1: PCI INT B disabled
[    0.412518] pci 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    0.412541] pci 0000:00:1d.2: PCI INT C disabled
[    0.412553] pci 0000:00:1d.3: PCI INT D -> GSI 16 (level, low) -> IRQ 16
[    0.412575] pci 0000:00:1d.3: PCI INT D disabled
[    0.412589] pci 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    0.412621] pci 0000:00:1d.7: PCI INT A disabled
[    0.412648] pci 0000:01:00.0: Boot video device
[    0.412673] PCI: CLS 32 bytes, default 64
[    0.412747] Simple Boot Flag at 0x52 set to 0x1
[    0.413639] Intel AES-NI instructions are not detected.
[    0.413963] audit: initializing netlink socket (disabled)
[    0.413983] type=2000 audit(1354969970.412:1): initialized
[    0.414576] highmem bounce pool size: 64 pages
[    0.419979] VFS: Disk quotas dquot_6.5.2
[    0.420103] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.420586] DLM installed
[    0.422190] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.422421] NTFS driver 2.1.30 [Flags: R/W].
[    0.422595] ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.422915] JFS: nTxBlock = 8192, nTxLock = 65536
[    0.426702] SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
[    0.427599] SGI XFS Quota Management subsystem
[    0.427613] OCFS2 1.5.0
[    0.427833] ocfs2: Registered cluster interface o2cb
[    0.427944] ocfs2: Registered cluster interface user
[    0.427950] OCFS2 DLMFS 1.5.0
[    0.428208] OCFS2 User DLM kernel interface loaded
[    0.428215] OCFS2 Node Manager 1.5.0
[    0.428362] OCFS2 DLM 1.5.0
[    0.428804] Btrfs loaded
[    0.429274] GFS2 installed
[    0.429287] msgmni has been set to 1694
[    0.431127] async_tx: api initialized (async)
[    0.431197] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.431239] io scheduler noop registered
[    0.431247] io scheduler deadline registered
[    0.431267] io scheduler cfq registered (default)
[    0.431431] pcieport 0000:00:01.0: setting latency timer to 64
[    0.431472] pcieport 0000:00:01.0: irq 40 for MSI/MSI-X
[    0.431635] pcieport 0000:00:1c.0: setting latency timer to 64
[    0.431691] pcieport 0000:00:1c.0: irq 41 for MSI/MSI-X
[    0.431937] pcieport 0000:00:1c.1: setting latency timer to 64
[    0.431993] pcieport 0000:00:1c.1: irq 42 for MSI/MSI-X
[    0.432250] pcieport 0000:00:1c.2: setting latency timer to 64
[    0.432306] pcieport 0000:00:1c.2: irq 43 for MSI/MSI-X
[    0.432551] pcieport 0000:00:1c.3: setting latency timer to 64
[    0.432607] pcieport 0000:00:1c.3: irq 44 for MSI/MSI-X
[    0.432971] pcieport 0000:00:01.0: Signaling PME through PCIe PME interrupt
[    0.432979] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    0.432987] pcie_pme 0000:00:01.0:pcie01: service driver pcie_pme loaded
[    0.433046] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
[    0.433053] pci 0000:02:00.0: Signaling PME through PCIe PME interrupt
[    0.433062] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded
[    0.433088] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt
[    0.433095] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt
[    0.433104] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded
[    0.433129] pcieport 0000:00:1c.2: Signaling PME through PCIe PME interrupt
[    0.433139] pcie_pme 0000:00:1c.2:pcie01: service driver pcie_pme loaded
[    0.433164] pcieport 0000:00:1c.3: Signaling PME through PCIe PME interrupt
[    0.433174] pcie_pme 0000:00:1c.3:pcie01: service driver pcie_pme loaded
[    0.433277] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.433422] vesafb: mode is 1400x1050x16, linelength=2800, pages=1
[    0.433429] vesafb: protected mode interface info at c000:d5d0
[    0.433435] vesafb: pmi: set display start = c00cd606, set palette = c00cd670
[    0.433441] vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da 
[    0.433464] vesafb: scrolling: redraw
[    0.433470] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
[    0.433961] vesafb: framebuffer at 0xc0000000, mapped to 0xf8700000, using 5742k, total 131072k
[    0.434097] fbcon: VESA VGA (fb0) is primary device
[    0.479805] Console: switching to colour frame buffer device 175x65
[    0.522206] fb0: VESA VGA frame buffer device
[    0.522482] intel_idle: MWAIT substates: 0x22220
[    0.522484] intel_idle: does not run on family 6 model 14
[    0.522567] ERST: Table is not found!
[    0.522735] GHES: HEST is not enabled!
[    0.522919] isapnp: Scanning for PnP cards...
[    0.836075] isapnp: No Plug & Play device found
[    0.841661] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.118236] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.414133] Refined TSC clocksource calibration: 1994.999 MHz.
[    1.414502] Switching to clocksource tsc
[    4.176070] floppy0: no floppy controllers found
[    4.179557] brd: module loaded
[    4.179699] Compaq SMART2 Driver (v 2.6.0)
[    4.179982] HP CISS Driver (v 3.6.26)
[    4.181249] fnic: Cisco FCoE HBA Driver, ver 1.5.0.2
[    4.183526] Adaptec aacraid driver 1.1-7[28000]-ms
[    4.184090] aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
[    4.184680] scsi: <fdomain> Detection failed (no card)
[    4.184923] sym53c416.c: Version 1.0.0-ac
[    4.185161] qlogicfas: no cards were found, please specify I/O address and IRQ using iobase= and irq= options
[    4.185708] qla2xxx [0000:00:00.0]-0005: : QLogic Fibre Channel HBA Driver: 8.03.07.12-k.
[    4.186169] Emulex LightPulse Fibre Channel SCSI driver 8.3.27
[    4.186435] Copyright(c) 2004-2009 Emulex.  All rights reserved.
[    4.186768] Brocade BFA FC/FCOE SCSI driver - version: 3.0.2.2
[    4.209064] Failed initialization of WD-7000 SCSI card!
[    4.259058] DC390: clustering now enabled by default. If you get problems load
[    4.259387]        with "disable_clustering=1" and report to maintainers
[    4.259747] megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006)
[    4.260158] megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006)
[    4.260529] megasas: 00.00.06.12-rc1 Wed. Oct. 5 17:00:00 PDT 2011
[    4.260877] mpt2sas version 10.100.00.00 loaded
[    4.261261] GDT-HA: Storage RAID Controller Driver. Version: 3.05
[    4.261692] 3ware Storage Controller device driver for Linux v1.26.02.003.
[    4.262066] 3ware 9000 Storage Controller device driver for Linux v2.26.02.014.
[    4.262452] LSI 3ware SAS/SATA-RAID Controller device driver for Linux v3.26.02.000.
[    4.262857] ipr: IBM Power RAID SCSI Device Driver version: 2.5.2 (April 27, 2011)
[    4.275953] RocketRAID 3xxx/4xxx Controller driver v1.6 (090910)
[    4.288956] stex: Promise SuperTrak EX Driver version: 4.6.0000.4
[    4.302195] st: Version 20101219, fixed bufsize 32768, s/g segs 256
[    4.316093] ata_piix 0000:00:1f.1: version 2.13
[    4.316110] ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[    4.329510] ata_piix 0000:00:1f.1: setting latency timer to 64
[    4.330162] scsi2 : ata_piix
[    4.343470] scsi3 : ata_piix
[    4.357870] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14
[    4.371029] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15
[    4.384169] ata2: port disabled--ignoring
[    4.387224] I2O subsystem v1.325
[    4.400087] i2o: max drivers = 8
[    4.412991] I2O Configuration OSM v1.323
[    4.425696] I2O Bus Adapter OSM v1.317
[    4.438483] I2O Block Device OSM v1.325
[    4.451279] I2O SCSI Peripheral OSM v1.316
[    4.463876] I2O ProcFS OSM v1.316
[    4.476385] Fusion MPT base driver 3.04.20
[    4.488795] Copyright (c) 1999-2008 LSI Corporation
[    4.501206] Fusion MPT SPI Host driver 3.04.20
[    4.513581] Fusion MPT FC Host driver 3.04.20
[    4.525915] Fusion MPT SAS Host driver 3.04.20
[    4.538424] Fusion MPT misc device (ioctl) driver 3.04.20
[    4.550709] mptctl: Registered with Fusion MPT base driver
[    4.563512] mptctl: /dev/mptctl @ (major,minor=10,220)
[    4.575606] Fusion MPT LAN driver 3.04.20
[    4.587744] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.599893] ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    4.612190] ata1.00: ATA-8: WDC WD2500BEVE-00WZT0, 01.01A01, max UDMA/100
[    4.612201] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[    4.612206] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[    4.637023] ata1.00: 488397168 sectors, multi 16: LBA48 
[    4.649508] ata1.01: ATAPI: MATSHITADVD-RAM UJ-832S, 1.00, max UDMA/33
[    4.662196] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
[    4.675109] ata1.00: configured for UDMA/100
[    4.675138] ehci_hcd 0000:00:1d.7: using broken periodic workaround
[    4.675151] ehci_hcd 0000:00:1d.7: debug port 1
[    4.679031] ehci_hcd 0000:00:1d.7: cache line size of 32 is not supported
[    4.679056] ehci_hcd 0000:00:1d.7: irq 23, io mem 0xfebfbc00
[    4.688008] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[    4.688062] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    4.688065] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.688068] usb usb1: Product: EHCI Host Controller
[    4.688070] usb usb1: Manufacturer: Linux 3.2.29-smp ehci_hcd
[    4.688072] usb usb1: SerialNumber: 0000:00:1d.7
[    4.804419] hub 1-0:1.0: USB hub found
[    4.816793] hub 1-0:1.0: 8 ports detected
[    4.829139] 116x: driver isp116x-hcd, 03 Nov 2005
[    4.829352] ata1.01: configured for UDMA/33
[    4.852979] driver isp1362-hcd, 2005-04-04
[    4.864750] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.876651] uhci_hcd: USB Universal Host Controller Interface driver
[    4.888480] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[    4.888593] scsi 2:0:0:0: Direct-Access     ATA      WDC WD2500BEVE-0 01.0 PQ: 0 ANSI: 5
[    4.912173] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[    4.912178] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[    4.924048] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    4.924163] sd 2:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[    4.924224] sd 2:0:0:0: [sda] Write Protect is off
[    4.924227] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    4.924254] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.971410] uhci_hcd 0000:00:1d.0: irq 23, io base 0x0000ec00
[    4.983405] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    4.995354] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.007248] usb usb2: Product: UHCI Host Controller
[    5.007257] scsi 2:0:1:0: CD-ROM            MATSHITA DVD-RAM UJ-832S  1.00 PQ: 0 ANSI: 5
[    5.030827] usb usb2: Manufacturer: Linux 3.2.29-smp uhci_hcd
[    5.042636] usb usb2: SerialNumber: 0000:00:1d.0
[    5.054524] hub 2-0:1.0: USB hub found
[    5.066081] hub 2-0:1.0: 2 ports detected
[    5.077664] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[    5.089450] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[    5.089454] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[    5.101184] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
[    5.113118] uhci_hcd 0000:00:1d.1: irq 19, io base 0x0000e880
[    5.124908] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    5.136843] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.148943] usb usb3: Product: UHCI Host Controller
[    5.160937] usb usb3: Manufacturer: Linux 3.2.29-smp uhci_hcd
[    5.173159] usb usb3: SerialNumber: 0000:00:1d.1
[    5.185458] hub 3-0:1.0: USB hub found
[    5.197544] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    5.197608] hub 3-0:1.0: 2 ports detected
[    5.197695] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[    5.197704] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[    5.197708] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[    5.234216]  sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 >
[    5.259811] cdrom: Uniform CD-ROM driver Revision: 3.20
[    5.272437] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
[    5.285229] uhci_hcd 0000:00:1d.2: irq 18, io base 0x0000e800
[    5.285308] sr 2:0:1:0: Attached scsi CD-ROM sr0
[    5.298077] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
[    5.310863] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.311300] sd 2:0:0:0: [sda] Attached SCSI disk
[    5.336258] usb usb4: Product: UHCI Host Controller
[    5.348820] usb usb4: Manufacturer: Linux 3.2.29-smp uhci_hcd
[    5.361347] usb usb4: SerialNumber: 0000:00:1d.2
[    5.373995] hub 4-0:1.0: USB hub found
[    5.386356] hub 4-0:1.0: 2 ports detected
[    5.398616] uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 16 (level, low) -> IRQ 16
[    5.410931] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[    5.410935] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[    5.423200] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
[    5.435571] uhci_hcd 0000:00:1d.3: irq 16, io base 0x0000e480
[    5.447933] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
[    5.460492] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.472975] usb usb5: Product: UHCI Host Controller
[    5.485418] usb usb5: Manufacturer: Linux 3.2.29-smp uhci_hcd
[    5.497848] usb usb5: SerialNumber: 0000:00:1d.3
[    5.510417] hub 5-0:1.0: USB hub found
[    5.522778] hub 5-0:1.0: 2 ports detected
[    5.535250] sl811: driver sl811-hcd, 19 May 2005
[    5.547695] r8a66597_hcd: driver r8a66597_hcd, 2009-05-26
[    5.560368] Initializing USB Mass Storage driver...
[    5.572940] usbcore: registered new interface driver usb-storage
[    5.585562] USB Mass Storage support registered.
[    5.598160] usbcore: registered new interface driver ums-alauda
[    5.610828] usbcore: registered new interface driver ums-cypress
[    5.623324] usbcore: registered new interface driver ums-datafab
[    5.635609] usbcore: registered new interface driver ums-freecom
[    5.647647] usbcore: registered new interface driver ums-isd200
[    5.659554] usbcore: registered new interface driver ums-jumpshot
[    5.671245] usbcore: registered new interface driver ums-karma
[    5.682776] usbcore: registered new interface driver ums-onetouch
[    5.694164] usbcore: registered new interface driver ums-sddr09
[    5.705300] usbcore: registered new interface driver ums-sddr55
[    5.716191] usbcore: registered new interface driver ums-usbat
[    5.727034] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12
[    5.739931] i8042: Detected active multiplexing controller, rev 1.1
[    5.752318] serio: i8042 KBD port at 0x60,0x64 irq 1
[    5.763004] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    5.773700] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    5.784240] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    5.794746] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    5.805247] mousedev: PS/2 mouse device common for all mice
[    5.815646] rtc_cmos 00:03: RTC can wake from S4
[    5.826119] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[    5.836487] rtc0: alarms up to one month, 114 bytes nvram, hpet irqs
[    5.846796] usb 5-1: new full-speed USB device number 2 using uhci_hcd
[    5.857217] md: linear personality registered for level -1
[    5.867548] md: raid0 personality registered for level 0
[    5.877877] md: raid1 personality registered for level 1
[    5.888087] md: raid10 personality registered for level 10
[    5.898316] md: raid6 personality registered for level 6
[    5.908435] md: raid5 personality registered for level 5
[    5.918324] md: raid4 personality registered for level 4
[    5.928011] md: multipath personality registered for level -4
[    5.937865] device-mapper: uevent: version 1.0.3
[    5.943443] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    5.957793] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[    5.968020] cpuidle: using governor ladder
[    5.978038] cpuidle: using governor menu
[    5.987945] input: Speakup as /devices/virtual/input/input1
[    5.997927] initialized device: /dev/synth, node (MAJOR 10, MINOR 25)
[    6.007857] speakup 3.1.6: initialized
[    6.017668] synth name on entry is: (null)
[    6.027685] TCP cubic registered
[    6.037409] Initializing XFRM netlink socket
[    6.047169] NET: Registered protocol family 17
[    6.057081] Registering the dns_resolver key type
[    6.066853] Using IPI No-Shortcut mode
[    6.081643] registered taskstats version 1
[    6.092092] rtc_cmos 00:03: setting system clock to 2012-12-08 12:32:57 UTC (1354969977)
[    6.102159] md: Waiting for all devices to be available before autodetect
[    6.112116] md: If you don't use raid, use raid=noautodetect
[    6.122308] md: Autodetecting RAID arrays.
[    6.132122] md: Scanned 0 and added 0 devices.
[    6.141910] md: autorun ...
[    6.151593] md: ... autorun DONE.
[    6.165267] EXT3-fs (sda5): error: couldn't mount because of unsupported optional features (240)
[    6.176941] usb 5-1: New USB device found, idVendor=0b05, idProduct=1712
[    6.187228] usb 5-1: New USB device strings: Mfr=0, Product=0, SerialNumber=3
[    6.197416] usb 5-1: SerialNumber: 0194E8-5B-0002
[    6.216278] EXT2-fs (sda5): error: couldn't mount because of unsupported optional features (240)
[    6.335445] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[    6.345866] VFS: Mounted root (ext4 filesystem) readonly on device 8:5.
[    6.386847] devtmpfs: mounted
[    6.397440] Freeing unused kernel memory: 668k freed
[    6.408359] Write protecting the kernel text: 10708k
[    6.419174] Write protecting the kernel read-only data: 2700k
[    6.429997] NX-protecting the kernel data: 5676k
[    7.311647] loop: module loaded
[    7.531692] udevd[1401]: starting version 182
[    8.503665] intel_rng: FWH not detected
[    8.515235] Linux agpgart interface v0.103
[    8.587842] sdhci: Secure Digital Host Controller Interface driver
[    8.599497] sdhci: Copyright(c) Pierre Ossman
[    8.641684] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    8.641741] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input2
[    8.643466] ACPI: Lid Switch [LID]
[    8.643530] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
[    8.643568] ACPI: Power Button [PWRB]
[    8.643622] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input4
[    8.643657] ACPI: Sleep Button [SLPB]
[    8.643712] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input5
[    8.643744] ACPI: Power Button [PWRF]
[    8.709291] NET: Registered protocol family 23
[    8.711460] cfg80211: Calling CRDA to update world regulatory domain
[    8.712856] Bluetooth: Core ver 2.16
[    8.712870] NET: Registered protocol family 31
[    8.712872] Bluetooth: HCI device and connection manager initialized
[    8.712875] Bluetooth: HCI socket layer initialized
[    8.712877] Bluetooth: L2CAP socket layer initialized
[    8.712882] Bluetooth: SCO socket layer initialized
[    8.735284] Bluetooth: Generic Bluetooth USB driver ver 0.6
[    8.751571] ACPI: Fan [FN00] (off)
[    8.759412] snd_hda_intel 0000:00:1b.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    8.759484] snd_hda_intel 0000:00:1b.0: irq 45 for MSI/MSI-X
[    8.759520] snd_hda_intel 0000:00:1b.0: setting latency timer to 64
[    8.780048] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[    8.780072] r8169 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[    8.780103] r8169 0000:02:00.0: setting latency timer to 64
[    8.780194] r8169 0000:02:00.0: irq 46 for MSI/MSI-X
[    8.780350] r8169 0000:02:00.0: eth0: RTL8168b/8111b at 0xf90f0000, 00:17:31:a3:b0:bf, XID 10000000 IRQ 46
[    8.780353] r8169 0000:02:00.0: eth0: jumbo features [frames: 4080 bytes, tx checksumming: ko]
[    8.952062] usbcore: registered new interface driver btusb
[    8.952530] ACPI: AC Adapter [AC0] (on-line)
[    9.102769] r592 0000:07:01.2: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    9.116431] r592 0000:07:01.2: setting latency timer to 64
[    9.116651] r592: driver successfully loaded
[    9.130711] sdhci-pci 0000:07:01.1: SDHCI controller found [1180:0822] (rev 19)
[    9.144430] sdhci-pci 0000:07:01.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[    9.159288] sdhci-pci 0000:07:01.1: Will use DMA mode even though HW doesn't fully claim to support it.
[    9.173174] mmc0: no vmmc regulator found
[    9.187977] Registered led device: mmc0::
[    9.191052] mmc0: SDHCI controller on PCI [0000:07:01.1] using DMA
[    9.247670] thermal LNXTHERM:00: registered as thermal_zone0
[    9.261562] ACPI: Thermal Zone [THRM] (50 C)
[    9.275957] asus_laptop: Asus Laptop Support version 0.42
[    9.290062] asus_laptop:   VX1 model detected
[    9.304407] asus_laptop: Backlight controlled by ACPI video driver
[    9.318239] input: Asus Laptop extra buttons as /devices/platform/asus_laptop/input/input6
[    9.318836] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[    9.318839] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[    9.318919] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[    9.318934] iwl3945 0000:03:00.0: setting latency timer to 64
[    9.373239] iwl3945 0000:03:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[    9.373242] iwl3945 0000:03:00.0: Detected Intel Wireless WiFi Link 3945ABG
[    9.373393] iwl3945 0000:03:00.0: irq 47 for MSI/MSI-X
[    9.373579] Registered led device: phy0-led
[    9.373775] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[    9.425410] Registered led device: asus::touchpad
[    9.519624] leds_ss4200: no LED devices found
[    9.916913] acpi device:0e: registered as cooling_device3
[    9.930996] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:0c/LNXVIDEO:00/input/input7
[    9.945826] ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)
[    9.992679] cfg80211: World regulatory domain updated:
[   10.007907] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   10.024173] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.040101] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.056450] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   10.072207] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.087729] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   10.210469] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[   10.225151] ACPI: Battery Slot [BAT0] (battery present)
[   10.355495] r852 0000:07:01.3: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[   10.370249] r852 0000:07:01.3: setting latency timer to 64
[   10.370393] r852: Non dma capable device detected, dma disabled
[   10.385180] r852: driver loaded successfully
[   10.409294] [drm] Initialized drm 1.1.0 20060810
[   10.439828] firewire_ohci 0000:07:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[   10.480915] wmi: Mapper loaded
[   10.528090] firewire_ohci: Added fw-ohci device 0000:07:01.0, OHCI v1.0, 4 IR + 4 IT contexts, quirks 0x11
[   10.571223] psmouse serio4: synaptics: Touchpad model: 1, fw: 6.2, id: 0x25a0b1, caps: 0xa04713/0x0/0x0
[   10.575851] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[   10.575858] nouveau 0000:01:00.0: setting latency timer to 64
[   10.577127] [drm] nouveau 0000:01:00.0: Detected an NV40 generation card (0x046800a3)
[   10.577132] checking generic (c0000000 8000000) vs hw (c0000000 10000000)
[   10.577134] fb: conflicting fb hw usage nouveaufb vs VESA VGA - removing generic driver
[   10.629665] Console: switching to colour dummy device 80x25
[   10.632136] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
[   10.676215] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input8
[   10.715332] [drm] nouveau 0000:01:00.0: ... appears to be valid
[   10.715345] [drm] nouveau 0000:01:00.0: BIT BIOS found
[   10.715354] [drm] nouveau 0000:01:00.0: Bios version 05.72.22.41
[   10.715364] [drm] nouveau 0000:01:00.0: TMDS table version 1.1
[   10.715372] [drm] nouveau 0000:01:00.0: TMDS table script pointers not stubbed
[   10.715383] [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 3.0
[   10.715396] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 03005323 00000004
[   10.715406] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 01010300 00000028
[   10.715417] [drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x30 5 10 2
[   10.715448] [drm] nouveau 0000:01:00.0:   0: 0x00000000: type 0x00 idx 0 tag 0xff
[   10.715460] [drm] nouveau 0000:01:00.0:   1: 0x00001130: type 0x30 idx 1 tag 0x07
[   10.715471] [drm] nouveau 0000:01:00.0:   2: 0x00000210: type 0x10 idx 2 tag 0xff
[   10.715482] [drm] nouveau 0000:01:00.0:   3: 0x00000211: type 0x11 idx 3 tag 0xff
[   10.715494] [drm] nouveau 0000:01:00.0:   4: 0x00000213: type 0x13 idx 4 tag 0xff
[   10.715505] [drm] nouveau 0000:01:00.0:   5: 0x00000340: type 0x40 idx 5 tag 0xff
[   10.715516] [drm] nouveau 0000:01:00.0:   6: 0x00002431: type 0x31 idx 6 tag 0x08
[   10.715533] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xE118
[   10.715599] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xE41C
[   10.730846] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xE90E
[   10.730881] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xEA89
[   10.732055] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xEBFE
[   10.751304] [drm] nouveau 0000:01:00.0: 3 available performance level(s)
[   10.751318] [drm] nouveau 0000:01:00.0: 0: core 100MHz shader 100MHz memory 220MHz timing 2 voltage 1000mV fanspeed 100%
[   10.751335] [drm] nouveau 0000:01:00.0: 1: core 200MHz shader 200MHz memory 600MHz timing 2 voltage 1000mV fanspeed 100%
[   10.751351] [drm] nouveau 0000:01:00.0: 2: core 525MHz shader 525MHz memory 1000MHz timing 3 voltage 1100mV fanspeed 100%
[   10.751371] [drm] nouveau 0000:01:00.0: c: core 199MHz memory 391MHz voltage 1100mV
[   10.751637] [TTM] Zone  kernel: Available graphics memory: 434116 kiB.
[   10.751648] [TTM] Zone highmem: Available graphics memory: 1017672 kiB.
[   10.751657] [TTM] Initializing pool allocator.
[   10.751674] [drm] nouveau 0000:01:00.0: Detected 128MiB VRAM
[   10.760794] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[   10.762647] [drm] nouveau 0000:01:00.0: ACPI backlight interface available, not registering our own
[   10.763785] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   10.763794] [drm] No driver support for vblank timestamp query.
[   10.763805] [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on lvds encoder (output 0)
[   10.763818] [drm] nouveau 0000:01:00.0: Calling LVDS script 6:
[   10.763827] [drm] nouveau 0000:01:00.0: 0xD259: Parsing digital output script table
[   11.043882] [drm] nouveau 0000:01:00.0: Setting dpms mode 3 on vga encoder (output 1)
[   11.052073] firewire_core: created device fw0: GUID 00e0180003596557, S400
[   11.189807] [drm] nouveau 0000:01:00.0: allocated 1400x1050 fb: 0x49000, bo f53ba400
[   11.189893] fbcon: nouveaufb (fb0) is primary device
[   11.200403] [drm] nouveau 0000:01:00.0: Calling LVDS script 2:
[   11.200408] [drm] nouveau 0000:01:00.0: 0xD2CF: Parsing digital output script table
[   11.348455] [drm] nouveau 0000:01:00.0: Setting dpms mode 0 on lvds encoder (output 0)
[   11.348458] [drm] nouveau 0000:01:00.0: Calling LVDS script 5:
[   11.348460] [drm] nouveau 0000:01:00.0: 0xD24A: Parsing digital output script table
[   11.348470] [drm] nouveau 0000:01:00.0: Output LVDS-1 is running on CRTC 0 using output A
[   11.348482] Console: switching to colour frame buffer device 175x65
[   11.351131] fb0: nouveaufb frame buffer device
[   11.351144] drm: registered panic notifier
[   11.351160] [drm] Initialized nouveau 0.0.16 20090420 for 0000:01:00.0 on minor 0
[   11.694401] Adding 2104508k swap on /dev/sda2.  Priority:-1 extents:1 across:2104508k 
[   11.816323] fuse init (API version 7.17)
[   12.163370] EXT4-fs (sda5): re-mounted. Opts: (null)
[   12.667868] ppdev: user-space parallel port driver
[   12.671322] lp: driver loaded but no devices found
[   12.734351] powernow: This module only works with AMD K7 CPUs
[   12.803080] cpufreq-nforce2: No nForce2 chipset.
[   16.530177] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   16.594343] EXT4-fs (sda6): mounted filesystem with ordered data mode. Opts: (null)
[   16.874714] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[   18.903284] intel_rng: FWH not detected
[   18.907588] leds_ss4200: no LED devices found
[   20.483036] r8169 0000:02:00.0: eth0: link down
[   20.483048] r8169 0000:02:00.0: eth0: link down
[   22.932394] r8169 0000:02:00.0: eth0: link up
[   29.126806] NET: Registered protocol family 10
[   39.810022] eth0: no IPv6 routers present

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-12-08 11:10               ` Heinz Wiesinger
@ 2012-12-11  1:56                 ` John Stultz
  2012-12-22 12:48                   ` Heinz Wiesinger
  0 siblings, 1 reply; 171+ messages in thread
From: John Stultz @ 2012-12-11  1:56 UTC (permalink / raw)
  To: Heinz Wiesinger
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux

On 12/08/2012 03:10 AM, Heinz Wiesinger wrote:
> On Tuesday 04 December 2012 10:34:39 John Stultz wrote:
>> On 12/04/2012 02:34 AM, Heinz Wiesinger wrote:
>>> On Monday 03 December 2012 15:14:12 you wrote:
>>>> On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
>>>>> On Monday 05 November 2012 11:13:31 Greg KH wrote:
>>>>>> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> In March, Greg KH wrote:
>>>>>>>> 3.2-stable review patch.  If anyone has any objections, please let me
>>>>>>>> know.
>>>>>>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
>>>>>>> after shutdown on some systems just like v1 did. :/
>>>>>>>
>>>>>>> Janne Boman reports[1], using an HP EliteBook 8530w:
>>>>>>> | I'm unable to shutdown my system via normal means. The system
>>>>>>> | completes the shutdown process, all hardware lights are off, but
>>>>>>> | then
>>>>>>> | somehow it restarts.
>>>>>>>
>>>>>>> Based on a quick web search, Heinz Wiesinger, using the same model,
>>>>>>>
>>>>>>> ran into the same problem and bisected it to this patch:
>>>>>>>      https://bugzilla.kernel.org/show_bug.cgi?id=44261
>>>>>>>
>>>>>>> Janne confirmed the same by testing kernels closely based on 3.2.13
>>>>>>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
>>>>>>> now" behaved roughly speaking like "reboot".  A kernel close to 3.6.4
>>>>>>> was also affected.
>>>>>> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring out
>>>>>> if this is still an issue in Linus's tree would be the best thing to do
>>>>>> first.
>>>>> I checked 3.7-rc4 and the issue is still there. Should I still test the
>>>>> other versions as well? I can do so but it might take a bit.
>>>>>
>>>>> If you need anything else, I'll be happy to help wherever I can.
>>>> Hey Heinz,
>>>>
>>>>      Sorry for being slow to respond to this, I was on leave when it
>>>>
>>>> arrived, and it got buried under other items.
>>>>
>>>> This is peculiar.  I'm guessing something quirky with your hardware is
>>>> causing the alarm irq to trigger shortly after we supposedly disable it.
>>>> Could you send me your dmesg and kernel config?
>>>>
>>>> After that I'll likely have to send you some debugging instructions
>>>> (commenting out various lines) to try to figure out what exactly is
>>>> triggering it.
>>>>
>>>> Sorry for the trouble!
>>> Hey John,
>>>
>>> Don't worry, I know how it is to be busy.
>>>
>>> For the dmesg/kernel config is it fine if I send you the one from 3.7-rc4
>>> or should I update to a more recent version?
>> 3.7-rc4 is fine.
>>
>>> I've also now seen this behaviour on another notebook with completely
>>> different hardware (Asus VX1). I can send you dmesg output from that one
>>> too if you want. Kernel config should be almost identical, but it's
>>> running 3.2.29 still.
>> Yea, dmesg there would be good as well.
> Hey John,
>
> Sorry for the delay. I was quite busy this week myself.
> Please find the kernel config and dmesg output attached.

Thanks for the details!

Quick test: Does the issue persist if you boot with hpet=disable?

thanks
-john


^ permalink raw reply	[flat|nested] 171+ messages in thread

* Re: [regression] Re: [ 049/149] rtc: Disable the alarm in the hardware (v2)
  2012-12-11  1:56                 ` John Stultz
@ 2012-12-22 12:48                   ` Heinz Wiesinger
  0 siblings, 0 replies; 171+ messages in thread
From: Heinz Wiesinger @ 2012-12-22 12:48 UTC (permalink / raw)
  To: John Stultz
  Cc: Greg KH, Jonathan Nieder, linux-kernel, stable, torvalds, akpm,
	alan, Rabin Vincent, Janne Boman, rtc-linux

[-- Attachment #1: Type: text/plain, Size: 3533 bytes --]

On Monday 10 December 2012 17:56:02 John Stultz wrote:
> On 12/08/2012 03:10 AM, Heinz Wiesinger wrote:
> > On Tuesday 04 December 2012 10:34:39 John Stultz wrote:
> >> On 12/04/2012 02:34 AM, Heinz Wiesinger wrote:
> >>> On Monday 03 December 2012 15:14:12 you wrote:
> >>>> On 11/05/2012 02:55 PM, Heinz Wiesinger wrote:
> >>>>> On Monday 05 November 2012 11:13:31 Greg KH wrote:
> >>>>>> On Mon, Nov 05, 2012 at 01:11:18AM -0800, Jonathan Nieder wrote:
> >>>>>>> Hi,
> >>>>>>> 
> >>>>>>> In March, Greg KH wrote:
> >>>>>>>> 3.2-stable review patch.  If anyone has any objections, please let
> >>>>>>>> me
> >>>>>>>> know.
> >>>>>>> 
> >>>>>>> Sorry, I'm a little late.  This seems to be causing spurious wakeups
> >>>>>>> after shutdown on some systems just like v1 did. :/
> >>>>>>> 
> >>>>>>> Janne Boman reports[1], using an HP EliteBook 8530w:
> >>>>>>> | I'm unable to shutdown my system via normal means. The system
> >>>>>>> | completes the shutdown process, all hardware lights are off, but
> >>>>>>> | then
> >>>>>>> | somehow it restarts.
> >>>>>>> 
> >>>>>>> Based on a quick web search, Heinz Wiesinger, using the same model,
> >>>>>>> 
> >>>>>>> ran into the same problem and bisected it to this patch:
> >>>>>>>      https://bugzilla.kernel.org/show_bug.cgi?id=44261
> >>>>>>> 
> >>>>>>> Janne confirmed the same by testing kernels closely based on 3.2.13
> >>>>>>> and 3.2.14 --- 3.2.13 shut down fine, while on 3.2.14 "shutdown -h
> >>>>>>> now" behaved roughly speaking like "reboot".  A kernel close to
> >>>>>>> 3.6.4
> >>>>>>> was also affected.
> >>>>>> 
> >>>>>> So is 3.6.6 still and issue?  How about 3.7-rc4?  3.4.18?  Figuring
> >>>>>> out
> >>>>>> if this is still an issue in Linus's tree would be the best thing to
> >>>>>> do
> >>>>>> first.
> >>>>> 
> >>>>> I checked 3.7-rc4 and the issue is still there. Should I still test
> >>>>> the
> >>>>> other versions as well? I can do so but it might take a bit.
> >>>>> 
> >>>>> If you need anything else, I'll be happy to help wherever I can.
> >>>> 
> >>>> Hey Heinz,
> >>>> 
> >>>>      Sorry for being slow to respond to this, I was on leave when it
> >>>> 
> >>>> arrived, and it got buried under other items.
> >>>> 
> >>>> This is peculiar.  I'm guessing something quirky with your hardware is
> >>>> causing the alarm irq to trigger shortly after we supposedly disable
> >>>> it.
> >>>> Could you send me your dmesg and kernel config?
> >>>> 
> >>>> After that I'll likely have to send you some debugging instructions
> >>>> (commenting out various lines) to try to figure out what exactly is
> >>>> triggering it.
> >>>> 
> >>>> Sorry for the trouble!
> >>> 
> >>> Hey John,
> >>> 
> >>> Don't worry, I know how it is to be busy.
> >>> 
> >>> For the dmesg/kernel config is it fine if I send you the one from
> >>> 3.7-rc4
> >>> or should I update to a more recent version?
> >> 
> >> 3.7-rc4 is fine.
> >> 
> >>> I've also now seen this behaviour on another notebook with completely
> >>> different hardware (Asus VX1). I can send you dmesg output from that one
> >>> too if you want. Kernel config should be almost identical, but it's
> >>> running 3.2.29 still.
> >> 
> >> Yea, dmesg there would be good as well.
> > 
> > Hey John,
> > 
> > Sorry for the delay. I was quite busy this week myself.
> > Please find the kernel config and dmesg output attached.
> 
> Thanks for the details!
> 
> Quick test: Does the issue persist if you boot with hpet=disable?

Sorry, took a while longer. Issue persists if I boot with hpet=disable.

Grs,
Heinz

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

^ permalink raw reply	[flat|nested] 171+ messages in thread

end of thread, other threads:[~2012-12-22 13:01 UTC | newest]

Thread overview: 171+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-30 19:58 [ 000/149] 3.2.14-stable review Greg KH
2012-03-30 19:48 ` [ 001/149] USB: option: Add MediaTek MT6276M modem&app interfaces Greg KH
2012-03-30 19:48 ` [ 002/149] USB: option driver: adding support for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL modems Greg KH
2012-03-30 19:48 ` [ 003/149] USB: option: make interface blacklist work again Greg KH
2012-03-30 19:48 ` [ 004/149] USB: option: add ZTE MF820D Greg KH
2012-03-30 19:48 ` [ 005/149] staging: zcache: avoid AB-BA deadlock condition Greg KH
2012-03-30 19:48 ` [ 006/149] USB: ftdi_sio: fix problem when the manufacture is a NULL string Greg KH
2012-03-30 19:48 ` [ 007/149] USB: ftdi_sio: add support for BeagleBone rev A5+ Greg KH
2012-03-30 19:48 ` [ 008/149] USB: Microchip VID mislabeled as Hornby VID in ftdi_sio Greg KH
2012-03-30 19:48 ` [ 009/149] USB: ftdi_sio: new PID: Distortec JTAG-lock-pick Greg KH
2012-03-30 19:48 ` [ 010/149] USB: ftdi_sio: add support for FT-X series devices Greg KH
2012-03-30 19:48 ` [ 011/149] USB: ftdi_sio: new PID: LUMEL PD12 Greg KH
2012-03-30 19:48 ` [ 012/149] powerpc/usb: fix bug of kernel hang when initializing usb Greg KH
2012-03-30 19:48 ` [ 013/149] staging: r8712u: Add missing initialization and remove configuration parameter CONFIG_R8712_AP Greg KH
2012-03-30 19:48 ` [ 014/149] staging: r8712u: Fix regression introduced by commit a5ee652 Greg KH
2012-03-30 19:48 ` [ 015/149] staging: r8712u: Fix regression in signal level after commit c6dc001 Greg KH
2012-03-30 19:48 ` [ 016/149] usb: dwc3: fix bogus test in dwc3_gadget_start_isoc Greg KH
2012-03-30 19:48 ` [ 017/149] usb: dwc3: use proper function for setting endpoint name Greg KH
2012-03-30 19:48 ` [ 018/149] usb: musb: Reselect index reg in interrupt context Greg KH
2012-03-30 19:48   ` Greg KH
2012-03-30 19:48 ` [ 019/149] usb: renesas_usbhs: bugfix: add .release function to gpriv->gadget.dev Greg KH
2012-03-30 19:48 ` [ 020/149] usb: gadgetfs: return number of bytes on ep0 read request Greg KH
2012-03-30 19:48 ` [ 021/149] USB: gadget: Make g_hid device class conform to spec Greg KH
2012-03-30 19:48 ` [ 022/149] futex: Cover all PI opcodes with cmpxchg enabled check Greg KH
2012-03-30 19:48 ` [ 023/149] sysfs: Fix memory leak in sysfs_sd_setsecdata() Greg KH
2012-03-30 19:48 ` [ 024/149] tty: moxa: fix bit test in moxa_start() Greg KH
2012-03-30 19:48 ` [ 025/149] TTY: Wrong unicode value copied in con_set_unimap() Greg KH
2012-03-30 19:48 ` [ 026/149] USB: serial: fix console error reporting Greg KH
2012-03-30 19:49 ` [ 027/149] cdc-wdm: Fix more races on the read path Greg KH
2012-03-30 19:49 ` [ 028/149] cdc-wdm: Dont clear WDM_READ unless entire read buffer is emptied Greg KH
2012-03-30 19:49 ` [ 029/149] usb: fsl_udc_core: Fix scheduling while atomic dump message Greg KH
2012-03-30 19:49 ` [ 030/149] usb: Fix build error due to dma_mask is not at pdev_archdata at ARM Greg KH
2012-03-30 19:49 ` [ 031/149] USB: ums_realtek: do not use stack memory for DMA in __do_config_autodelink Greg KH
2012-03-30 19:49 ` [ 032/149] USB: qcserial: add several new serial devices Greg KH
2012-04-01 16:00   ` Ben Hutchings
2012-04-02 16:24     ` Greg KH
2012-03-30 19:49 ` [ 033/149] USB: qcserial: dont grab QMI port on Gobi 1000 devices Greg KH
2012-03-30 19:49 ` [ 034/149] usb-serial: Add support for the Sealevel SeaLINK+8 2038-ROHS device Greg KH
2012-03-30 19:49 ` [ 035/149] usb: cp210x: Update to support CP2105 and multiple interface devices Greg KH
2012-03-30 19:49 ` [ 036/149] USB: serial: mos7840: Fixed MCS7820 device attach problem Greg KH
2012-03-30 19:49 ` [ 037/149] rt2x00: Add support for D-Link DWA-127 to rt2800usb Greg KH
2012-03-30 19:49 ` [ 038/149] rtlwifi: rtl8192c_common: rtl8192de: Check for allocation failures Greg KH
2012-03-30 19:49 ` [ 039/149] rtlwifi: Handle previous allocation failures when freeing device memory Greg KH
2012-03-30 19:49 ` [ 040/149] rtlwifi: rtl8192c: Prevent sleeping from invalid context in rtl8192cu Greg KH
2012-03-30 19:49 ` [ 041/149] rtlwifi: rtl8192ce: Fix loss of receive performance Greg KH
2012-03-30 19:49 ` [ 042/149] serial: PL011: clear pending interrupts Greg KH
2012-03-30 19:49 ` [ 043/149] iwlwifi: always monitor for stuck queues Greg KH
2012-03-30 19:49 ` [ 044/149] math: Introduce div64_long Greg KH
2012-03-30 19:49 ` [ 045/149] ntp: Fix integer overflow when setting time Greg KH
2012-03-30 19:49 ` [ 046/149] uevent: send events in correct order according to seqnum (v3) Greg KH
2012-03-30 19:49 ` [ 047/149] genirq: Fix long-term regression in genirq irq_set_irq_type() handling Greg KH
2012-03-30 19:49 ` [ 048/149] genirq: Fix incorrect check for forced IRQ thread handler Greg KH
2012-03-30 19:49 ` [ 049/149] rtc: Disable the alarm in the hardware (v2) Greg KH
2012-11-05  9:11   ` [regression] " Jonathan Nieder
2012-11-05 10:13     ` Greg KH
2012-11-05 22:55       ` Heinz Wiesinger
2012-11-06  2:12         ` Greg KH
2012-11-13 10:29           ` Rabin Vincent
2012-12-03 23:14         ` John Stultz
2012-12-04 10:34           ` Heinz Wiesinger
2012-12-04 18:34             ` John Stultz
2012-12-08 11:10               ` Heinz Wiesinger
2012-12-11  1:56                 ` John Stultz
2012-12-22 12:48                   ` Heinz Wiesinger
2012-03-30 19:49 ` [ 050/149] p54spi: Release GPIO lines and IRQ on error in p54spi_probe Greg KH
2012-03-30 19:49 ` [ 051/149] rtnetlink: Fix VF IFLA policy Greg KH
2012-03-30 19:49 ` [ 052/149] IB/iser: Post initial receive buffers before sending the final login request Greg KH
2012-03-30 19:49 ` [ 053/149] ima: fix Kconfig dependencies Greg KH
2012-03-30 19:49 ` [ 054/149] x86/ioapic: Add register level checks to detect bogus io-apic entries Greg KH
2012-03-30 19:49 ` [ 055/149] mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode Greg KH
2012-03-30 19:49 ` [ 056/149] TPM: Zero buffer whole after copying to userspace Greg KH
2012-03-30 19:49 ` [ 057/149] PM / Domains: Fix handling of wakeup devices during system resume Greg KH
2012-03-30 19:49 ` [ 058/149] bootmem/sparsemem: remove limit constraint in alloc_bootmem_section Greg KH
2012-03-30 19:49 ` [ 059/149] hugetlbfs: avoid taking i_mutex from hugetlbfs_read() Greg KH
2012-03-30 19:49 ` [ 060/149] ASoC: fsl: p1022ds: tell the WM8776 codec driver that its the master Greg KH
2012-03-30 19:49 ` [ 061/149] ASoC: pxa-ssp: atomically set stream active masks Greg KH
2012-03-30 19:49 ` [ 062/149] tcm_loop: Set residual field for SCSI commands Greg KH
2012-03-30 19:49 ` [ 063/149] iscsi-target: Fix iscsit_alloc_buffs() failure cases Greg KH
2012-03-30 19:49 ` [ 064/149] iscsi-target: Fix dynamic -> explict NodeACL pointer reference Greg KH
2012-03-30 19:49 ` [ 065/149] ALSA: hda - fix printing of high HDMI sample rates Greg KH
2012-03-30 19:49 ` [ 066/149] usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH Greg KH
2012-03-30 19:49 ` [ 067/149] udlfb: remove sysfs framebuffer device with USB .disconnect() Greg KH
2012-03-30 19:49 ` [ 068/149] tcm_fc: Fix fc_exch memory leak in ft_send_resp_status Greg KH
2012-03-30 19:49 ` [ 069/149] md/bitmap: ensure to load bitmap when creating via sysfs Greg KH
2012-03-30 19:49 ` [ 070/149] md: dont set md arrays to readonly on shutdown Greg KH
2012-03-30 19:49 ` [ 071/149] md/raid1,raid10: avoid deadlock during resync/recovery Greg KH
2012-03-30 19:49 ` [ 072/149] md: fix clearing of the changed flags for the bad blocks list Greg KH
2012-03-30 19:49 ` [ 073/149] drm/i915: Only clear the GPU domains upon a successful finish Greg KH
2012-03-30 19:49 ` [ 074/149] drm/radeon: Restrict offset for legacy hardware cursor Greg KH
2012-03-30 19:49 ` [ 075/149] drm/radeon/kms: fix analog load detection on DVI-I connectors Greg KH
2012-03-30 19:49 ` [ 076/149] drm/radeon/kms: add connector quirk for Fujitsu D3003-S2 board Greg KH
2012-03-30 19:49 ` [ 077/149] target: Dont set WBUS16 or SYNC bits in INQUIRY response Greg KH
2012-03-30 19:49 ` [ 078/149] target: fix use after free in target_report_luns Greg KH
2012-03-30 19:49 ` [ 079/149] target: prevent NULL pointer dereference " Greg KH
2012-03-30 19:49 ` [ 080/149] target: Fix 16-bit target ports for SET TARGET PORT GROUPS emulation Greg KH
2012-03-30 19:49 ` [ 081/149] Bluetooth: Add AR30XX device ID on Asus laptops Greg KH
2012-03-30 19:49 ` [ 082/149] HID: add extra hotkeys in Asus AIO keyboards Greg KH
2012-03-30 19:49 ` [ 083/149] HID: add more " Greg KH
2012-03-30 19:49 ` [ 084/149] pata_legacy: correctly mask recovery field for HT6560B Greg KH
2012-03-30 19:49 ` [ 085/149] firewire: ohci: fix too-early completion of IR multichannel buffers Greg KH
2012-03-30 19:49 ` [ 086/149] video:uvesafb: Fix oops that uvesafb try to execute NX-protected page Greg KH
2012-03-30 21:30   ` Florian Tobias Schandinat
2012-03-31 18:03     ` Greg KH
2012-03-31 20:37       ` Alan Cox
2012-03-31 21:11         ` Florian Tobias Schandinat
2012-03-30 19:50 ` [ 087/149] KVM: x86: extend "struct x86_emulate_ops" with "get_cpuid" Greg KH
2012-03-30 19:50 ` [ 088/149] KVM: x86: fix missing checks in syscall emulation Greg KH
2012-03-30 19:50 ` [ 089/149] NFS: Properly handle the case where the delegation is revoked Greg KH
2012-03-30 19:50 ` [ 090/149] NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE Greg KH
2012-03-30 19:50 ` [ 091/149] xfs: fix inode lookup race Greg KH
2012-03-30 19:50 ` [ 092/149] CIFS: Respect negotiated MaxMpxCount Greg KH
2012-03-30 19:50 ` [ 093/149] cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next Greg KH
2012-03-30 19:50 ` [ 094/149] CIFS: Fix a spurious error in cifs_push_posix_locks Greg KH
2012-03-30 19:50 ` [ 095/149] UBI: fix error handling in ubi_scan() Greg KH
2012-03-30 19:50 ` [ 096/149] UBI: fix eraseblock picking criteria Greg KH
2012-03-30 19:50 ` [ 097/149] SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() Greg KH
2012-03-30 19:50 ` [ 098/149] usbnet: increase URB reference count before usb_unlink_urb Greg KH
2012-03-30 19:50 ` [ 099/149] usbnet: dont clear urb->dev in tx_complete Greg KH
2012-03-30 19:50 ` [ 100/149] e1000e: Avoid wrong check on TX hang Greg KH
2012-03-30 19:50 ` [ 101/149] x86-32: Fix endless loop when processing signals for kernel tasks Greg KH
2012-03-30 19:50 ` [ 102/149] proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate() Greg KH
2012-03-30 19:50 ` [ 103/149] iommu/amd: Fix section warning for prealloc_protection_domains Greg KH
2012-03-30 19:50 ` [ 104/149] sysctl: protect poll() in entries that may go away Greg KH
2012-03-30 19:50 ` [ 105/149] hwmon: (fam15h_power) Correct sign extension of running_avg_capture Greg KH
2012-03-30 19:50 ` [ 106/149] [media] lgdt330x: fix signedness error in i2c_read_demod_bytes() Greg KH
2012-03-30 19:50 ` [ 107/149] [media] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for HVR1900 rev D1F5 Greg KH
2012-03-30 19:50 ` [ 108/149] [media] mxl111sf: fix error on stream stop in mxl111sf_ep6_streaming_ctrl() Greg KH
2012-03-30 19:50 ` [ 109/149] NFSv4: Rate limit the state manager warning messages Greg KH
2012-03-30 19:50 ` [ 110/149] PM / Hibernate: Enable usermodehelpers in hibernate() error path Greg KH
2012-03-30 19:50 ` [ 111/149] jbd2: clear BH_Delay & BH_Unwritten in journal_unmap_buffer Greg KH
2012-03-30 19:50 ` [ 112/149] ext4: ignore EXT4_INODE_JOURNAL_DATA flag with delalloc Greg KH
2012-03-30 19:50 ` [ 113/149] ext4: fix race between unwritten extent conversion and truncate Greg KH
2012-03-30 19:50 ` [ 114/149] ext4: fix race between sync and completed io work Greg KH
2012-03-30 19:50 ` [ 115/149] ext4: check for zero length extent Greg KH
2012-03-30 19:50 ` [ 116/149] vfs: fix d_ancestor() case in d_materialize_unique Greg KH
2012-03-30 19:50 ` [ 117/149] ARM: tegra: select required CPU and L2 errata options Greg KH
2012-03-30 19:50 ` [ 118/149] udf: Fix deadlock in udf_release_file() Greg KH
2012-03-30 19:50 ` [ 119/149] gpio/omap: fix _set_gpio_irqenable implementation Greg KH
2012-03-30 19:50 ` [ 120/149] gpio/davinci: fix oops on unbanked gpio irq request Greg KH
2012-03-30 19:50 ` [ 121/149] gpio/davinci: fix enabling unbanked GPIO IRQs Greg KH
2012-03-30 19:50 ` [ 122/149] dm crypt: fix mempool deadlock Greg KH
2012-03-30 19:50 ` [ 123/149] dm crypt: add missing error handling Greg KH
2012-03-30 19:50 ` [ 124/149] dm exception store: fix init error path Greg KH
2012-03-30 19:50 ` [ 125/149] dm persistent data: fix btree rebalancing after remove Greg KH
2012-03-30 19:50 ` [ 126/149] dm thin: fix stacked bi_next usage Greg KH
2012-03-30 19:50 ` [ 127/149] backlight: fix typo in tosa_lcd.c Greg KH
2012-03-30 19:50 ` [ 128/149] xfs: Fix oops on IO error during xlog_recover_process_iunlinks() Greg KH
2012-03-30 19:50 ` [ 129/149] slub: Do not hold slub_lock when calling sysfs_slab_add() Greg KH
2012-03-30 19:50 ` [ 130/149] NFSv4: Fix two infinite loops in the mount code Greg KH
2012-03-30 19:50 ` [ 131/149] NFSv4.1: Fix layoutcommit error handling Greg KH
2012-04-01 21:23   ` Ben Hutchings
2012-04-01 23:59     ` Myklebust, Trond
2012-03-30 19:50 ` [ 132/149] module: Remove module size limit Greg KH
2012-03-30 19:50 ` [ 133/149] Bluetooth: btusb: fix bInterval for high/super speed isochronous endpoints Greg KH
2012-03-30 19:50 ` [ 134/149] drm/i915: suspend fbdev device around suspend/hibernate Greg KH
2012-03-30 19:50 ` [ 135/149] Fix pppol2tp getsockname() Greg KH
2012-03-30 19:50 ` [ 136/149] ipv6: fix incorrent ipv6 ipsec packet fragment Greg KH
2012-03-30 19:50 ` [ 137/149] net: bpf_jit: fix BPF_S_LDX_B_MSH compilation Greg KH
2012-03-30 19:50 ` [ 138/149] net: fix a potential rcu_read_lock() imbalance in rt6_fill_node() Greg KH
2012-03-30 19:50 ` [ 139/149] net: fix napi_reuse_skb() skb reserve Greg KH
2012-03-30 19:50   ` Greg KH
2012-03-30 19:50 ` [ 140/149] Remove printk from rds_sendmsg Greg KH
2012-03-30 19:50 ` [ 141/149] sky2: override for PCI legacy power management Greg KH
2012-03-30 19:50 ` [ 142/149] xfrm: Access the replay notify functions via the registered callbacks Greg KH
2012-03-30 19:50 ` [ 143/149] lockd: fix arg parsing for grace_period and timeout Greg KH
2012-03-30 19:50 ` [ 144/149] x86, tsc: Skip refined tsc calibration on systems with reliable TSC Greg KH
2012-03-30 19:50 ` [ 145/149] x86, tls: Off by one limit check Greg KH
2012-03-30 19:50 ` [ 146/149] compat: use sys_sendfile64() implementation for sendfile syscall Greg KH
2012-03-30 19:51 ` [ 147/149] rtc: Provide flag for rtc devices that dont support UIE Greg KH
2012-03-30 19:51 ` [ 148/149] nfsd: dont allow zero length strings in cache_parse() Greg KH
2012-03-30 19:51 ` [ 149/149] serial: sh-sci: fix a race of DMA submit_tx on transfer Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.