Linux v4.5-6486-g6b5f04b6cf8e
- cgroup, libata, workqueue, block, akpm, usb merges
This commit is contained in:
parent
3f7b06675b
commit
8e2d7107d3
@ -1,173 +0,0 @@
|
||||
From 8b368e8e961944105945fbe36f3f264252bfd19a Mon Sep 17 00:00:00 2001
|
||||
From: Dan Williams <dan.j.williams@intel.com>
|
||||
Date: Thu, 25 Feb 2016 01:02:30 +0000
|
||||
Subject: [PATCH] mm: CONFIG_NR_ZONES_EXTENDED
|
||||
|
||||
ZONE_DEVICE (merged in 4.3) and ZONE_CMA (proposed) are examples of new mm
|
||||
zones that are bumping up against the current maximum limit of 4 zones,
|
||||
i.e. 2 bits in page->flags. When adding a zone this equation still needs
|
||||
to be satisified:
|
||||
|
||||
SECTIONS_WIDTH + ZONES_WIDTH + NODES_SHIFT + LAST_CPUPID_SHIFT
|
||||
<= BITS_PER_LONG - NR_PAGEFLAGS
|
||||
|
||||
ZONE_DEVICE currently tries to satisfy this equation by requiring that
|
||||
ZONE_DMA be disabled, but this is untenable given generic kernels want to
|
||||
support ZONE_DEVICE and ZONE_DMA simultaneously. ZONE_CMA would like to
|
||||
increase the amount of memory covered per section, but that limits the
|
||||
minimum granularity at which consecutive memory ranges can be added via
|
||||
devm_memremap_pages().
|
||||
|
||||
The trade-off of what is acceptable to sacrifice depends heavily on the
|
||||
platform. For example, ZONE_CMA is targeted for 32-bit platforms where
|
||||
page->flags is constrained, but those platforms likely do not care about
|
||||
the minimum granularity of memory hotplug. A big iron machine with 1024
|
||||
numa nodes can likely sacrifice ZONE_DMA where a general purpose
|
||||
distribution kernel can not.
|
||||
|
||||
CONFIG_NR_ZONES_EXTENDED is a configuration symbol that gets selected when
|
||||
the number of configured zones exceeds 4. It documents the configuration
|
||||
symbols and definitions that get modified when ZONES_WIDTH is greater than
|
||||
2.
|
||||
|
||||
For now, it steals a bit from NODES_SHIFT. Later on it can be used to
|
||||
document the definitions that get modified when a 32-bit configuration
|
||||
wants more zone bits.
|
||||
|
||||
Note that GFP_ZONE_TABLE poses an interesting constraint since
|
||||
include/linux/gfp.h gets included by the 32-bit portion of a 64-bit build.
|
||||
We need to be careful to only build the table for zones that have a
|
||||
corresponding gfp_t flag. GFP_ZONES_SHIFT is introduced for this purpose.
|
||||
This patch does not attempt to solve the problem of adding a new zone
|
||||
that also has a corresponding GFP_ flag.
|
||||
|
||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=110931
|
||||
Fixes: 033fbae988fc ("mm: ZONE_DEVICE for "device memory"")
|
||||
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
|
||||
Reported-by: Mark <markk@clara.co.uk>
|
||||
Cc: Mel Gorman <mgorman@suse.de>
|
||||
Cc: Rik van Riel <riel@redhat.com>
|
||||
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
|
||||
Cc: Dave Hansen <dave.hansen@linux.intel.com>
|
||||
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
---
|
||||
arch/x86/Kconfig | 6 ++++--
|
||||
include/linux/gfp.h | 33 ++++++++++++++++++++-------------
|
||||
include/linux/page-flags-layout.h | 2 ++
|
||||
mm/Kconfig | 7 +++++--
|
||||
4 files changed, 31 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index 3fef519..b94704a 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1409,8 +1409,10 @@ config NUMA_EMU
|
||||
|
||||
config NODES_SHIFT
|
||||
int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
|
||||
- range 1 10
|
||||
- default "10" if MAXSMP
|
||||
+ range 1 10 if !NR_ZONES_EXTENDED
|
||||
+ range 1 9 if NR_ZONES_EXTENDED
|
||||
+ default "10" if MAXSMP && !NR_ZONES_EXTENDED
|
||||
+ default "9" if MAXSMP && NR_ZONES_EXTENDED
|
||||
default "6" if X86_64
|
||||
default "3"
|
||||
depends on NEED_MULTIPLE_NODES
|
||||
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
|
||||
index af1f2b2..d201d8a 100644
|
||||
--- a/include/linux/gfp.h
|
||||
+++ b/include/linux/gfp.h
|
||||
@@ -329,22 +329,29 @@ static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags)
|
||||
* 0xe => BAD (MOVABLE+DMA32+HIGHMEM)
|
||||
* 0xf => BAD (MOVABLE+DMA32+HIGHMEM+DMA)
|
||||
*
|
||||
- * ZONES_SHIFT must be <= 2 on 32 bit platforms.
|
||||
+ * GFP_ZONES_SHIFT must be <= 2 on 32 bit platforms.
|
||||
*/
|
||||
|
||||
-#if 16 * ZONES_SHIFT > BITS_PER_LONG
|
||||
-#error ZONES_SHIFT too large to create GFP_ZONE_TABLE integer
|
||||
+#if defined(CONFIG_ZONE_DEVICE) && (MAX_NR_ZONES-1) <= 4
|
||||
+/* ZONE_DEVICE is not a valid GFP zone specifier */
|
||||
+#define GFP_ZONES_SHIFT 2
|
||||
+#else
|
||||
+#define GFP_ZONES_SHIFT ZONES_SHIFT
|
||||
+#endif
|
||||
+
|
||||
+#if 16 * GFP_ZONES_SHIFT > BITS_PER_LONG
|
||||
+#error GFP_ZONES_SHIFT too large to create GFP_ZONE_TABLE integer
|
||||
#endif
|
||||
|
||||
#define GFP_ZONE_TABLE ( \
|
||||
- (ZONE_NORMAL << 0 * ZONES_SHIFT) \
|
||||
- | (OPT_ZONE_DMA << ___GFP_DMA * ZONES_SHIFT) \
|
||||
- | (OPT_ZONE_HIGHMEM << ___GFP_HIGHMEM * ZONES_SHIFT) \
|
||||
- | (OPT_ZONE_DMA32 << ___GFP_DMA32 * ZONES_SHIFT) \
|
||||
- | (ZONE_NORMAL << ___GFP_MOVABLE * ZONES_SHIFT) \
|
||||
- | (OPT_ZONE_DMA << (___GFP_MOVABLE | ___GFP_DMA) * ZONES_SHIFT) \
|
||||
- | (ZONE_MOVABLE << (___GFP_MOVABLE | ___GFP_HIGHMEM) * ZONES_SHIFT) \
|
||||
- | (OPT_ZONE_DMA32 << (___GFP_MOVABLE | ___GFP_DMA32) * ZONES_SHIFT) \
|
||||
+ (ZONE_NORMAL << 0 * GFP_ZONES_SHIFT) \
|
||||
+ | (OPT_ZONE_DMA << ___GFP_DMA * GFP_ZONES_SHIFT) \
|
||||
+ | (OPT_ZONE_HIGHMEM << ___GFP_HIGHMEM * GFP_ZONES_SHIFT) \
|
||||
+ | (OPT_ZONE_DMA32 << ___GFP_DMA32 * GFP_ZONES_SHIFT) \
|
||||
+ | (ZONE_NORMAL << ___GFP_MOVABLE * GFP_ZONES_SHIFT) \
|
||||
+ | (OPT_ZONE_DMA << (___GFP_MOVABLE | ___GFP_DMA) * GFP_ZONES_SHIFT) \
|
||||
+ | (ZONE_MOVABLE << (___GFP_MOVABLE | ___GFP_HIGHMEM) * GFP_ZONES_SHIFT) \
|
||||
+ | (OPT_ZONE_DMA32 << (___GFP_MOVABLE | ___GFP_DMA32) * GFP_ZONES_SHIFT) \
|
||||
)
|
||||
|
||||
/*
|
||||
@@ -369,8 +376,8 @@ static inline enum zone_type gfp_zone(gfp_t flags)
|
||||
enum zone_type z;
|
||||
int bit = (__force int) (flags & GFP_ZONEMASK);
|
||||
|
||||
- z = (GFP_ZONE_TABLE >> (bit * ZONES_SHIFT)) &
|
||||
- ((1 << ZONES_SHIFT) - 1);
|
||||
+ z = (GFP_ZONE_TABLE >> (bit * GFP_ZONES_SHIFT)) &
|
||||
+ ((1 << GFP_ZONES_SHIFT) - 1);
|
||||
VM_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
|
||||
return z;
|
||||
}
|
||||
diff --git a/include/linux/page-flags-layout.h b/include/linux/page-flags-layout.h
|
||||
index da52366..77b078c 100644
|
||||
--- a/include/linux/page-flags-layout.h
|
||||
+++ b/include/linux/page-flags-layout.h
|
||||
@@ -17,6 +17,8 @@
|
||||
#define ZONES_SHIFT 1
|
||||
#elif MAX_NR_ZONES <= 4
|
||||
#define ZONES_SHIFT 2
|
||||
+#elif MAX_NR_ZONES <= 8
|
||||
+#define ZONES_SHIFT 3
|
||||
#else
|
||||
#error ZONES_SHIFT -- too many zones configured adjust calculation
|
||||
#endif
|
||||
diff --git a/mm/Kconfig b/mm/Kconfig
|
||||
index 031a329..7826216 100644
|
||||
--- a/mm/Kconfig
|
||||
+++ b/mm/Kconfig
|
||||
@@ -652,8 +652,6 @@ config IDLE_PAGE_TRACKING
|
||||
|
||||
config ZONE_DEVICE
|
||||
bool "Device memory (pmem, etc...) hotplug support"
|
||||
- default !ZONE_DMA
|
||||
- depends on !ZONE_DMA
|
||||
depends on MEMORY_HOTPLUG
|
||||
depends on MEMORY_HOTREMOVE
|
||||
depends on X86_64 #arch_add_memory() comprehends device memory
|
||||
@@ -667,5 +665,10 @@ config ZONE_DEVICE
|
||||
|
||||
If FS_DAX is enabled, then say Y.
|
||||
|
||||
+config NR_ZONES_EXTENDED
|
||||
+ bool
|
||||
+ default n if !64BIT
|
||||
+ default y if ZONE_DEVICE && ZONE_DMA && ZONE_DMA32
|
||||
+
|
||||
config FRAME_VECTOR
|
||||
bool
|
||||
--
|
||||
2.5.0
|
||||
|
31
ALSA-hda-Fix-forgotten-HDMI-monitor_present-update.patch
Normal file
31
ALSA-hda-Fix-forgotten-HDMI-monitor_present-update.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From e36b3efcd07ab5c323e82319577d972ebddcbed1 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 18 Mar 2016 18:01:53 +0100
|
||||
Subject: [PATCH 2/3] ALSA: hda - Fix forgotten HDMI monitor_present update
|
||||
|
||||
We forgot to copy monitor_present value when updating the ELD
|
||||
information. This won't change the ELD retrieval and the jack
|
||||
notification behavior, but appears only in the proc output. In that
|
||||
sense, it's no fatal error, but a bug is a bug is a bug.
|
||||
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index 8cdb804aa9cf..e7d9453ecd10 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -1358,6 +1358,7 @@ static void update_eld(struct hda_codec *codec,
|
||||
eld->eld_size) != 0)
|
||||
eld_changed = true;
|
||||
|
||||
+ pin_eld->monitor_present = eld->monitor_present;
|
||||
pin_eld->eld_valid = eld->eld_valid;
|
||||
pin_eld->eld_size = eld->eld_size;
|
||||
if (eld->eld_valid)
|
||||
--
|
||||
2.5.0
|
||||
|
44
ALSA-hda-Fix-spurious-kernel-WARNING-on-Baytrail-HDM.patch
Normal file
44
ALSA-hda-Fix-spurious-kernel-WARNING-on-Baytrail-HDM.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 1f2109de8368f08a353d7862f462b943a5ac4b4a Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 18 Mar 2016 19:45:13 +0100
|
||||
Subject: [PATCH 3/3] ALSA: hda - Fix spurious kernel WARNING on Baytrail HDMI
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
snd_hdac_sync_audio_rate() call is mandatory only for HSW and later
|
||||
models, but we call the function unconditionally blindly assuming that
|
||||
the function doesn't do anything harmful. But since recently, the
|
||||
function checks the validity of the passed pin NID, and eventually
|
||||
spews the warning if an unexpected pin is passed. This is seen on old
|
||||
chips like Baytrail.
|
||||
|
||||
The fix is to limit the call of this function again only for the chips
|
||||
with the proper binding. This can be identified by the same flag as
|
||||
the eld notifier.
|
||||
|
||||
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Cc: <stable@vger.kernel.org> # v4.5
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index e7d9453ecd10..56d3575ee6cc 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -1741,7 +1741,8 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
|
||||
|
||||
/* Call sync_audio_rate to set the N/CTS/M manually if necessary */
|
||||
/* Todo: add DP1.2 MST audio support later */
|
||||
- snd_hdac_sync_audio_rate(&codec->bus->core, pin_nid, runtime->rate);
|
||||
+ if (codec_has_acomp(codec))
|
||||
+ snd_hdac_sync_audio_rate(&codec->bus->core, pin_nid, runtime->rate);
|
||||
|
||||
non_pcm = check_non_pcm_per_cvt(codec, cvt_nid);
|
||||
mutex_lock(&per_pin->lock);
|
||||
--
|
||||
2.5.0
|
||||
|
80
ALSA-hda-Really-restrict-i915-notifier-to-HSW.patch
Normal file
80
ALSA-hda-Really-restrict-i915-notifier-to-HSW.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From 3fb329b2c3b6c2f009aa1255d2436ec49e49877f Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 18 Mar 2016 15:10:08 +0100
|
||||
Subject: [PATCH 1/3] ALSA: hda - Really restrict i915 notifier to HSW+
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The commit [b62232d429fa: ALSA: hda - Limit i915 HDMI binding only for
|
||||
HSW and later] tried to limit the usage of i915 audio notifier to the
|
||||
recent Intel models and switch to the old method on pre-Haswell
|
||||
models. However, it assumed that the i915 component binding hasn't
|
||||
been done on such models, and the assumption was wrong: namely,
|
||||
Baytrail had already the i915 component binding due to powerwell
|
||||
control. Thus, the workaround wasn't applied to Baytrail.
|
||||
|
||||
For fixing this properly, this patch introduces a new flag indicating
|
||||
the usage of audio notifier and codec_has_acomp() refers to this flag
|
||||
instead of checking the existence of audio component.
|
||||
|
||||
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Cc: <stable@vger.kernel.org> # v4.5
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/pci/hda/patch_hdmi.c | 24 +++++++++++++++++-------
|
||||
1 file changed, 17 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
|
||||
index 49ee4e55dd16..8cdb804aa9cf 100644
|
||||
--- a/sound/pci/hda/patch_hdmi.c
|
||||
+++ b/sound/pci/hda/patch_hdmi.c
|
||||
@@ -152,6 +152,7 @@ struct hdmi_spec {
|
||||
struct hda_pcm_stream pcm_playback;
|
||||
|
||||
/* i915/powerwell (Haswell+/Valleyview+) specific */
|
||||
+ bool use_acomp_notifier; /* use i915 eld_notify callback for hotplug */
|
||||
struct i915_audio_component_audio_ops i915_audio_ops;
|
||||
bool i915_bound; /* was i915 bound in this driver? */
|
||||
|
||||
@@ -159,8 +160,11 @@ struct hdmi_spec {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_SND_HDA_I915
|
||||
-#define codec_has_acomp(codec) \
|
||||
- ((codec)->bus->core.audio_component != NULL)
|
||||
+static inline bool codec_has_acomp(struct hda_codec *codec)
|
||||
+{
|
||||
+ struct hdmi_spec *spec = codec->spec;
|
||||
+ return spec->use_acomp_notifier;
|
||||
+}
|
||||
#else
|
||||
#define codec_has_acomp(codec) false
|
||||
#endif
|
||||
@@ -2248,12 +2252,18 @@ static int patch_generic_hdmi(struct hda_codec *codec)
|
||||
codec->spec = spec;
|
||||
hdmi_array_init(spec, 4);
|
||||
|
||||
+#ifdef CONFIG_SND_HDA_I915
|
||||
/* Try to bind with i915 for Intel HSW+ codecs (if not done yet) */
|
||||
- if (!codec_has_acomp(codec) &&
|
||||
- (codec->core.vendor_id >> 16) == 0x8086 &&
|
||||
- is_haswell_plus(codec))
|
||||
- if (!snd_hdac_i915_init(&codec->bus->core))
|
||||
- spec->i915_bound = true;
|
||||
+ if ((codec->core.vendor_id >> 16) == 0x8086 &&
|
||||
+ is_haswell_plus(codec)) {
|
||||
+ if (!codec->bus->core.audio_component)
|
||||
+ if (!snd_hdac_i915_init(&codec->bus->core))
|
||||
+ spec->i915_bound = true;
|
||||
+ /* use i915 audio component notifier for hotplug */
|
||||
+ if (codec->bus->core.audio_component)
|
||||
+ spec->use_acomp_notifier = true;
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
if (is_haswell_plus(codec)) {
|
||||
intel_haswell_enable_all_pins(codec, true);
|
||||
--
|
||||
2.5.0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 3620ebad64a327113bed34edefd45c3605086fc6 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Mon, 14 Mar 2016 10:38:31 -0400
|
||||
Subject: [PATCH] USB: iowarrior: fix oops with malicious USB descriptors
|
||||
|
||||
The iowarrior driver expects at least one valid endpoint. If given
|
||||
malicious descriptors that specify 0 for the number of endpoints,
|
||||
it will crash in the probe function. Ensure there is at least
|
||||
one endpoint on the interface before using it.
|
||||
|
||||
The full report of this issue can be found here:
|
||||
http://seclists.org/bugtraq/2016/Mar/87
|
||||
|
||||
Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
drivers/usb/misc/iowarrior.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
|
||||
index c6bfd13f6c92..1950e87b4219 100644
|
||||
--- a/drivers/usb/misc/iowarrior.c
|
||||
+++ b/drivers/usb/misc/iowarrior.c
|
||||
@@ -787,6 +787,12 @@ static int iowarrior_probe(struct usb_interface *interface,
|
||||
iface_desc = interface->cur_altsetting;
|
||||
dev->product_id = le16_to_cpu(udev->descriptor.idProduct);
|
||||
|
||||
+ if (iface_desc->desc.bNumEndpoints < 1) {
|
||||
+ dev_err(&interface->dev, "Invalid number of endpoints\n");
|
||||
+ retval = -EINVAL;
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
/* set up the endpoint information */
|
||||
for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {
|
||||
endpoint = &iface_desc->endpoint[i].desc;
|
||||
--
|
||||
2.5.0
|
||||
|
@ -1,33 +0,0 @@
|
||||
From e6a87f147002fa16adcbafebbc458ff90a463474 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Tue, 15 Mar 2016 10:14:04 +0100
|
||||
Subject: [PATCH] cdc-acm: more sanity checking
|
||||
|
||||
An attack has become available which pretends to be a quirky
|
||||
device circumventing normal sanity checks and crashes the kernel
|
||||
by an insufficient number of interfaces. This patch adds a check
|
||||
to the code path for quirky devices.
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
CC: stable@vger.kernel.org
|
||||
---
|
||||
drivers/usb/class/cdc-acm.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
|
||||
index 26ca4f910cb0..a7732f80a912 100644
|
||||
--- a/drivers/usb/class/cdc-acm.c
|
||||
+++ b/drivers/usb/class/cdc-acm.c
|
||||
@@ -1113,6 +1113,9 @@ static int acm_probe(struct usb_interface *intf,
|
||||
if (quirks == NO_UNION_NORMAL) {
|
||||
data_interface = usb_ifnum_to_if(usb_dev, 1);
|
||||
control_interface = usb_ifnum_to_if(usb_dev, 0);
|
||||
+ /* we would crash */
|
||||
+ if (!data_interface || !control_interface)
|
||||
+ return -ENODEV;
|
||||
goto skip_normal_probe;
|
||||
}
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
@ -4886,6 +4886,7 @@ CONFIG_LATENCYTOP=y
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
CONFIG_EARLY_PRINTK_DBGP=y
|
||||
# CONFIG_PAGE_POISONING is not set
|
||||
# CONFIG_DEBUG_PAGE_REF is not set
|
||||
CONFIG_CRASH=m
|
||||
CONFIG_CRASH_DUMP=y
|
||||
# CONFIG_GCOV_KERNEL is not set
|
||||
@ -5748,7 +5749,7 @@ CONFIG_ZBUD=y
|
||||
CONFIG_ZSMALLOC=y
|
||||
# CONFIG_ZSMALLOC_STAT is not set
|
||||
# CONFIG_PGTABLE_MAPPING is not set
|
||||
|
||||
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
|
||||
# CONFIG_IDLE_PAGE_TRACKING is not set
|
||||
|
||||
# CONFIG_MDIO_GPIO is not set
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 888ba9b2a02e8d144c3a9ae5e01a1a94280cd2bf Mon Sep 17 00:00:00 2001
|
||||
From 78bd7226c92c8309d1c6c1378f1224dcd591b49f Mon Sep 17 00:00:00 2001
|
||||
From: Fedora Kernel Team <kernel-team@fedoraproject.org>
|
||||
Date: Fri, 22 Jan 2016 13:03:36 -0600
|
||||
Subject: [PATCH] Make ZONE_DMA not depend on CONFIG_EXPERT
|
||||
@ -13,10 +13,10 @@ Signed-off-by: Justin Forbes <jforbes@fedoraproject.org>
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index a02c842..ea2eaeb 100644
|
||||
index 3c74b549ea9a..8a5b7b8cc425 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -315,7 +315,7 @@ source "kernel/Kconfig.freezer"
|
||||
@@ -318,7 +318,7 @@ source "kernel/Kconfig.freezer"
|
||||
menu "Processor type and features"
|
||||
|
||||
config ZONE_DMA
|
||||
@ -26,7 +26,7 @@ index a02c842..ea2eaeb 100644
|
||||
help
|
||||
DMA memory allocation support allows devices with less than 32-bit
|
||||
diff --git a/mm/Kconfig b/mm/Kconfig
|
||||
index 97a4e06..26bbbe0 100644
|
||||
index 05efa6a5199e..c1a01e50c293 100644
|
||||
--- a/mm/Kconfig
|
||||
+++ b/mm/Kconfig
|
||||
@@ -650,7 +650,7 @@ config IDLE_PAGE_TRACKING
|
||||
@ -35,9 +35,9 @@ index 97a4e06..26bbbe0 100644
|
||||
config ZONE_DEVICE
|
||||
- bool "Device memory (pmem, etc...) hotplug support" if EXPERT
|
||||
+ bool "Device memory (pmem, etc...) hotplug support"
|
||||
default !ZONE_DMA
|
||||
depends on !ZONE_DMA
|
||||
depends on MEMORY_HOTPLUG
|
||||
depends on MEMORY_HOTREMOVE
|
||||
depends on SPARSEMEM_VMEMMAP
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
2
gitrev
2
gitrev
@ -1 +1 @@
|
||||
f7813ad5cbfd1fab2899914281b72a1ba0805c80
|
||||
6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f
|
||||
|
22
kernel.spec
22
kernel.spec
@ -69,7 +69,7 @@ Summary: The Linux kernel
|
||||
# The rc snapshot level
|
||||
%define rcrev 0
|
||||
# The git snapshot level
|
||||
%define gitrev 11
|
||||
%define gitrev 12
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 4.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -608,9 +608,6 @@ Patch621: drm-udl-Use-unlocked-gem-unreferencing.patch
|
||||
#Required for some persistent memory options
|
||||
Patch641: disable-CONFIG_EXPERT-for-ZONE_DMA.patch
|
||||
|
||||
#rhbz 1309658
|
||||
Patch648: 0001-mm-CONFIG_NR_ZONES_EXTENDED.patch
|
||||
|
||||
#rhbz 1316136
|
||||
Patch663: USB-serial-ftdi_sio-Add-support-for-ICP-DAS-I-756xU-.patch
|
||||
|
||||
@ -631,20 +628,15 @@ Patch668: x86-tsc-Prevent-NULL-pointer-deref-in-calibrate_dela.patch
|
||||
#CVE-2016-3137 rhbz 1317010 1316996
|
||||
Patch672: cypress_m8-add-sanity-checking.patch
|
||||
|
||||
#CVE-2016-2188 rhbz 1317018 1317467
|
||||
Patch674: USB-iowarrior-fix-oops-with-malicious-USB-descriptor.patch
|
||||
|
||||
#CVE-2016-2185 rhbz 1317014 1317471
|
||||
Patch675: usb_driver_claim_interface-add-sanity-checking.patch
|
||||
|
||||
#CVE-2016-3138 rhbz 1317010 1316204
|
||||
Patch676: cdc-acm-more-sanity-checking.patch
|
||||
|
||||
#CVE-2016-3140 rhbz 1317010 1316995
|
||||
Patch677: digi_acceleport-do-sanity-checking-for-the-number-of.patch
|
||||
|
||||
Patch678: ims-pcu-sanity-check-against-missing-interfaces.patch
|
||||
|
||||
Patch680: ALSA-hda-Really-restrict-i915-notifier-to-HSW.patch
|
||||
Patch681: ALSA-hda-Fix-forgotten-HDMI-monitor_present-update.patch
|
||||
Patch682: ALSA-hda-Fix-spurious-kernel-WARNING-on-Baytrail-HDM.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
@ -2167,6 +2159,10 @@ fi
|
||||
#
|
||||
#
|
||||
%changelog
|
||||
* Sat Mar 19 2016 Josh Boyer <jwboyer@fedoraproject.org> - 4.6.0-0.rc0.git12.1
|
||||
- Linux v4.5-6486-g6b5f04b6cf8e
|
||||
- cgroup, libata, workqueue, block, akpm, usb merges
|
||||
|
||||
* Sat Mar 19 2016 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Minor ARM cleanups
|
||||
- Drop ARM_PATCH_IDIV work around
|
||||
|
1
sources
1
sources
@ -1,3 +1,4 @@
|
||||
a60d48eee08ec0536d5efb17ca819aef linux-4.5.tar.xz
|
||||
6f557fe90b800b615c85c2ca04da6154 perf-man-4.5.tar.gz
|
||||
085abf64e5402f2b588b9c64f09a6f44 patch-4.5-git11.xz
|
||||
54b8c38a01b8b328cb65758b15e1b972 patch-4.5-git12.xz
|
||||
|
@ -1,39 +0,0 @@
|
||||
From de0784bdf6314b70c69416d8c576eb83237d5b1e Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Wed, 16 Mar 2016 12:26:17 -0400
|
||||
Subject: [PATCH] usb_driver_claim_interface: add sanity checking
|
||||
|
||||
Attacks that trick drivers into passing a NULL pointer
|
||||
to usb_driver_claim_interface() using forged descriptors are
|
||||
known. This thwarts them by sanity checking.
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
CC: stable@vger.kernel.org
|
||||
---
|
||||
drivers/usb/core/driver.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
|
||||
index 6b5063e7943f..e2d242b68d4b 100644
|
||||
--- a/drivers/usb/core/driver.c
|
||||
+++ b/drivers/usb/core/driver.c
|
||||
@@ -500,11 +500,15 @@ static int usb_unbind_interface(struct device *dev)
|
||||
int usb_driver_claim_interface(struct usb_driver *driver,
|
||||
struct usb_interface *iface, void *priv)
|
||||
{
|
||||
- struct device *dev = &iface->dev;
|
||||
+ struct device *dev;
|
||||
struct usb_device *udev;
|
||||
int retval = 0;
|
||||
int lpm_disable_error;
|
||||
|
||||
+ if (!iface)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ dev = &iface->dev;
|
||||
if (dev->driver)
|
||||
return -EBUSY;
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
Loading…
Reference in New Issue
Block a user