]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jan 2015 00:24:47 +0000 (16:24 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jan 2015 00:24:47 +0000 (16:24 -0800)
added patches:
alsa-hda-realtek-add-new-dell-desktop-for-alc3234-headset-mode.patch
alsa-hda-realtek-new-codec-support-for-alc256.patch
alsa-hda-realtek-new-codec-support-for-alc298.patch
alsa-hda-using-uninitialized-data.patch
alsa-usb-audio-extend-kef-x300a-fu-10-tweak-to-arcam-rpac.patch
driver-core-fix-unbalanced-device-reference-in-drivers_probe.patch
i2c-designware-fix-falling-time-bindings-doc.patch
i8k-add-support-for-dell-latitude-e6440.patch
misc-genwqe-check-for-error-from-get_user_pages_fast.patch

queue-3.18/alsa-hda-realtek-add-new-dell-desktop-for-alc3234-headset-mode.patch [new file with mode: 0644]
queue-3.18/alsa-hda-realtek-new-codec-support-for-alc256.patch [new file with mode: 0644]
queue-3.18/alsa-hda-realtek-new-codec-support-for-alc298.patch [new file with mode: 0644]
queue-3.18/alsa-hda-using-uninitialized-data.patch [new file with mode: 0644]
queue-3.18/alsa-usb-audio-extend-kef-x300a-fu-10-tweak-to-arcam-rpac.patch [new file with mode: 0644]
queue-3.18/driver-core-fix-unbalanced-device-reference-in-drivers_probe.patch [new file with mode: 0644]
queue-3.18/i2c-designware-fix-falling-time-bindings-doc.patch [new file with mode: 0644]
queue-3.18/i8k-add-support-for-dell-latitude-e6440.patch [new file with mode: 0644]
queue-3.18/misc-genwqe-check-for-error-from-get_user_pages_fast.patch [new file with mode: 0644]
queue-3.18/series

diff --git a/queue-3.18/alsa-hda-realtek-add-new-dell-desktop-for-alc3234-headset-mode.patch b/queue-3.18/alsa-hda-realtek-add-new-dell-desktop-for-alc3234-headset-mode.patch
new file mode 100644 (file)
index 0000000..2c22c7e
--- /dev/null
@@ -0,0 +1,29 @@
+From 8b72415d8aa8bb1904c61926bd0701447ce44bee Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Wed, 17 Dec 2014 17:08:59 +0800
+Subject: ALSA: hda/realtek - Add new Dell desktop for ALC3234 headset mode
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 8b72415d8aa8bb1904c61926bd0701447ce44bee upstream.
+
+New Dell desktop needs to support headset mode for ALC3234.
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -4796,6 +4796,7 @@ static const struct snd_pci_quirk alc269
+       SND_PCI_QUIRK(0x1028, 0x0638, "Dell Inspiron 5439", ALC290_FIXUP_MONO_SPEAKERS_HSJACK),
+       SND_PCI_QUIRK(0x1028, 0x064a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x064b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
++      SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
+       SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
diff --git a/queue-3.18/alsa-hda-realtek-new-codec-support-for-alc256.patch b/queue-3.18/alsa-hda-realtek-new-codec-support-for-alc256.patch
new file mode 100644 (file)
index 0000000..4e72ad4
--- /dev/null
@@ -0,0 +1,63 @@
+From 4344aec84bd84b58a01347f0db7693f73fb6473d Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Wed, 17 Dec 2014 17:39:05 +0800
+Subject: ALSA: hda/realtek - New codec support for ALC256
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 4344aec84bd84b58a01347f0db7693f73fb6473d upstream.
+
+Add new support for ALC256 codec.
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -319,6 +319,7 @@ static void alc_fill_eapd_coef(struct hd
+               break;
+       case 0x10ec0233:
+       case 0x10ec0255:
++      case 0x10ec0256:
+       case 0x10ec0282:
+       case 0x10ec0283:
+       case 0x10ec0286:
+@@ -2660,6 +2661,7 @@ enum {
+       ALC269_TYPE_ALC286,
+       ALC269_TYPE_ALC298,
+       ALC269_TYPE_ALC255,
++      ALC269_TYPE_ALC256,
+ };
+ /*
+@@ -2688,6 +2690,7 @@ static int alc269_parse_auto_config(stru
+       case ALC269_TYPE_ALC286:
+       case ALC269_TYPE_ALC298:
+       case ALC269_TYPE_ALC255:
++      case ALC269_TYPE_ALC256:
+               ssids = alc269_ssids;
+               break;
+       default:
+@@ -5386,6 +5389,9 @@ static int patch_alc269(struct hda_codec
+       case 0x10ec0255:
+               spec->codec_variant = ALC269_TYPE_ALC255;
+               break;
++      case 0x10ec0256:
++              spec->codec_variant = ALC269_TYPE_ALC256;
++              break;
+       }
+       if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) {
+@@ -6321,6 +6327,7 @@ static const struct hda_codec_preset snd
+       { .id = 0x10ec0233, .name = "ALC233", .patch = patch_alc269 },
+       { .id = 0x10ec0235, .name = "ALC233", .patch = patch_alc269 },
+       { .id = 0x10ec0255, .name = "ALC255", .patch = patch_alc269 },
++      { .id = 0x10ec0256, .name = "ALC256", .patch = patch_alc269 },
+       { .id = 0x10ec0260, .name = "ALC260", .patch = patch_alc260 },
+       { .id = 0x10ec0262, .name = "ALC262", .patch = patch_alc262 },
+       { .id = 0x10ec0267, .name = "ALC267", .patch = patch_alc268 },
diff --git a/queue-3.18/alsa-hda-realtek-new-codec-support-for-alc298.patch b/queue-3.18/alsa-hda-realtek-new-codec-support-for-alc298.patch
new file mode 100644 (file)
index 0000000..7078bc0
--- /dev/null
@@ -0,0 +1,63 @@
+From 506b62c33a7444b91a93bf2da772f4c7e6656410 Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Thu, 18 Dec 2014 17:07:44 +0800
+Subject: ALSA: hda/realtek - New codec support for ALC298
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 506b62c33a7444b91a93bf2da772f4c7e6656410 upstream.
+
+Add new support for ALC298 codec.
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_realtek.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -323,6 +323,7 @@ static void alc_fill_eapd_coef(struct hd
+       case 0x10ec0283:
+       case 0x10ec0286:
+       case 0x10ec0288:
++      case 0x10ec0298:
+               alc_update_coef_idx(codec, 0x10, 1<<9, 0);
+               break;
+       case 0x10ec0285:
+@@ -2657,6 +2658,7 @@ enum {
+       ALC269_TYPE_ALC284,
+       ALC269_TYPE_ALC285,
+       ALC269_TYPE_ALC286,
++      ALC269_TYPE_ALC298,
+       ALC269_TYPE_ALC255,
+ };
+@@ -2684,6 +2686,7 @@ static int alc269_parse_auto_config(stru
+       case ALC269_TYPE_ALC282:
+       case ALC269_TYPE_ALC283:
+       case ALC269_TYPE_ALC286:
++      case ALC269_TYPE_ALC298:
+       case ALC269_TYPE_ALC255:
+               ssids = alc269_ssids;
+               break;
+@@ -5377,6 +5380,9 @@ static int patch_alc269(struct hda_codec
+               spec->codec_variant = ALC269_TYPE_ALC286;
+               spec->shutup = alc286_shutup;
+               break;
++      case 0x10ec0298:
++              spec->codec_variant = ALC269_TYPE_ALC298;
++              break;
+       case 0x10ec0255:
+               spec->codec_variant = ALC269_TYPE_ALC255;
+               break;
+@@ -6334,6 +6340,7 @@ static const struct hda_codec_preset snd
+       { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 },
+       { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 },
+       { .id = 0x10ec0293, .name = "ALC293", .patch = patch_alc269 },
++      { .id = 0x10ec0298, .name = "ALC298", .patch = patch_alc269 },
+       { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
+         .patch = patch_alc861 },
+       { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd },
diff --git a/queue-3.18/alsa-hda-using-uninitialized-data.patch b/queue-3.18/alsa-hda-using-uninitialized-data.patch
new file mode 100644 (file)
index 0000000..8595608
--- /dev/null
@@ -0,0 +1,37 @@
+From 69eba10e606a80665f8573221fec589430d9d1cb Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Thu, 27 Nov 2014 01:34:43 +0300
+Subject: ALSA: hda - using uninitialized data
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 69eba10e606a80665f8573221fec589430d9d1cb upstream.
+
+In olden times the snd_hda_param_read() function always set "*start_id"
+but in 2007 we introduced a new return and it causes uninitialized data
+bugs in a couple of the callers: print_codec_info() and
+hdmi_parse_codec().
+
+Fixes: e8a7f136f5ed ('[ALSA] hda-intel - Improve HD-audio codec probing robustness')
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/hda_codec.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/hda/hda_codec.c
++++ b/sound/pci/hda/hda_codec.c
+@@ -338,8 +338,10 @@ int snd_hda_get_sub_nodes(struct hda_cod
+       unsigned int parm;
+       parm = snd_hda_param_read(codec, nid, AC_PAR_NODE_COUNT);
+-      if (parm == -1)
++      if (parm == -1) {
++              *start_id = 0;
+               return 0;
++      }
+       *start_id = (parm >> 16) & 0x7fff;
+       return (int)(parm & 0x7fff);
+ }
diff --git a/queue-3.18/alsa-usb-audio-extend-kef-x300a-fu-10-tweak-to-arcam-rpac.patch b/queue-3.18/alsa-usb-audio-extend-kef-x300a-fu-10-tweak-to-arcam-rpac.patch
new file mode 100644 (file)
index 0000000..00d51c7
--- /dev/null
@@ -0,0 +1,60 @@
+From d70a1b9893f820fdbcdffac408c909c50f2e6b43 Mon Sep 17 00:00:00 2001
+From: Jiri Jaburek <jjaburek@redhat.com>
+Date: Thu, 18 Dec 2014 02:03:19 +0100
+Subject: ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
+
+From: Jiri Jaburek <jjaburek@redhat.com>
+
+commit d70a1b9893f820fdbcdffac408c909c50f2e6b43 upstream.
+
+The Arcam rPAC seems to have the same problem - whenever anything
+(alsamixer, udevd, 3.9+ kernel from 60af3d037eb8c, ..) attempts to
+access mixer / control interface of the card, the firmware "locks up"
+the entire device, resulting in
+  SNDRV_PCM_IOCTL_HW_PARAMS failed (-5): Input/output error
+from alsa-lib.
+
+Other operating systems can somehow read the mixer (there seems to be
+playback volume/mute), but any manipulation is ignored by the device
+(which has hardware volume controls).
+
+Signed-off-by: Jiri Jaburek <jjaburek@redhat.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/usb/mixer_maps.c |   15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+--- a/sound/usb/mixer_maps.c
++++ b/sound/usb/mixer_maps.c
+@@ -328,8 +328,11 @@ static struct usbmix_name_map gamecom780
+       {}
+ };
+-static const struct usbmix_name_map kef_x300a_map[] = {
+-      { 10, NULL }, /* firmware locks up (?) when we try to access this FU */
++/* some (all?) SCMS USB3318 devices are affected by a firmware lock up
++ * when anything attempts to access FU 10 (control)
++ */
++static const struct usbmix_name_map scms_usb3318_map[] = {
++      { 10, NULL },
+       { 0 }
+ };
+@@ -425,8 +428,14 @@ static struct usbmix_ctl_map usbmix_ctl_
+               .map = ebox44_map,
+       },
+       {
++              /* KEF X300A */
+               .id = USB_ID(0x27ac, 0x1000),
+-              .map = kef_x300a_map,
++              .map = scms_usb3318_map,
++      },
++      {
++              /* Arcam rPAC */
++              .id = USB_ID(0x25c4, 0x0003),
++              .map = scms_usb3318_map,
+       },
+       { 0 } /* terminator */
+ };
diff --git a/queue-3.18/driver-core-fix-unbalanced-device-reference-in-drivers_probe.patch b/queue-3.18/driver-core-fix-unbalanced-device-reference-in-drivers_probe.patch
new file mode 100644 (file)
index 0000000..6a41583
--- /dev/null
@@ -0,0 +1,80 @@
+From bb34cb6bbd287b57e955bc5cfd42fcde6aaca279 Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Fri, 31 Oct 2014 11:13:07 -0600
+Subject: driver core: Fix unbalanced device reference in drivers_probe
+
+From: Alex Williamson <alex.williamson@redhat.com>
+
+commit bb34cb6bbd287b57e955bc5cfd42fcde6aaca279 upstream.
+
+bus_find_device_by_name() acquires a device reference which is never
+released.  This results in an object leak, which on older kernels
+results in failure to release all resources of PCI devices.  libvirt
+uses drivers_probe to re-attach devices to the host after assignment
+and is therefore a common trigger for this leak.
+
+Example:
+
+# cd /sys/bus/pci/
+# dmesg -C
+# echo 1 > devices/0000\:01\:00.0/sriov_numvfs
+# echo 0 > devices/0000\:01\:00.0/sriov_numvfs
+# dmesg | grep 01:10
+ pci 0000:01:10.0: [8086:10ca] type 00 class 0x020000
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): kobject_add_internal: parent: '0000:00:01.0', set: 'devices'
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): kobject_cleanup, parent           (null)
+ kobject: '0000:01:10.0' (ffff8801d79cd0a8): calling ktype release
+ kobject: '0000:01:10.0': free name
+
+[kobject freed as expected]
+
+# dmesg -C
+# echo 1 > devices/0000\:01\:00.0/sriov_numvfs
+# echo 0000:01:10.0 > drivers_probe
+# echo 0 > devices/0000\:01\:00.0/sriov_numvfs
+# dmesg | grep 01:10
+ pci 0000:01:10.0: [8086:10ca] type 00 class 0x020000
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): kobject_add_internal: parent: '0000:00:01.0', set: 'devices'
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): kobject_uevent_env
+ kobject: '0000:01:10.0' (ffff8801d79ce0a8): fill_kobj_path: path = '/devices/pci0000:00/0000:00:01.0/0000:01:10.0'
+
+[no free]
+
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/base/bus.c |    8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/base/bus.c
++++ b/drivers/base/bus.c
+@@ -254,13 +254,15 @@ static ssize_t store_drivers_probe(struc
+                                  const char *buf, size_t count)
+ {
+       struct device *dev;
++      int err = -EINVAL;
+       dev = bus_find_device_by_name(bus, NULL, buf);
+       if (!dev)
+               return -ENODEV;
+-      if (bus_rescan_devices_helper(dev, NULL) != 0)
+-              return -EINVAL;
+-      return count;
++      if (bus_rescan_devices_helper(dev, NULL) == 0)
++              err = count;
++      put_device(dev);
++      return err;
+ }
+ static struct device *next_device(struct klist_iter *i)
diff --git a/queue-3.18/i2c-designware-fix-falling-time-bindings-doc.patch b/queue-3.18/i2c-designware-fix-falling-time-bindings-doc.patch
new file mode 100644 (file)
index 0000000..50832a1
--- /dev/null
@@ -0,0 +1,46 @@
+From 8e2596e81a9dd8f9efcf78476f3990f211e25edb Mon Sep 17 00:00:00 2001
+From: Doug Anderson <dianders@chromium.org>
+Date: Fri, 5 Dec 2014 10:49:39 -0800
+Subject: i2c: designware: Fix falling time bindings doc
+
+From: Doug Anderson <dianders@chromium.org>
+
+commit 8e2596e81a9dd8f9efcf78476f3990f211e25edb upstream.
+
+In (6468276 i2c: designware: make SCL and SDA falling time
+configurable) new device tree properties were added for setting the
+falling time of SDA and SCL.  The device tree bindings doc had a typo
+in it: it forgot the "-ns" suffix for both properies in the prose of
+the bindings.
+
+I assume this is a typo because:
+* The source code includes the "-ns"
+* The example in the bindings includes the "-ns".
+
+Fix the typo.
+
+Signed-off-by: Doug Anderson <dianders@chromium.org>
+Fixes: 6468276b2206 ("i2c: designware: make SCL and SDA falling time configurable")
+Acked-by: Romain Baeriswyl <romain.baeriswyl@alitech.com>
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/devicetree/bindings/i2c/i2c-designware.txt |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/Documentation/devicetree/bindings/i2c/i2c-designware.txt
++++ b/Documentation/devicetree/bindings/i2c/i2c-designware.txt
+@@ -14,10 +14,10 @@ Optional properties :
+  - i2c-sda-hold-time-ns : should contain the SDA hold time in nanoseconds.
+    This option is only supported in hardware blocks version 1.11a or newer.
+- - i2c-scl-falling-time : should contain the SCL falling time in nanoseconds.
++ - i2c-scl-falling-time-ns : should contain the SCL falling time in nanoseconds.
+    This value which is by default 300ns is used to compute the tLOW period.
+- - i2c-sda-falling-time : should contain the SDA falling time in nanoseconds.
++ - i2c-sda-falling-time-ns : should contain the SDA falling time in nanoseconds.
+    This value which is by default 300ns is used to compute the tHIGH period.
+ Example :
diff --git a/queue-3.18/i8k-add-support-for-dell-latitude-e6440.patch b/queue-3.18/i8k-add-support-for-dell-latitude-e6440.patch
new file mode 100644 (file)
index 0000000..206381c
--- /dev/null
@@ -0,0 +1,39 @@
+From 0f352239de1628d38ff35adb91842a732f4453cd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
+Date: Fri, 10 Oct 2014 11:12:47 +0200
+Subject: i8k: Add support for Dell Latitude E6440
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
+
+commit 0f352239de1628d38ff35adb91842a732f4453cd upstream.
+
+Dell Latitude E6440 needs same settings as E6540.
+
+Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
+Acked-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/char/i8k.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/char/i8k.c
++++ b/drivers/char/i8k.c
+@@ -711,6 +711,14 @@ static struct dmi_system_id i8k_dmi_tabl
+               .driver_data = (void *)&i8k_config_data[DELL_LATITUDE_D520],
+       },
+       {
++              .ident = "Dell Latitude E6440",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6440"),
++              },
++              .driver_data = (void *)&i8k_config_data[DELL_LATITUDE_E6540],
++      },
++      {
+               .ident = "Dell Latitude E6540",
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
diff --git a/queue-3.18/misc-genwqe-check-for-error-from-get_user_pages_fast.patch b/queue-3.18/misc-genwqe-check-for-error-from-get_user_pages_fast.patch
new file mode 100644 (file)
index 0000000..97a5799
--- /dev/null
@@ -0,0 +1,36 @@
+From cf35d6e0475982667b0d2d318fb27be4b8849827 Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Thu, 6 Nov 2014 16:23:39 +0000
+Subject: misc: genwqe: check for error from get_user_pages_fast()
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+commit cf35d6e0475982667b0d2d318fb27be4b8849827 upstream.
+
+`genwqe_user_vmap()` calls `get_user_pages_fast()` and if the return
+value is less than the number of pages requested, it frees the pages and
+returns an error (`-EFAULT`).  However, it fails to consider a negative
+error return value from `get_user_pages_fast()`.  In that case, the test
+`if (rc < m->nr_pages)` will be false (due to promotion of `rc` to a
+large `unsigned int`) and the code will continue on to call
+`genwqe_map_pages()` with an invalid list of page pointers.  Fix it by
+bailing out if `get_user_pages_fast()` returns a negative error value.
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/misc/genwqe/card_utils.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/misc/genwqe/card_utils.c
++++ b/drivers/misc/genwqe/card_utils.c
+@@ -590,6 +590,8 @@ int genwqe_user_vmap(struct genwqe_dev *
+                                m->nr_pages,
+                                1,             /* write by caller */
+                                m->page_list); /* ptrs to pages */
++      if (rc < 0)
++              goto fail_get_user_pages;
+       /* assumption: get_user_pages can be killed by signals. */
+       if (rc < m->nr_pages) {
index 7a965ee9bcc9f466a34e802ee2fa87fa858dbeff..c5bda1782ab61f54812b38dbf447f8190c391e60 100644 (file)
@@ -67,3 +67,12 @@ kvm-s390-fix-ipte-locking.patch
 kvm-x86-drop-severity-of-generation-wraparound-message.patch
 x86_64-vdso-fix-the-vdso-address-randomization-algorithm.patch
 x86-vdso-use-asm-volatile-in-__getcpu.patch
+driver-core-fix-unbalanced-device-reference-in-drivers_probe.patch
+misc-genwqe-check-for-error-from-get_user_pages_fast.patch
+i8k-add-support-for-dell-latitude-e6440.patch
+i2c-designware-fix-falling-time-bindings-doc.patch
+alsa-usb-audio-extend-kef-x300a-fu-10-tweak-to-arcam-rpac.patch
+alsa-hda-realtek-new-codec-support-for-alc298.patch
+alsa-hda-realtek-new-codec-support-for-alc256.patch
+alsa-hda-realtek-add-new-dell-desktop-for-alc3234-headset-mode.patch
+alsa-hda-using-uninitialized-data.patch