Merge branch 'f23' of ssh://pkgs.fedoraproject.org/kernel into f23-pf - kernel 4.5.6-200
This commit is contained in:
commit
5ccb9a2341
|
@ -1,31 +0,0 @@
|
|||
From cb6fcfe5a7e9197ceb7e9eec56e9c526e4e76354 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Date: Mon, 14 Mar 2016 19:37:12 +0100
|
||||
Subject: [PATCH] Input: synaptics - handle spurious release of trackstick
|
||||
buttons, again
|
||||
|
||||
Looks like the fimware 8.2 stall has the extra buttons spurious release
|
||||
bug.
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/synaptics.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
|
||||
index 6025eb4..4ef8d7a 100644
|
||||
--- a/drivers/input/mouse/synaptics.c
|
||||
+++ b/drivers/input/mouse/synaptics.c
|
||||
@@ -863,7 +863,8 @@ static void synaptics_report_ext_buttons(struct psmouse *psmouse,
|
||||
return;
|
||||
|
||||
/* Bug in FW 8.1, buttons are reported only when ExtBit is 1 */
|
||||
- if (SYN_ID_FULL(priv->identity) == 0x801 &&
|
||||
+ if ((SYN_ID_FULL(priv->identity) == 0x801 ||
|
||||
+ SYN_ID_FULL(priv->identity) == 0x802) &&
|
||||
!((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
|
||||
return;
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From 29c6dd591bbd592472247441de9fa694acdabae8 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Thu, 7 Jan 2016 11:01:00 +0100
|
||||
Subject: [PATCH] cdc-acm: fix NULL pointer reference
|
||||
|
||||
The union descriptor must be checked. Its usage was conditional
|
||||
before the parser was introduced. This is important, because
|
||||
many RNDIS device, which also use the common parser, have
|
||||
bogus extra descriptors.
|
||||
|
||||
Signed-off-by: Oliver Neukum <oneukum@suse.com>
|
||||
Tested-by: Vasily Galkin <galkin-vv@yandex.ru>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/usb/cdc_ether.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
|
||||
index 3da70bf..7cba2c3 100644
|
||||
--- a/drivers/net/usb/cdc_ether.c
|
||||
+++ b/drivers/net/usb/cdc_ether.c
|
||||
@@ -160,6 +160,12 @@ int usbnet_generic_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
|
||||
info->u = header.usb_cdc_union_desc;
|
||||
info->header = header.usb_cdc_header_desc;
|
||||
info->ether = header.usb_cdc_ether_desc;
|
||||
+ if (!info->u) {
|
||||
+ if (rndis)
|
||||
+ goto skip;
|
||||
+ else /* in that case a quirk is mandatory */
|
||||
+ goto bad_desc;
|
||||
+ }
|
||||
/* we need a master/control interface (what we're
|
||||
* probed with) and a slave/data interface; union
|
||||
* descriptors sort this all out.
|
||||
@@ -256,7 +262,7 @@ skip:
|
||||
goto bad_desc;
|
||||
}
|
||||
|
||||
- } else if (!info->header || !info->u || (!rndis && !info->ether)) {
|
||||
+ } else if (!info->header || (!rndis && !info->ether)) {
|
||||
dev_dbg(&intf->dev, "missing cdc %s%s%sdescriptor\n",
|
||||
info->header ? "" : "header ",
|
||||
info->u ? "" : "union ",
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
From e2e407dc093f530b771ee8bf8fe1be41e3cea8b3 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Roper <matthew.d.roper@intel.com>
|
||||
Date: Mon, 8 Feb 2016 11:05:28 -0800
|
||||
Subject: [PATCH] drm/i915: Pretend cursor is always on for ILK-style WM
|
||||
calculations (v2)
|
||||
|
||||
Due to our lack of two-step watermark programming, our driver has
|
||||
historically pretended that the cursor plane is always on for the
|
||||
purpose of watermark calculations; this helps avoid serious flickering
|
||||
when the cursor turns off/on (e.g., when the user moves the mouse
|
||||
pointer to a different screen). That workaround was accidentally
|
||||
dropped as we started working toward atomic watermark updates. Since we
|
||||
still aren't quite there yet with two-stage updates, we need to
|
||||
resurrect the workaround and treat the cursor as always active.
|
||||
|
||||
v2: Tweak cursor width calculations slightly to more closely match the
|
||||
logic we used before the atomic overhaul began. (Ville)
|
||||
|
||||
Cc: simdev11@outlook.com
|
||||
Cc: manfred.kitzbichler@gmail.com
|
||||
Cc: drm-intel-fixes@lists.freedesktop.org
|
||||
Reported-by: simdev11@outlook.com
|
||||
Reported-by: manfred.kitzbichler@gmail.com
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93892
|
||||
Fixes: 43d59eda1 ("drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2)")
|
||||
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
|
||||
Link: http://patchwork.freedesktop.org/patch/msgid/1454479611-6804-1-git-send-email-matthew.d.roper@intel.com
|
||||
(cherry picked from commit b2435692dbb709d4c8ff3b2f2815c9b8423b72bb)
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
Link: http://patchwork.freedesktop.org/patch/msgid/1454958328-30129-1-git-send-email-matthew.d.roper@intel.com
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_pm.c | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
|
||||
index eb5fa05..a234687 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_pm.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_pm.c
|
||||
@@ -1783,16 +1783,20 @@ static uint32_t ilk_compute_cur_wm(const struct intel_crtc_state *cstate,
|
||||
const struct intel_plane_state *pstate,
|
||||
uint32_t mem_value)
|
||||
{
|
||||
- int bpp = pstate->base.fb ? pstate->base.fb->bits_per_pixel / 8 : 0;
|
||||
+ /*
|
||||
+ * We treat the cursor plane as always-on for the purposes of watermark
|
||||
+ * calculation. Until we have two-stage watermark programming merged,
|
||||
+ * this is necessary to avoid flickering.
|
||||
+ */
|
||||
+ int cpp = 4;
|
||||
+ int width = pstate->visible ? pstate->base.crtc_w : 64;
|
||||
|
||||
- if (!cstate->base.active || !pstate->visible)
|
||||
+ if (!cstate->base.active)
|
||||
return 0;
|
||||
|
||||
return ilk_wm_method2(ilk_pipe_pixel_rate(cstate),
|
||||
cstate->base.adjusted_mode.crtc_htotal,
|
||||
- drm_rect_width(&pstate->dst),
|
||||
- bpp,
|
||||
- mem_value);
|
||||
+ width, cpp, mem_value);
|
||||
}
|
||||
|
||||
/* Only for WM_LP. */
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
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
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
From 4d1b08a69350d40e0aa14baba4797ef175295718 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Wed, 30 Mar 2016 12:40:54 +0100
|
||||
Subject: [PATCH 1/2] net: dsa: mv88e6xxx: Introduce
|
||||
_mv88e6xxx_phy_page_{read,write}
|
||||
|
||||
Add versions of the phy_page_read and _write functions to
|
||||
be used in a context where the SMI mutex is held.
|
||||
|
||||
Tested-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
|
||||
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
|
||||
Signed-off-by: Patrick Uiterwijk <patrick@puiterwijk.org>
|
||||
---
|
||||
drivers/net/dsa/mv88e6xxx.c | 49 +++++++++++++++++++++++++++++++++------------
|
||||
1 file changed, 36 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
|
||||
index 512c8c0..3dcfe13 100644
|
||||
--- a/drivers/net/dsa/mv88e6xxx.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx.c
|
||||
@@ -1929,6 +1929,38 @@ static void mv88e6xxx_bridge_work(struct work_struct *work)
|
||||
}
|
||||
}
|
||||
|
||||
+static int _mv88e6xxx_phy_page_write(struct dsa_switch *ds, int port, int page,
|
||||
+ int reg, int val)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = _mv88e6xxx_phy_write_indirect(ds, port, 0x16, page);
|
||||
+ if (ret < 0)
|
||||
+ goto restore_page_0;
|
||||
+
|
||||
+ ret = _mv88e6xxx_phy_write_indirect(ds, port, reg, val);
|
||||
+restore_page_0:
|
||||
+ _mv88e6xxx_phy_write_indirect(ds, port, 0x16, 0x0);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int _mv88e6xxx_phy_page_read(struct dsa_switch *ds, int port, int page,
|
||||
+ int reg)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = _mv88e6xxx_phy_write_indirect(ds, port, 0x16, page);
|
||||
+ if (ret < 0)
|
||||
+ goto restore_page_0;
|
||||
+
|
||||
+ ret = _mv88e6xxx_phy_read_indirect(ds, port, reg);
|
||||
+restore_page_0:
|
||||
+ _mv88e6xxx_phy_write_indirect(ds, port, 0x16, 0x0);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port)
|
||||
{
|
||||
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
|
||||
@@ -2383,13 +2415,9 @@ int mv88e6xxx_phy_page_read(struct dsa_switch *ds, int port, int page, int reg)
|
||||
int ret;
|
||||
|
||||
mutex_lock(&ps->smi_mutex);
|
||||
- ret = _mv88e6xxx_phy_write_indirect(ds, port, 0x16, page);
|
||||
- if (ret < 0)
|
||||
- goto error;
|
||||
- ret = _mv88e6xxx_phy_read_indirect(ds, port, reg);
|
||||
-error:
|
||||
- _mv88e6xxx_phy_write_indirect(ds, port, 0x16, 0x0);
|
||||
+ ret = _mv88e6xxx_phy_page_read(ds, port, page, reg);
|
||||
mutex_unlock(&ps->smi_mutex);
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2400,14 +2428,9 @@ int mv88e6xxx_phy_page_write(struct dsa_switch *ds, int port, int page,
|
||||
int ret;
|
||||
|
||||
mutex_lock(&ps->smi_mutex);
|
||||
- ret = _mv88e6xxx_phy_write_indirect(ds, port, 0x16, page);
|
||||
- if (ret < 0)
|
||||
- goto error;
|
||||
-
|
||||
- ret = _mv88e6xxx_phy_write_indirect(ds, port, reg, val);
|
||||
-error:
|
||||
- _mv88e6xxx_phy_write_indirect(ds, port, 0x16, 0x0);
|
||||
+ ret = _mv88e6xxx_phy_page_write(ds, port, page, reg, val);
|
||||
mutex_unlock(&ps->smi_mutex);
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
|
||||
--
|
||||
2.7.3
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
From 79abe2bd501d628b165f323098d6972d69bd13d7 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 16 Mar 2016 13:20:51 +0100
|
||||
Subject: [PATCH] uas: Limit qdepth at the scsi-host level
|
||||
|
||||
Commit 64d513ac31bd ("scsi: use host wide tags by default") causes
|
||||
the scsi-core to queue more cmnds then we can handle on devices with
|
||||
multiple LUNs, limit the qdepth at the scsi-host level instead of
|
||||
per slave to fix this.
|
||||
|
||||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1315013
|
||||
Cc: stable@vger.kernel.org # 4.4.x and 4.5.x
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/storage/uas.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
|
||||
index c90a7e4..b5cb7ab 100644
|
||||
--- a/drivers/usb/storage/uas.c
|
||||
+++ b/drivers/usb/storage/uas.c
|
||||
@@ -800,7 +800,6 @@ static int uas_slave_configure(struct scsi_device *sdev)
|
||||
if (devinfo->flags & US_FL_BROKEN_FUA)
|
||||
sdev->broken_fua = 1;
|
||||
|
||||
- scsi_change_queue_depth(sdev, devinfo->qdepth - 2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -932,6 +931,12 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id)
|
||||
if (result)
|
||||
goto set_alt0;
|
||||
|
||||
+ /*
|
||||
+ * 1 tag is reserved for untagged commands +
|
||||
+ * 1 tag to avoid of by one errors in some bridge firmwares
|
||||
+ */
|
||||
+ shost->can_queue = devinfo->qdepth - 2;
|
||||
+
|
||||
usb_set_intfdata(intf, shost);
|
||||
result = scsi_add_host(shost, &intf->dev);
|
||||
if (result)
|
||||
--
|
||||
2.7.3
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From 07197eb61cfabc153846b1ae9d080a5d6c449d12 Mon Sep 17 00:00:00 2001
|
||||
From: "Du, Changbin" <changbin.du@intel.com>
|
||||
Date: Mon, 22 Feb 2016 10:08:36 +0800
|
||||
Subject: [PATCH] usb: hub: fix panic in usb_reset_and_verify_device
|
||||
|
||||
Signed-off-by: Du, Changbin <changbin.du@intel.com>
|
||||
---
|
||||
drivers/usb/core/hub.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 350dcd9..045f951 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5501,8 +5501,10 @@ done:
|
||||
return 0;
|
||||
|
||||
re_enumerate:
|
||||
- usb_release_bos_descriptor(udev);
|
||||
- udev->bos = bos;
|
||||
+ if (udev->bos != bos) {
|
||||
+ usb_release_bos_descriptor(udev);
|
||||
+ udev->bos = bos;
|
||||
+ }
|
||||
re_enumerate_no_bos:
|
||||
/* LPM state doesn't matter when we're about to destroy the device. */
|
||||
hub_port_logical_disconnect(parent_hub, port1);
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
From a878e3fa9657646ff85468075823870fbbd5745f Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Wed, 30 Mar 2016 12:41:22 +0100
|
||||
Subject: [PATCH 2/2] net: dsa: mv88e6xxx: Clear the PDOWN bit on setup
|
||||
|
||||
Some of the vendor-specific bootloaders set up this part
|
||||
of the initialization for us, so this was never added.
|
||||
However, since upstream bootloaders don't initialize the
|
||||
chip specifically, they leave the fiber MII's PDOWN flag
|
||||
set, which means that the CPU port doesn't connect.
|
||||
|
||||
This patch checks whether this flag has been clear prior
|
||||
by something else, and if not make us clear it.
|
||||
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Signed-off-by: Patrick Uiterwijk <patrick@puiterwijk.org>
|
||||
---
|
||||
drivers/net/dsa/mv88e6xxx.c | 36 ++++++++++++++++++++++++++++++++++++
|
||||
drivers/net/dsa/mv88e6xxx.h | 8 ++++++++
|
||||
2 files changed, 44 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
|
||||
index 3dcfe13..a4e3750 100644
|
||||
--- a/drivers/net/dsa/mv88e6xxx.c
|
||||
+++ b/drivers/net/dsa/mv88e6xxx.c
|
||||
@@ -1961,6 +1961,25 @@ restore_page_0:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static int mv88e6xxx_power_on_serdes(struct dsa_switch *ds)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = _mv88e6xxx_phy_page_read(ds, REG_FIBER_SERDES, PAGE_FIBER_SERDES,
|
||||
+ MII_BMCR);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ if (ret & BMCR_PDOWN) {
|
||||
+ ret &= ~BMCR_PDOWN;
|
||||
+ ret = _mv88e6xxx_phy_page_write(ds, REG_FIBER_SERDES,
|
||||
+ PAGE_FIBER_SERDES, MII_BMCR,
|
||||
+ ret);
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port)
|
||||
{
|
||||
struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
|
||||
@@ -2064,6 +2083,23 @@ static int mv88e6xxx_setup_port(struct dsa_switch *ds, int port)
|
||||
goto abort;
|
||||
}
|
||||
|
||||
+ /* If this port is connected to a SerDes, make sure the SerDes is not
|
||||
+ * powered down.
|
||||
+ */
|
||||
+ if (mv88e6xxx_6352_family(ds)) {
|
||||
+ ret = _mv88e6xxx_reg_read(ds, REG_PORT(port), PORT_STATUS);
|
||||
+ if (ret < 0)
|
||||
+ goto abort;
|
||||
+ ret &= PORT_STATUS_CMODE_MASK;
|
||||
+ if ((ret == PORT_STATUS_CMODE_100BASE_X) ||
|
||||
+ (ret == PORT_STATUS_CMODE_1000BASE_X) ||
|
||||
+ (ret == PORT_STATUS_CMODE_SGMII)) {
|
||||
+ ret = mv88e6xxx_power_on_serdes(ds);
|
||||
+ if (ret < 0)
|
||||
+ goto abort;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/* Port Control 2: don't force a good FCS, set the maximum frame size to
|
||||
* 10240 bytes, enable secure 802.1q tags, don't discard tagged or
|
||||
* untagged frames on this port, do a destination address lookup on all
|
||||
diff --git a/drivers/net/dsa/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx.h
|
||||
index ca08f91..adc7f0d 100644
|
||||
--- a/drivers/net/dsa/mv88e6xxx.h
|
||||
+++ b/drivers/net/dsa/mv88e6xxx.h
|
||||
@@ -28,6 +28,10 @@
|
||||
#define SMI_CMD_OP_45_READ_DATA_INC ((3 << 10) | SMI_CMD_BUSY)
|
||||
#define SMI_DATA 0x01
|
||||
|
||||
+/* Fiber/SERDES Registers are located at SMI address F, page 1 */
|
||||
+#define REG_FIBER_SERDES 0x0f
|
||||
+#define PAGE_FIBER_SERDES 0x01
|
||||
+
|
||||
#define REG_PORT(p) (0x10 + (p))
|
||||
#define PORT_STATUS 0x00
|
||||
#define PORT_STATUS_PAUSE_EN BIT(15)
|
||||
@@ -45,6 +49,10 @@
|
||||
#define PORT_STATUS_MGMII BIT(6) /* 6185 */
|
||||
#define PORT_STATUS_TX_PAUSED BIT(5)
|
||||
#define PORT_STATUS_FLOW_CTRL BIT(4)
|
||||
+#define PORT_STATUS_CMODE_MASK 0x0f
|
||||
+#define PORT_STATUS_CMODE_100BASE_X 0x8
|
||||
+#define PORT_STATUS_CMODE_1000BASE_X 0x9
|
||||
+#define PORT_STATUS_CMODE_SGMII 0xa
|
||||
#define PORT_PCS_CTRL 0x01
|
||||
#define PORT_PCS_CTRL_RGMII_DELAY_RXCLK BIT(15)
|
||||
#define PORT_PCS_CTRL_RGMII_DELAY_TXCLK BIT(14)
|
||||
--
|
||||
2.7.3
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 527a5767c165abd2b4dba99da992c51ca7547562 Mon Sep 17 00:00:00 2001
|
||||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:07 -0400
|
||||
Subject: [PATCH 1/3] ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The stack object “tread” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/sound/core/timer.c b/sound/core/timer.c
|
||||
index 6469bedda2f3..964f5ebf495e 100644
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1739,6 +1739,7 @@ static int snd_timer_user_params(struct file *file,
|
||||
if (tu->timeri->flags & SNDRV_TIMER_IFLG_EARLY_EVENT) {
|
||||
if (tu->tread) {
|
||||
struct snd_timer_tread tread;
|
||||
+ memset(&tread, 0, sizeof(tread));
|
||||
tread.event = SNDRV_TIMER_EVENT_EARLY;
|
||||
tread.tstamp.tv_sec = 0;
|
||||
tread.tstamp.tv_nsec = 0;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
From addd6e9f0e25efb00d813d54528607c75b77c416 Mon Sep 17 00:00:00 2001
|
||||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:20 -0400
|
||||
Subject: [PATCH 2/3] ALSA: timer: Fix leak in events via
|
||||
snd_timer_user_ccallback
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The stack object “r1” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/sound/core/timer.c b/sound/core/timer.c
|
||||
index 964f5ebf495e..e98fa5feb731 100644
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1225,6 +1225,7 @@ static void snd_timer_user_ccallback(struct snd_timer_instance *timeri,
|
||||
tu->tstamp = *tstamp;
|
||||
if ((tu->filter & (1 << event)) == 0 || !tu->tread)
|
||||
return;
|
||||
+ memset(&r1, 0, sizeof(r1));
|
||||
r1.event = event;
|
||||
r1.tstamp = *tstamp;
|
||||
r1.val = resolution;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
From b06a443b5679e9a0298e2f206ddb60845569f62f Mon Sep 17 00:00:00 2001
|
||||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:44:32 -0400
|
||||
Subject: [PATCH 3/3] ALSA: timer: Fix leak in events via
|
||||
snd_timer_user_tinterrupt
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The stack object “r1” has a total size of 32 bytes. Its field
|
||||
“event” and “val” both contain 4 bytes padding. These 8 bytes
|
||||
padding bytes are sent to user without being initialized.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/core/timer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/sound/core/timer.c b/sound/core/timer.c
|
||||
index e98fa5feb731..c69a27155433 100644
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -1268,6 +1268,7 @@ static void snd_timer_user_tinterrupt(struct snd_timer_instance *timeri,
|
||||
}
|
||||
if ((tu->filter & (1 << SNDRV_TIMER_EVENT_RESOLUTION)) &&
|
||||
tu->last_resolution != resolution) {
|
||||
+ memset(&r1, 0, sizeof(r1));
|
||||
r1.event = SNDRV_TIMER_EVENT_RESOLUTION;
|
||||
r1.tstamp = tstamp;
|
||||
r1.val = resolution;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
From 873156565ca67779bbf5a3475ccd08ea3bb92522 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Tue, 15 Mar 2016 15:20:58 +0100
|
||||
Subject: [PATCH 2/2] ALSA: usb-audio: Add sanity checks for endpoint accesses
|
||||
|
||||
Add some sanity check codes before actually accessing the endpoint via
|
||||
get_endpoint() in order to avoid the invalid access through a
|
||||
malformed USB descriptor. Mostly just checking bNumEndpoints, but in
|
||||
one place (snd_microii_spdif_default_get()), the validity of iface and
|
||||
altsetting index is checked as well.
|
||||
|
||||
Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=971125
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/usb/clock.c | 2 ++
|
||||
sound/usb/endpoint.c | 3 +++
|
||||
sound/usb/mixer_quirks.c | 4 ++++
|
||||
sound/usb/pcm.c | 2 ++
|
||||
4 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/sound/usb/clock.c b/sound/usb/clock.c
|
||||
index 2ed260b10f6d..7ccbcaf6a147 100644
|
||||
--- a/sound/usb/clock.c
|
||||
+++ b/sound/usb/clock.c
|
||||
@@ -285,6 +285,8 @@ static int set_sample_rate_v1(struct snd_usb_audio *chip, int iface,
|
||||
unsigned char data[3];
|
||||
int err, crate;
|
||||
|
||||
+ if (get_iface_desc(alts)->bNumEndpoints < 1)
|
||||
+ return -EINVAL;
|
||||
ep = get_endpoint(alts, 0)->bEndpointAddress;
|
||||
|
||||
/* if endpoint doesn't have sampling rate control, bail out */
|
||||
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
|
||||
index e6f71894ecdc..c2131b851602 100644
|
||||
--- a/sound/usb/endpoint.c
|
||||
+++ b/sound/usb/endpoint.c
|
||||
@@ -415,6 +415,9 @@ exit_clear:
|
||||
*
|
||||
* New endpoints will be added to chip->ep_list and must be freed by
|
||||
* calling snd_usb_endpoint_free().
|
||||
+ *
|
||||
+ * For SND_USB_ENDPOINT_TYPE_SYNC, the caller needs to guarantee that
|
||||
+ * bNumEndpoints > 1 beforehand.
|
||||
*/
|
||||
struct snd_usb_endpoint *snd_usb_add_endpoint(struct snd_usb_audio *chip,
|
||||
struct usb_host_interface *alts,
|
||||
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
|
||||
index d3608c0a29f3..2d724e3c4cc0 100644
|
||||
--- a/sound/usb/mixer_quirks.c
|
||||
+++ b/sound/usb/mixer_quirks.c
|
||||
@@ -1518,7 +1518,11 @@ static int snd_microii_spdif_default_get(struct snd_kcontrol *kcontrol,
|
||||
|
||||
/* use known values for that card: interface#1 altsetting#1 */
|
||||
iface = usb_ifnum_to_if(chip->dev, 1);
|
||||
+ if (!iface || iface->num_altsetting < 2)
|
||||
+ return -EINVAL;
|
||||
alts = &iface->altsetting[1];
|
||||
+ if (get_iface_desc(alts)->bNumEndpoints < 1)
|
||||
+ return -EINVAL;
|
||||
ep = get_endpoint(alts, 0)->bEndpointAddress;
|
||||
|
||||
err = snd_usb_ctl_msg(chip->dev,
|
||||
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
|
||||
index cdac5179db3f..4da64896df6d 100644
|
||||
--- a/sound/usb/pcm.c
|
||||
+++ b/sound/usb/pcm.c
|
||||
@@ -159,6 +159,8 @@ static int init_pitch_v1(struct snd_usb_audio *chip, int iface,
|
||||
unsigned char data[1];
|
||||
int err;
|
||||
|
||||
+ if (get_iface_desc(alts)->bNumEndpoints < 1)
|
||||
+ return -EINVAL;
|
||||
ep = get_endpoint(alts, 0)->bEndpointAddress;
|
||||
|
||||
data[0] = 1;
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
From b0bb5691b38e2f439b071e226bad9f699c33b77d Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Tue, 15 Mar 2016 12:09:10 +0100
|
||||
Subject: [PATCH 1/2] ALSA: usb-audio: Fix NULL dereference in
|
||||
create_fixed_stream_quirk()
|
||||
|
||||
create_fixed_stream_quirk() may cause a NULL-pointer dereference by
|
||||
accessing the non-existing endpoint when a USB device with a malformed
|
||||
USB descriptor is used.
|
||||
|
||||
This patch avoids it simply by adding a sanity check of bNumEndpoints
|
||||
before the accesses.
|
||||
|
||||
Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=971125
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/usb/quirks.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
|
||||
index eef9b8e4b949..e128ca62eb44 100644
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -177,6 +177,12 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
|
||||
}
|
||||
alts = &iface->altsetting[fp->altset_idx];
|
||||
altsd = get_iface_desc(alts);
|
||||
+ if (altsd->bNumEndpoints < 1) {
|
||||
+ kfree(fp);
|
||||
+ kfree(rate_table);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
fp->protocol = altsd->bInterfaceProtocol;
|
||||
|
||||
if (fp->datainterval == 0)
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
From patchwork Wed Jan 27 15:08:19 2016
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [1/2] ARM: mvebu: change order of ethernet DT nodes on Armada 38x
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
X-Patchwork-Id: 8134751
|
||||
Message-Id: <1453907300-28283-2-git-send-email-thomas.petazzoni@free-electrons.com>
|
||||
To: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
|
||||
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
|
||||
Gregory Clement <gregory.clement@free-electrons.com>
|
||||
Cc: Nadav Haklai <nadavh@marvell.com>, Lior Amsalem <alior@marvell.com>,
|
||||
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
|
||||
linux-arm-kernel@lists.infradead.org
|
||||
Date: Wed, 27 Jan 2016 16:08:19 +0100
|
||||
|
||||
On Armada 38x, the available network interfaces are:
|
||||
|
||||
- port 0, at 0x70000
|
||||
- port 1, at 0x30000
|
||||
- port 2, at 0x34000
|
||||
|
||||
Due to the rule saying that DT nodes should be ordered by register
|
||||
addresses, the network interfaces are probed in this order:
|
||||
|
||||
- port 1, at 0x30000, which gets named eth0
|
||||
- port 2, at 0x34000, which gets named eth1
|
||||
- port 0, at 0x70000, which gets named eth2
|
||||
|
||||
(if all three ports are enabled at the board level)
|
||||
|
||||
Unfortunately, the network subsystem doesn't provide any way to rename
|
||||
network interfaces from the kernel (it can only be done from
|
||||
userspace). So, the default naming of the network interfaces is very
|
||||
confusing as it doesn't match the datasheet, nor the naming of the
|
||||
interfaces in the bootloader, nor the naming of the interfaces on
|
||||
labels printed on the board.
|
||||
|
||||
For example, on the Armada 388 GP, the board has two ports, labelled
|
||||
GE0 and GE1. One has to know that GE0 is eth1 and GE1 is eth0, which
|
||||
isn't really obvious.
|
||||
|
||||
In order to solve this, this patch proposes to exceptionaly violate
|
||||
the rule of "order DT nodes by register address", and put the 0x70000
|
||||
node before the 0x30000 node, so that network interfaces get named in
|
||||
a more natural way.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
---
|
||||
arch/arm/boot/dts/armada-38x.dtsi | 30 +++++++++++++++++++++---------
|
||||
1 file changed, 21 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
|
||||
index e8b7f67..b50784d 100644
|
||||
--- a/arch/arm/boot/dts/armada-38x.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-38x.dtsi
|
||||
@@ -429,6 +429,27 @@
|
||||
reg = <0x22000 0x1000>;
|
||||
};
|
||||
|
||||
+ /*
|
||||
+ * As a special exception to the "order by
|
||||
+ * register address" rule, the eth0 node is
|
||||
+ * placed here to ensure that it gets
|
||||
+ * registered as the first interface, since
|
||||
+ * the network subsystem doesn't allow naming
|
||||
+ * interfaces using DT aliases. Without this,
|
||||
+ * the ordering of interfaces is different
|
||||
+ * from the one used in U-Boot and the
|
||||
+ * labeling of interfaces on the boards, which
|
||||
+ * is very confusing for users.
|
||||
+ */
|
||||
+ eth0: ethernet@70000 {
|
||||
+ compatible = "marvell,armada-370-neta";
|
||||
+ reg = <0x70000 0x4000>;
|
||||
+ interrupts-extended = <&mpic 8>;
|
||||
+ clocks = <&gateclk 4>;
|
||||
+ tx-csum-limit = <9800>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
eth1: ethernet@30000 {
|
||||
compatible = "marvell,armada-370-neta";
|
||||
reg = <0x30000 0x4000>;
|
||||
@@ -493,15 +514,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
- eth0: ethernet@70000 {
|
||||
- compatible = "marvell,armada-370-neta";
|
||||
- reg = <0x70000 0x4000>;
|
||||
- interrupts-extended = <&mpic 8>;
|
||||
- clocks = <&gateclk 4>;
|
||||
- tx-csum-limit = <9800>;
|
||||
- status = "disabled";
|
||||
- };
|
||||
-
|
||||
mdio: mdio@72004 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
|
@ -0,0 +1,318 @@
|
|||
From 15b8caef5f380d9465876478ff5e365bc6afa5b6 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Sun, 6 Mar 2016 10:59:13 +0000
|
||||
Subject: [PATCH] Fix tegra to use stdout-path for serial console
|
||||
|
||||
---
|
||||
arch/arm/boot/dts/tegra114-dalmore.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra124-jetson-tk1.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra124-nyan.dtsi | 4 ++++
|
||||
arch/arm/boot/dts/tegra124-venice2.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-harmony.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-iris-512.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-medcom-wide.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-paz00.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-seaboard.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-tamonten.dtsi | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-trimslice.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-ventana.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra20-whistler.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra30-apalis-eval.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra30-beaver.dts | 4 ++++
|
||||
arch/arm/boot/dts/tegra30-cardhu.dtsi | 4 ++++
|
||||
arch/arm/boot/dts/tegra30-colibri-eval-v3.dts | 4 ++++
|
||||
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts | 5 ++++-
|
||||
arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi | 4 ++++
|
||||
19 files changed, 76 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
|
||||
index 8b7aa0d..b5748ee 100644
|
||||
--- a/arch/arm/boot/dts/tegra114-dalmore.dts
|
||||
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
|
||||
@@ -18,6 +18,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x80000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1.dts b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
|
||||
index 66b4451..abf046a 100644
|
||||
--- a/arch/arm/boot/dts/tegra124-jetson-tk1.dts
|
||||
+++ b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
|
||||
@@ -15,6 +15,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra124-nyan.dtsi b/arch/arm/boot/dts/tegra124-nyan.dtsi
|
||||
index ec1aa64..e2cd39e 100644
|
||||
--- a/arch/arm/boot/dts/tegra124-nyan.dtsi
|
||||
+++ b/arch/arm/boot/dts/tegra124-nyan.dtsi
|
||||
@@ -8,6 +8,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts
|
||||
index cfbdf42..604f4b7 100644
|
||||
--- a/arch/arm/boot/dts/tegra124-venice2.dts
|
||||
+++ b/arch/arm/boot/dts/tegra124-venice2.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x0 0x80000000 0x0 0x80000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts
|
||||
index b926a07..4b73c76 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-harmony.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-harmony.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-iris-512.dts b/arch/arm/boot/dts/tegra20-iris-512.dts
|
||||
index 1dd7d7b..bb56dfe 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-iris-512.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-iris-512.dts
|
||||
@@ -11,6 +11,10 @@
|
||||
serial1 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
host1x@50000000 {
|
||||
hdmi@54280000 {
|
||||
status = "okay";
|
||||
diff --git a/arch/arm/boot/dts/tegra20-medcom-wide.dts b/arch/arm/boot/dts/tegra20-medcom-wide.dts
|
||||
index 9b87526..34c6588 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-medcom-wide.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-medcom-wide.dts
|
||||
@@ -10,6 +10,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
pwm@7000a000 {
|
||||
status = "okay";
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts
|
||||
index ed7e100..81a10a9 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-paz00.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-paz00.dts
|
||||
@@ -14,6 +14,10 @@
|
||||
serial1 = &uartc;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x20000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts
|
||||
index aea8994..0aed748 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-seaboard.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-seaboard.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi
|
||||
index 13d4e61..025e9e8 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-tamonten.dtsi
|
||||
+++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi
|
||||
@@ -10,6 +10,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x20000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts
|
||||
index d99af4e..69d25ca 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-trimslice.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-trimslice.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
|
||||
index 04c58e9..c61533a 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-ventana.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-ventana.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts
|
||||
index 340d811..bd76585 100644
|
||||
--- a/arch/arm/boot/dts/tegra20-whistler.dts
|
||||
+++ b/arch/arm/boot/dts/tegra20-whistler.dts
|
||||
@@ -13,6 +13,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x00000000 0x20000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra30-apalis-eval.dts b/arch/arm/boot/dts/tegra30-apalis-eval.dts
|
||||
index f2879cf..b914bcb 100644
|
||||
--- a/arch/arm/boot/dts/tegra30-apalis-eval.dts
|
||||
+++ b/arch/arm/boot/dts/tegra30-apalis-eval.dts
|
||||
@@ -17,6 +17,10 @@
|
||||
serial3 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
pcie-controller@00003000 {
|
||||
status = "okay";
|
||||
|
||||
diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts
|
||||
index 3dede39..1eca3b2 100644
|
||||
--- a/arch/arm/boot/dts/tegra30-beaver.dts
|
||||
+++ b/arch/arm/boot/dts/tegra30-beaver.dts
|
||||
@@ -12,6 +12,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x80000000 0x7ff00000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi
|
||||
index bb1ca15..de9d6cc 100644
|
||||
--- a/arch/arm/boot/dts/tegra30-cardhu.dtsi
|
||||
+++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi
|
||||
@@ -35,6 +35,10 @@
|
||||
serial1 = &uartc;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
reg = <0x80000000 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
|
||||
index 3ff019f..93e1ffd 100644
|
||||
--- a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
|
||||
+++ b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
|
||||
@@ -15,6 +15,10 @@
|
||||
serial2 = &uartd;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
host1x@50000000 {
|
||||
dc@54200000 {
|
||||
rgb {
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra132-norrin.dts b/arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
|
||||
index 62f33fc..3c0b4d7 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
|
||||
@@ -10,9 +10,12 @@
|
||||
aliases {
|
||||
rtc0 = "/i2c@0,7000d000/as3722@40";
|
||||
rtc1 = "/rtc@0,7000e000";
|
||||
+ serial0 = &uarta;
|
||||
};
|
||||
|
||||
- chosen { };
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi
|
||||
index ece0dec..73ba582 100644
|
||||
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi
|
||||
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi
|
||||
@@ -9,6 +9,10 @@
|
||||
serial0 = &uarta;
|
||||
};
|
||||
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0xc0000000>;
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
From 37e81f1a82ba4f214c05c4cc3807378753c7a867 Mon Sep 17 00:00:00 2001
|
||||
From: Allen Hung <allen_hung@dell.com>
|
||||
Date: Fri, 20 Nov 2015 18:21:06 +0800
|
||||
Subject: [PATCH] HID: multitouch: enable palm rejection if device implements
|
||||
confidence usage
|
||||
|
||||
The usage Confidence is mandary to Windows Precision Touchpad devices. The
|
||||
appearance of this usage is checked in hidinput_connect but the quirk
|
||||
MT_QUIRK_VALID_IS_CONFIDENCE is not applied to device accordingly.
|
||||
Apply this quirk and also remove quirk MT_QUIRK_ALWAYS_VALID to enable palm
|
||||
rejection for the WIN 8 touchpad devices which have implemented usage
|
||||
Confidence in its input reports.
|
||||
|
||||
Tested on Dell XPS 13 laptop.
|
||||
|
||||
Signed-off-by: Allen Hung <allen_hung@dell.com>
|
||||
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
||||
---
|
||||
drivers/hid/hid-multitouch.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||
index 7c811252c1ce..0c94348a168d 100644
|
||||
--- a/drivers/hid/hid-multitouch.c
|
||||
+++ b/drivers/hid/hid-multitouch.c
|
||||
@@ -448,6 +448,11 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||
mt_store_field(usage, td, hi);
|
||||
return 1;
|
||||
case HID_DG_CONFIDENCE:
|
||||
+ if (cls->name == MT_CLS_WIN_8 &&
|
||||
+ field->application == HID_DG_TOUCHPAD) {
|
||||
+ cls->quirks &= ~MT_QUIRK_ALWAYS_VALID;
|
||||
+ cls->quirks |= MT_QUIRK_VALID_IS_CONFIDENCE;
|
||||
+ }
|
||||
mt_store_field(usage, td, hi);
|
||||
return 1;
|
||||
case HID_DG_TIPSWITCH:
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
From 580549ef6b3e3fb3b958de490ca99f43a089a2cf Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Date: Fri, 25 Mar 2016 15:26:55 +0100
|
||||
Subject: [PATCH] HID: wacom: fix Bamboo ONE oops
|
||||
|
||||
Looks like recent changes in the Wacom driver made the Bamboo ONE crashes.
|
||||
The tablet behaves as if it was a regular Bamboo device with pen, touch
|
||||
and pad, but there is no physical pad connected to it.
|
||||
The weird part is that the pad is still sending events and given that
|
||||
there is no input node connected to it, we get anull pointer exception.
|
||||
|
||||
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317116
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
|
||||
---
|
||||
drivers/hid/wacom_wac.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
|
||||
index bd198bbd4df0..02c4efea241c 100644
|
||||
--- a/drivers/hid/wacom_wac.c
|
||||
+++ b/drivers/hid/wacom_wac.c
|
||||
@@ -2426,6 +2426,17 @@ void wacom_setup_device_quirks(struct wacom *wacom)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Hack for the Bamboo One:
|
||||
+ * the device presents a PAD/Touch interface as most Bamboos and even
|
||||
+ * sends ghosts PAD data on it. However, later, we must disable this
|
||||
+ * ghost interface, and we can not detect it unless we set it here
|
||||
+ * to WACOM_DEVICETYPE_PAD or WACOM_DEVICETYPE_TOUCH.
|
||||
+ */
|
||||
+ if (features->type == BAMBOO_PEN &&
|
||||
+ features->pktlen == WACOM_PKGLEN_BBTOUCH3)
|
||||
+ features->device_type |= WACOM_DEVICETYPE_PAD;
|
||||
+
|
||||
+ /*
|
||||
* Raw Wacom-mode pen and touch events both come from interface
|
||||
* 0, whose HID descriptor has an application usage of 0xFF0D
|
||||
* (i.e., WACOM_VENDORDEFINED_PEN). We route pen packets back
|
||||
--
|
||||
2.5.5
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -71,7 +71,7 @@ diff --git a/include/keys/system_keyring.h b/include/keys/system_keyring.h
|
|||
index b20cd885c1fd..51d8ddc60e0f 100644
|
||||
--- a/include/keys/system_keyring.h
|
||||
+++ b/include/keys/system_keyring.h
|
||||
@@ -35,4 +35,8 @@ extern int system_verify_data(const void *data, unsigned long len,
|
||||
@@ -35,6 +35,10 @@ extern int system_verify_data(const void *data, unsigned long len,
|
||||
enum key_being_used_for usage);
|
||||
#endif
|
||||
|
||||
|
@ -79,7 +79,9 @@ index b20cd885c1fd..51d8ddc60e0f 100644
|
|||
+extern struct key *system_blacklist_keyring;
|
||||
+#endif
|
||||
+
|
||||
#endif /* _KEYS_SYSTEM_KEYRING_H */
|
||||
#ifdef CONFIG_IMA_MOK_KEYRING
|
||||
extern struct key *ima_mok_keyring;
|
||||
extern struct key *ima_blacklist_keyring;
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 02da9f1fd9df..782d26f02885 100644
|
||||
--- a/init/Kconfig
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
From 23c8a812dc3c621009e4f0e5342aa4e2ede1ceaa Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Tue, 23 Feb 2016 11:03:12 +0000
|
||||
Subject: [PATCH] KEYS: Fix ASN.1 indefinite length object parsing
|
||||
|
||||
This fixes CVE-2016-0758.
|
||||
|
||||
In the ASN.1 decoder, when the length field of an ASN.1 value is extracted,
|
||||
it isn't validated against the remaining amount of data before being added
|
||||
to the cursor. With a sufficiently large size indicated, the check:
|
||||
|
||||
datalen - dp < 2
|
||||
|
||||
may then fail due to integer overflow.
|
||||
|
||||
Fix this by checking the length indicated against the amount of remaining
|
||||
data in both places a definite length is determined.
|
||||
|
||||
Whilst we're at it, make the following changes:
|
||||
|
||||
(1) Check the maximum size of extended length does not exceed the capacity
|
||||
of the variable it's being stored in (len) rather than the type that
|
||||
variable is assumed to be (size_t).
|
||||
|
||||
(2) Compare the EOC tag to the symbolic constant ASN1_EOC rather than the
|
||||
integer 0.
|
||||
|
||||
(3) To reduce confusion, move the initialisation of len outside of:
|
||||
|
||||
for (len = 0; n > 0; n--) {
|
||||
|
||||
since it doesn't have anything to do with the loop counter n.
|
||||
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
Reviewed-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
|
||||
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
|
||||
Acked-by: Peter Jones <pjones@redhat.com>
|
||||
---
|
||||
lib/asn1_decoder.c | 16 +++++++++-------
|
||||
1 file changed, 9 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c
|
||||
index 2b3f46c049d4..554522934c44 100644
|
||||
--- a/lib/asn1_decoder.c
|
||||
+++ b/lib/asn1_decoder.c
|
||||
@@ -74,7 +74,7 @@ next_tag:
|
||||
|
||||
/* Extract a tag from the data */
|
||||
tag = data[dp++];
|
||||
- if (tag == 0) {
|
||||
+ if (tag == ASN1_EOC) {
|
||||
/* It appears to be an EOC. */
|
||||
if (data[dp++] != 0)
|
||||
goto invalid_eoc;
|
||||
@@ -96,10 +96,8 @@ next_tag:
|
||||
|
||||
/* Extract the length */
|
||||
len = data[dp++];
|
||||
- if (len <= 0x7f) {
|
||||
- dp += len;
|
||||
- goto next_tag;
|
||||
- }
|
||||
+ if (len <= 0x7f)
|
||||
+ goto check_length;
|
||||
|
||||
if (unlikely(len == ASN1_INDEFINITE_LENGTH)) {
|
||||
/* Indefinite length */
|
||||
@@ -110,14 +108,18 @@ next_tag:
|
||||
}
|
||||
|
||||
n = len - 0x80;
|
||||
- if (unlikely(n > sizeof(size_t) - 1))
|
||||
+ if (unlikely(n > sizeof(len) - 1))
|
||||
goto length_too_long;
|
||||
if (unlikely(n > datalen - dp))
|
||||
goto data_overrun_error;
|
||||
- for (len = 0; n > 0; n--) {
|
||||
+ len = 0;
|
||||
+ for (; n > 0; n--) {
|
||||
len <<= 8;
|
||||
len |= data[dp++];
|
||||
}
|
||||
+check_length:
|
||||
+ if (len > datalen - dp)
|
||||
+ goto data_overrun_error;
|
||||
dp += len;
|
||||
goto next_tag;
|
||||
|
||||
--
|
||||
2.5.5
|
||||
|
1
Makefile
1
Makefile
|
@ -37,6 +37,7 @@ debug:
|
|||
@perl -pi -e 's/# CONFIG_PROVE_RCU is not set/CONFIG_PROVE_RCU=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_SPINLOCK is not set/CONFIG_DEBUG_SPINLOCK=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_VM is not set/CONFIG_DEBUG_VM=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_VM_PGFLAGS is not set/CONFIG_DEBUG_VM_PGFLAGS=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAULT_INJECTION is not set/CONFIG_FAULT_INJECTION=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAILSLAB is not set/CONFIG_FAILSLAB=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_FAIL_PAGE_ALLOC is not set/CONFIG_FAIL_PAGE_ALLOC=y/' config-nodebug
|
||||
|
|
|
@ -17,6 +17,7 @@ config-release:
|
|||
@perl -pi -e 's/CONFIG_PROVE_RCU=y/# CONFIG_PROVE_RCU is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_SPINLOCK=y/# CONFIG_DEBUG_SPINLOCK is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_VM=y/# CONFIG_DEBUG_VM is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_VM_PGFLAGS=y/# CONFIG_DEBUG_VM_PGFLAGS is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAULT_INJECTION=y/# CONFIG_FAULT_INJECTION is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAILSLAB=y/# CONFIG_FAILSLAB is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_FAIL_PAGE_ALLOC=y/# CONFIG_FAIL_PAGE_ALLOC is not set/' config-nodebug
|
||||
|
|
|
@ -1,101 +0,0 @@
|
|||
From 61feb31b0dfecfd7949e672a54ac7256f4dd2c3d Mon Sep 17 00:00:00 2001
|
||||
From: Christophe Le Roy <christophe.fish@gmail.com>
|
||||
Date: Fri, 11 Dec 2015 09:13:42 +0100
|
||||
Subject: [PATCH] PNP: Add Broadwell to Intel MCH size workaround
|
||||
|
||||
Add device ID 0x1604 for Broadwell to commit cb171f7abb9a ("PNP:
|
||||
Work around BIOS defects in Intel MCH area reporting").
|
||||
|
||||
>From a Lenovo ThinkPad T550:
|
||||
|
||||
system 00:01: [io 0x1800-0x189f] could not be reserved
|
||||
system 00:01: [io 0x0800-0x087f] has been reserved
|
||||
system 00:01: [io 0x0880-0x08ff] has been reserved
|
||||
system 00:01: [io 0x0900-0x097f] has been reserved
|
||||
system 00:01: [io 0x0980-0x09ff] has been reserved
|
||||
system 00:01: [io 0x0a00-0x0a7f] has been reserved
|
||||
system 00:01: [io 0x0a80-0x0aff] has been reserved
|
||||
system 00:01: [io 0x0b00-0x0b7f] has been reserved
|
||||
system 00:01: [io 0x0b80-0x0bff] has been reserved
|
||||
system 00:01: [io 0x15e0-0x15ef] has been reserved
|
||||
system 00:01: [io 0x1600-0x167f] has been reserved
|
||||
system 00:01: [io 0x1640-0x165f] has been reserved
|
||||
system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved
|
||||
system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
|
||||
system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved
|
||||
system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
|
||||
system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
|
||||
system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved
|
||||
system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
|
||||
[...]
|
||||
resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff]
|
||||
------------[ cut here ]------------
|
||||
WARNING: CPU: 2 PID: 1 at /build/linux-CrHvZ_/linux-4.2.6/arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2ee/0x360()
|
||||
Info: mapping multiple BARs. Your kernel is fine.
|
||||
Modules linked in:
|
||||
CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.2.0-1-amd64 #1 Debian 4.2.6-1
|
||||
Hardware name: LENOVO 20CKCTO1WW/20CKCTO1WW, BIOS N11ET34W (1.10 ) 08/20/2015
|
||||
0000000000000000 ffffffff817e6868 ffffffff8154e2f6 ffff8802241efbf8
|
||||
ffffffff8106e5b1 ffffc90000e98000 0000000000006000 ffffc90000e98000
|
||||
0000000000006000 0000000000000000 ffffffff8106e62a ffffffff817e68c8
|
||||
Call Trace:
|
||||
[<ffffffff8154e2f6>] ? dump_stack+0x40/0x50
|
||||
[<ffffffff8106e5b1>] ? warn_slowpath_common+0x81/0xb0
|
||||
[<ffffffff8106e62a>] ? warn_slowpath_fmt+0x4a/0x50
|
||||
[<ffffffff810742a3>] ? iomem_map_sanity_check+0xb3/0xc0
|
||||
[<ffffffff8105dade>] ? __ioremap_caller+0x2ee/0x360
|
||||
[<ffffffff81036ae6>] ? snb_uncore_imc_init_box+0x66/0x90
|
||||
[<ffffffff810351a8>] ? uncore_pci_probe+0xc8/0x1a0
|
||||
[<ffffffff81302d7f>] ? local_pci_probe+0x3f/0xa0
|
||||
[<ffffffff81303ea4>] ? pci_device_probe+0xc4/0x110
|
||||
[<ffffffff813d9b1e>] ? driver_probe_device+0x1ee/0x450
|
||||
[<ffffffff813d9dfb>] ? __driver_attach+0x7b/0x80
|
||||
[<ffffffff813d9d80>] ? driver_probe_device+0x450/0x450
|
||||
[<ffffffff813d796a>] ? bus_for_each_dev+0x5a/0x90
|
||||
[<ffffffff813d9091>] ? bus_add_driver+0x1f1/0x290
|
||||
[<ffffffff81b37fa8>] ? uncore_cpu_setup+0xc/0xc
|
||||
[<ffffffff813da73f>] ? driver_register+0x5f/0xe0
|
||||
[<ffffffff81b38074>] ? intel_uncore_init+0xcc/0x2b0
|
||||
[<ffffffff81b37fa8>] ? uncore_cpu_setup+0xc/0xc
|
||||
[<ffffffff8100213e>] ? do_one_initcall+0xce/0x200
|
||||
[<ffffffff8108a100>] ? parse_args+0x140/0x4e0
|
||||
[<ffffffff81b2b0cb>] ? kernel_init_freeable+0x162/0x1e8
|
||||
[<ffffffff815443f0>] ? rest_init+0x80/0x80
|
||||
[<ffffffff815443fe>] ? kernel_init+0xe/0xf0
|
||||
[<ffffffff81553e5f>] ? ret_from_fork+0x3f/0x70
|
||||
[<ffffffff815443f0>] ? rest_init+0x80/0x80
|
||||
---[ end trace 472e7959536abf12 ]---
|
||||
|
||||
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
|
||||
Subsystem: Lenovo Device 2223
|
||||
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
|
||||
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
|
||||
Latency: 0
|
||||
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
|
||||
Kernel driver in use: bdw_uncore
|
||||
00: 86 80 04 16 06 00 90 20 09 00 00 06 00 00 00 00
|
||||
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 23 22
|
||||
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
|
||||
|
||||
Signed-off-by: Christophe Le Roy <christophe.fish@gmail.com>
|
||||
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||
---
|
||||
drivers/pnp/quirks.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
|
||||
index 943c1cb9566c..f700723ca5d6 100644
|
||||
--- a/drivers/pnp/quirks.c
|
||||
+++ b/drivers/pnp/quirks.c
|
||||
@@ -343,6 +343,7 @@ static void quirk_amd_mmconfig_area(struct pnp_dev *dev)
|
||||
static const unsigned int mch_quirk_devices[] = {
|
||||
0x0154, /* Ivy Bridge */
|
||||
0x0c00, /* Haswell */
|
||||
+ 0x1604, /* Broadwell */
|
||||
};
|
||||
|
||||
static struct pci_dev *get_intel_host(void)
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,119 +0,0 @@
|
|||
From afa5b65015ff2a7f0b4ec8cab6f58fa47025259a Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 22 Jan 2016 08:11:46 -0500
|
||||
Subject: [PATCH] PNP: Add Haswell-ULT to Intel MCH size workaround
|
||||
|
||||
Add device ID 0x0a04 for Haswell-ULT to the list of devices with MCH
|
||||
problems.
|
||||
|
||||
From a Lenovo ThinkPad T440S:
|
||||
[ 0.188604] pnp: PnP ACPI init
|
||||
[ 0.189044] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved
|
||||
[ 0.189048] system 00:00: [mem 0x000c0000-0x000c3fff] could not be reserved
|
||||
[ 0.189050] system 00:00: [mem 0x000c4000-0x000c7fff] could not be reserved
|
||||
[ 0.189052] system 00:00: [mem 0x000c8000-0x000cbfff] could not be reserved
|
||||
[ 0.189054] system 00:00: [mem 0x000cc000-0x000cffff] could not be reserved
|
||||
[ 0.189056] system 00:00: [mem 0x000d0000-0x000d3fff] has been reserved
|
||||
[ 0.189058] system 00:00: [mem 0x000d4000-0x000d7fff] has been reserved
|
||||
[ 0.189060] system 00:00: [mem 0x000d8000-0x000dbfff] has been reserved
|
||||
[ 0.189061] system 00:00: [mem 0x000dc000-0x000dffff] has been reserved
|
||||
[ 0.189063] system 00:00: [mem 0x000e0000-0x000e3fff] could not be reserved
|
||||
[ 0.189065] system 00:00: [mem 0x000e4000-0x000e7fff] could not be reserved
|
||||
[ 0.189067] system 00:00: [mem 0x000e8000-0x000ebfff] could not be reserved
|
||||
[ 0.189069] system 00:00: [mem 0x000ec000-0x000effff] could not be reserved
|
||||
[ 0.189071] system 00:00: [mem 0x000f0000-0x000fffff] could not be reserved
|
||||
[ 0.189073] system 00:00: [mem 0x00100000-0xdf9fffff] could not be reserved
|
||||
[ 0.189075] system 00:00: [mem 0xfec00000-0xfed3ffff] could not be reserved
|
||||
[ 0.189078] system 00:00: [mem 0xfed4c000-0xffffffff] could not be reserved
|
||||
[ 0.189082] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
|
||||
[ 0.189216] system 00:01: [io 0x1800-0x189f] could not be reserved
|
||||
[ 0.189220] system 00:01: [io 0x0800-0x087f] has been reserved
|
||||
[ 0.189222] system 00:01: [io 0x0880-0x08ff] has been reserved
|
||||
[ 0.189224] system 00:01: [io 0x0900-0x097f] has been reserved
|
||||
[ 0.189226] system 00:01: [io 0x0980-0x09ff] has been reserved
|
||||
[ 0.189229] system 00:01: [io 0x0a00-0x0a7f] has been reserved
|
||||
[ 0.189231] system 00:01: [io 0x0a80-0x0aff] has been reserved
|
||||
[ 0.189233] system 00:01: [io 0x0b00-0x0b7f] has been reserved
|
||||
[ 0.189235] system 00:01: [io 0x0b80-0x0bff] has been reserved
|
||||
[ 0.189238] system 00:01: [io 0x15e0-0x15ef] has been reserved
|
||||
[ 0.189240] system 00:01: [io 0x1600-0x167f] has been reserved
|
||||
[ 0.189242] system 00:01: [io 0x1640-0x165f] has been reserved
|
||||
[ 0.189246] system 00:01: [mem 0xf8000000-0xfbffffff] could not be reserved
|
||||
[ 0.189249] system 00:01: [mem 0x00000000-0x00000fff] could not be reserved
|
||||
[ 0.189251] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
|
||||
[ 0.189254] system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved
|
||||
[ 0.189256] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
|
||||
[ 0.189258] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
|
||||
[ 0.189261] system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved
|
||||
[ 0.189264] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)
|
||||
[....]
|
||||
[ 0.583653] resource sanity check: requesting [mem 0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem 0xfed10000-0xfed13fff]
|
||||
[ 0.583654] ------------[ cut here ]------------
|
||||
[ 0.583660] WARNING: CPU: 0 PID: 1 at arch/x86/mm/ioremap.c:198 __ioremap_caller+0x2c5/0x380()
|
||||
[ 0.583661] Info: mapping multiple BARs. Your kernel is fine.
|
||||
[ 0.583662] Modules linked in:
|
||||
|
||||
[ 0.583666] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.3.3-303.fc23.x86_64 #1
|
||||
[ 0.583668] Hardware name: LENOVO 20AR001GXS/20AR001GXS, BIOS GJET86WW (2.36 ) 12/04/2015
|
||||
[ 0.583670] 0000000000000000 0000000014cf7e59 ffff880214a1baf8 ffffffff813a625f
|
||||
[ 0.583673] ffff880214a1bb40 ffff880214a1bb30 ffffffff810a07c2 00000000fed10000
|
||||
[ 0.583675] ffffc90000cb8000 0000000000006000 0000000000000000 ffff8800d6381040
|
||||
[ 0.583678] Call Trace:
|
||||
[ 0.583683] [<ffffffff813a625f>] dump_stack+0x44/0x55
|
||||
[ 0.583686] [<ffffffff810a07c2>] warn_slowpath_common+0x82/0xc0
|
||||
[ 0.583688] [<ffffffff810a085c>] warn_slowpath_fmt+0x5c/0x80
|
||||
[ 0.583692] [<ffffffff810a6fba>] ? iomem_map_sanity_check+0xba/0xd0
|
||||
[ 0.583695] [<ffffffff81065835>] __ioremap_caller+0x2c5/0x380
|
||||
[ 0.583698] [<ffffffff81065907>] ioremap_nocache+0x17/0x20
|
||||
[ 0.583701] [<ffffffff8103a119>] snb_uncore_imc_init_box+0x79/0xb0
|
||||
[ 0.583705] [<ffffffff81038900>] uncore_pci_probe+0xd0/0x1b0
|
||||
[ 0.583707] [<ffffffff813efda5>] local_pci_probe+0x45/0xa0
|
||||
[ 0.583710] [<ffffffff813f118d>] pci_device_probe+0xfd/0x140
|
||||
[ 0.583713] [<ffffffff814d9b52>] driver_probe_device+0x222/0x480
|
||||
[ 0.583715] [<ffffffff814d9e34>] __driver_attach+0x84/0x90
|
||||
[ 0.583717] [<ffffffff814d9db0>] ? driver_probe_device+0x480/0x480
|
||||
[ 0.583720] [<ffffffff814d762c>] bus_for_each_dev+0x6c/0xc0
|
||||
[ 0.583722] [<ffffffff814d930e>] driver_attach+0x1e/0x20
|
||||
[ 0.583724] [<ffffffff814d8e4b>] bus_add_driver+0x1eb/0x280
|
||||
[ 0.583727] [<ffffffff81d6af1a>] ? uncore_cpu_setup+0x12/0x12
|
||||
[ 0.583729] [<ffffffff814da680>] driver_register+0x60/0xe0
|
||||
[ 0.583733] [<ffffffff813ef78c>] __pci_register_driver+0x4c/0x50
|
||||
[ 0.583736] [<ffffffff81d6affc>] intel_uncore_init+0xe2/0x2e6
|
||||
[ 0.583738] [<ffffffff81d6af1a>] ? uncore_cpu_setup+0x12/0x12
|
||||
[ 0.583741] [<ffffffff81002123>] do_one_initcall+0xb3/0x200
|
||||
[ 0.583745] [<ffffffff810be500>] ? parse_args+0x1a0/0x4a0
|
||||
[ 0.583749] [<ffffffff81d5c1c8>] kernel_init_freeable+0x189/0x223
|
||||
[ 0.583752] [<ffffffff81775c40>] ? rest_init+0x80/0x80
|
||||
[ 0.583754] [<ffffffff81775c4e>] kernel_init+0xe/0xe0
|
||||
[ 0.583758] [<ffffffff81781adf>] ret_from_fork+0x3f/0x70
|
||||
[ 0.583760] [<ffffffff81775c40>] ? rest_init+0x80/0x80
|
||||
[ 0.583765] ---[ end trace 077c426a39e018aa ]---
|
||||
|
||||
00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 0b)
|
||||
Subsystem: Lenovo Device [17aa:220c]
|
||||
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
|
||||
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
|
||||
Latency: 0
|
||||
Capabilities: <access denied>
|
||||
Kernel driver in use: hsw_uncore
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
drivers/pnp/quirks.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
|
||||
index f700723ca5d6..d28e3ab9479c 100644
|
||||
--- a/drivers/pnp/quirks.c
|
||||
+++ b/drivers/pnp/quirks.c
|
||||
@@ -342,6 +342,7 @@ static void quirk_amd_mmconfig_area(struct pnp_dev *dev)
|
||||
/* Device IDs of parts that have 32KB MCH space */
|
||||
static const unsigned int mch_quirk_devices[] = {
|
||||
0x0154, /* Ivy Bridge */
|
||||
+ 0x0a04, /* Haswell-ULT */
|
||||
0x0c00, /* Haswell */
|
||||
0x1604, /* Broadwell */
|
||||
};
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From 0383ff3ba89d3e6c604138e3ba46685621d71f98 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Mon, 14 Mar 2016 10:02:51 -0400
|
||||
Subject: [PATCH] USB: input: powermate: fix oops with malicious USB
|
||||
descriptors
|
||||
|
||||
The powermate driver expects at least one valid USB endpoint in its
|
||||
probe function. If given malicious descriptors that specify 0 for
|
||||
the number of endpoints, it will crash. Validate the number of
|
||||
endpoints on the interface before using them.
|
||||
|
||||
The full report for this issue can be found here:
|
||||
http://seclists.org/bugtraq/2016/Mar/85
|
||||
|
||||
Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
drivers/input/misc/powermate.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/input/misc/powermate.c b/drivers/input/misc/powermate.c
|
||||
index 63b539d3daba..84909a12ff36 100644
|
||||
--- a/drivers/input/misc/powermate.c
|
||||
+++ b/drivers/input/misc/powermate.c
|
||||
@@ -307,6 +307,9 @@ static int powermate_probe(struct usb_interface *intf, const struct usb_device_i
|
||||
int error = -ENOMEM;
|
||||
|
||||
interface = intf->cur_altsetting;
|
||||
+ if (interface->desc.bNumEndpoints < 1)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
endpoint = &interface->endpoint[0].desc;
|
||||
if (!usb_endpoint_is_int_in(endpoint))
|
||||
return -EIO;
|
||||
--
|
||||
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,59 +0,0 @@
|
|||
From 94c78c81df3056e573fb84000a32512e9c16e555 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Thu, 10 Mar 2016 08:49:02 -0500
|
||||
Subject: [PATCH] USB: serial: ftdi_sio: Add support for ICP DAS I-756xU
|
||||
devices
|
||||
|
||||
A Fedora user reports that the ftdi_sio driver works properly for the
|
||||
ICP DAS I-7561U device. Further, the user manual for these devices
|
||||
instructs users to load the driver and add the ids using the sysfs
|
||||
interface.
|
||||
|
||||
Add support for these in the driver directly so that the devices work
|
||||
out of the box instead of needing manual configuration.
|
||||
|
||||
Reported-by: <thesource@mail.ru>
|
||||
CC: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
drivers/usb/serial/ftdi_sio.c | 4 ++++
|
||||
drivers/usb/serial/ftdi_sio_ids.h | 8 ++++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
|
||||
index 8c660ae401d8..b61f12160d37 100644
|
||||
--- a/drivers/usb/serial/ftdi_sio.c
|
||||
+++ b/drivers/usb/serial/ftdi_sio.c
|
||||
@@ -1004,6 +1004,10 @@ static const struct usb_device_id id_table_combined[] = {
|
||||
{ USB_DEVICE(FTDI_VID, CHETCO_SEASMART_DISPLAY_PID) },
|
||||
{ USB_DEVICE(FTDI_VID, CHETCO_SEASMART_LITE_PID) },
|
||||
{ USB_DEVICE(FTDI_VID, CHETCO_SEASMART_ANALOG_PID) },
|
||||
+ /* ICP DAS I-756xU devices */
|
||||
+ { USB_DEVICE(ICPDAS_VID, ICPDAS_I7560U_PID) },
|
||||
+ { USB_DEVICE(ICPDAS_VID, ICPDAS_I7561U_PID) },
|
||||
+ { USB_DEVICE(ICPDAS_VID, ICPDAS_I7563U_PID) },
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
|
||||
index a84df2513994..a4ec24ce6a11 100644
|
||||
--- a/drivers/usb/serial/ftdi_sio_ids.h
|
||||
+++ b/drivers/usb/serial/ftdi_sio_ids.h
|
||||
@@ -872,6 +872,14 @@
|
||||
#define NOVITUS_BONO_E_PID 0x6010
|
||||
|
||||
/*
|
||||
+ * ICPDAS I-756*U devices
|
||||
+ */
|
||||
+#define ICPDAS_VID 0x1b5c
|
||||
+#define ICPDAS_I7560U_PID 0x0103
|
||||
+#define ICPDAS_I7561U_PID 0x0104
|
||||
+#define ICPDAS_I7563U_PID 0x0105
|
||||
+
|
||||
+/*
|
||||
* RT Systems programming cables for various ham radios
|
||||
*/
|
||||
#define RTSYSTEMS_VID 0x2100 /* Vendor ID */
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
From 7adc5cbc25dcc47dc3856108d9823d08da75da9d Mon Sep 17 00:00:00 2001
|
||||
From: Kangjie Lu <kangjielu@gmail.com>
|
||||
Date: Tue, 3 May 2016 16:32:16 -0400
|
||||
Subject: [PATCH] USB: usbfs: fix potential infoleak in devio
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The stack object “ci” has a total size of 8 bytes. Its last 3 bytes
|
||||
are padding bytes which are not initialized and leaked to userland
|
||||
via “copy_to_user”.
|
||||
|
||||
Signed-off-by: Kangjie Lu <kjlu@gatech.edu>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/usb/core/devio.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
|
||||
index 52c4461dfccd..9b7f1f75e887 100644
|
||||
--- a/drivers/usb/core/devio.c
|
||||
+++ b/drivers/usb/core/devio.c
|
||||
@@ -1316,10 +1316,11 @@ static int proc_getdriver(struct usb_dev_state *ps, void __user *arg)
|
||||
|
||||
static int proc_connectinfo(struct usb_dev_state *ps, void __user *arg)
|
||||
{
|
||||
- struct usbdevfs_connectinfo ci = {
|
||||
- .devnum = ps->dev->devnum,
|
||||
- .slow = ps->dev->speed == USB_SPEED_LOW
|
||||
- };
|
||||
+ struct usbdevfs_connectinfo ci;
|
||||
+
|
||||
+ memset(&ci, 0, sizeof(ci));
|
||||
+ ci.devnum = ps->dev->devnum;
|
||||
+ ci.slow = ps->dev->speed == USB_SPEED_LOW;
|
||||
|
||||
if (copy_to_user(arg, &ci, sizeof(ci)))
|
||||
return -EFAULT;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
From 221255aee67ec1c752001080aafec0c4e9390d95 Mon Sep 17 00:00:00 2001
|
||||
From: Hannes Reinecke <hare@suse.de>
|
||||
Date: Tue, 1 Dec 2015 10:16:42 +0100
|
||||
Subject: scsi: ignore errors from scsi_dh_add_device()
|
||||
|
||||
device handler initialisation might fail due to a number of
|
||||
reasons. But as device_handlers are optional this shouldn't
|
||||
cause us to disable the device entirely.
|
||||
So just ignore errors from scsi_dh_add_device().
|
||||
|
||||
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
---
|
||||
drivers/scsi/scsi_sysfs.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
|
||||
index fc3cd26..d015374 100644
|
||||
--- a/drivers/scsi/scsi_sysfs.c
|
||||
+++ b/drivers/scsi/scsi_sysfs.c
|
||||
@@ -1120,11 +1120,12 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
|
||||
}
|
||||
|
||||
error = scsi_dh_add_device(sdev);
|
||||
- if (error) {
|
||||
+ if (error)
|
||||
+ /*
|
||||
+ * device_handler is optional, so any error can be ignored
|
||||
+ */
|
||||
sdev_printk(KERN_INFO, sdev,
|
||||
"failed to add device handler: %d\n", error);
|
||||
- return error;
|
||||
- }
|
||||
|
||||
device_enable_async_suspend(&sdev->sdev_dev);
|
||||
error = device_add(&sdev->sdev_dev);
|
||||
--
|
||||
cgit v0.11.2
|
||||
|
|
@ -0,0 +1,227 @@
|
|||
From c18d8f5095715c56bb3cd9cba64242542632054b Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Wed, 16 Mar 2016 13:33:34 -0500
|
||||
Subject: rtlwifi: rtl8723be: Add antenna select module parameter
|
||||
|
||||
A number of new laptops have been delivered with only a single antenna.
|
||||
In principle, this is OK; however, a problem arises when the on-board
|
||||
EEPROM is programmed to use the other antenna connection. The option
|
||||
of opening the computer and moving the connector is not always possible
|
||||
as it will void the warranty in some cases. In addition, this solution
|
||||
breaks the Windows driver when the box dual boots Linux and Windows.
|
||||
|
||||
A fix involving a new module parameter has been developed. This commit
|
||||
adds the new parameter and implements the changes needed for the driver.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Cc: Stable <stable@vger.kernel.org> [V4.0+]
|
||||
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 5 +++++
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 3 +++
|
||||
drivers/net/wireless/realtek/rtlwifi/wifi.h | 3 +++
|
||||
3 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
index c983d2f..5a3df91 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
@@ -2684,6 +2684,7 @@ void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw,
|
||||
bool auto_load_fail, u8 *hwinfo)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
+ struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params;
|
||||
u8 value;
|
||||
u32 tmpu_32;
|
||||
|
||||
@@ -2702,6 +2703,10 @@ void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw,
|
||||
rtlpriv->btcoexist.btc_info.ant_num = ANT_X2;
|
||||
}
|
||||
|
||||
+ /* override ant_num / ant_path */
|
||||
+ if (mod_params->ant_sel)
|
||||
+ rtlpriv->btcoexist.btc_info.ant_num =
|
||||
+ (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1);
|
||||
}
|
||||
|
||||
void rtl8723be_bt_reg_init(struct ieee80211_hw *hw)
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
index a78eaed..2101793 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
@@ -273,6 +273,7 @@ static struct rtl_mod_params rtl8723be_mod_params = {
|
||||
.msi_support = false,
|
||||
.disable_watchdog = false,
|
||||
.debug = DBG_EMERG,
|
||||
+ .ant_sel = 0,
|
||||
};
|
||||
|
||||
static struct rtl_hal_cfg rtl8723be_hal_cfg = {
|
||||
@@ -394,6 +395,7 @@ module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444);
|
||||
module_param_named(msi, rtl8723be_mod_params.msi_support, bool, 0444);
|
||||
module_param_named(disable_watchdog, rtl8723be_mod_params.disable_watchdog,
|
||||
bool, 0444);
|
||||
+module_param_named(ant_sel, rtl8723be_mod_params.ant_sel, int, 0444);
|
||||
MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n");
|
||||
MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n");
|
||||
MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n");
|
||||
@@ -402,6 +404,7 @@ MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 0)\n");
|
||||
MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
|
||||
MODULE_PARM_DESC(disable_watchdog,
|
||||
"Set to 1 to disable the watchdog (default 0)\n");
|
||||
+MODULE_PARM_DESC(ant_sel, "Set to 1 or 2 to force antenna number (default 0)\n");
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
index 554d814..93bd7fc 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
@@ -2246,6 +2246,9 @@ struct rtl_mod_params {
|
||||
|
||||
/* default 0: 1 means do not disable interrupts */
|
||||
bool int_clear;
|
||||
+
|
||||
+ /* select antenna */
|
||||
+ int ant_sel;
|
||||
};
|
||||
|
||||
struct rtl_hal_usbint_cfg {
|
||||
--
|
||||
cgit v0.12
|
||||
|
||||
From baa1702290953295e421f0f433e2b1ff4815827c Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Wed, 16 Mar 2016 13:33:35 -0500
|
||||
Subject: rtlwifi: btcoexist: Implement antenna selection
|
||||
|
||||
The previous patch added an option to rtl8723be to manually select the
|
||||
antenna for those cases when only a single antenna is present, and the
|
||||
on-board EEPROM is incorrectly programmed. This patch implements the
|
||||
necessary changes in the Bluetooth coexistence driver.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Cc: Stable <stable@vger.kernel.org> [V4.0+]
|
||||
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
||||
---
|
||||
.../realtek/rtlwifi/btcoexist/halbtc8723b2ant.c | 9 ++++++--
|
||||
.../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 27 +++++++++++++++++++++-
|
||||
.../realtek/rtlwifi/btcoexist/halbtcoutsrc.h | 2 +-
|
||||
.../wireless/realtek/rtlwifi/btcoexist/rtl_btc.c | 5 +++-
|
||||
4 files changed, 38 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
|
||||
index c43ab59..77cbd10 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c
|
||||
@@ -1203,7 +1203,6 @@ static void btc8723b2ant_set_ant_path(struct btc_coexist *btcoexist,
|
||||
|
||||
/* Force GNT_BT to low */
|
||||
btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x0);
|
||||
- btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0);
|
||||
|
||||
if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) {
|
||||
/* tell firmware "no antenna inverse" */
|
||||
@@ -1211,19 +1210,25 @@ static void btc8723b2ant_set_ant_path(struct btc_coexist *btcoexist,
|
||||
h2c_parameter[1] = 1; /* ext switch type */
|
||||
btcoexist->btc_fill_h2c(btcoexist, 0x65, 2,
|
||||
h2c_parameter);
|
||||
+ btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0);
|
||||
} else {
|
||||
/* tell firmware "antenna inverse" */
|
||||
h2c_parameter[0] = 1;
|
||||
h2c_parameter[1] = 1; /* ext switch type */
|
||||
btcoexist->btc_fill_h2c(btcoexist, 0x65, 2,
|
||||
h2c_parameter);
|
||||
+ btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280);
|
||||
}
|
||||
}
|
||||
|
||||
/* ext switch setting */
|
||||
if (use_ext_switch) {
|
||||
/* fixed internal switch S1->WiFi, S0->BT */
|
||||
- btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0);
|
||||
+ if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT)
|
||||
+ btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0);
|
||||
+ else
|
||||
+ btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280);
|
||||
+
|
||||
switch (antpos_type) {
|
||||
case BTC_ANT_WIFI_AT_MAIN:
|
||||
/* ext switch main at wifi */
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
|
||||
index b2791c8..babd149 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
|
||||
@@ -965,13 +965,38 @@ void exhalbtc_set_chip_type(u8 chip_type)
|
||||
}
|
||||
}
|
||||
|
||||
-void exhalbtc_set_ant_num(u8 type, u8 ant_num)
|
||||
+void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num)
|
||||
{
|
||||
if (BT_COEX_ANT_TYPE_PG == type) {
|
||||
gl_bt_coexist.board_info.pg_ant_num = ant_num;
|
||||
gl_bt_coexist.board_info.btdm_ant_num = ant_num;
|
||||
+ /* The antenna position:
|
||||
+ * Main (default) or Aux for pgAntNum=2 && btdmAntNum =1.
|
||||
+ * The antenna position should be determined by
|
||||
+ * auto-detect mechanism.
|
||||
+ * The following is assumed to main,
|
||||
+ * and those must be modified
|
||||
+ * if y auto-detect mechanism is ready
|
||||
+ */
|
||||
+ if ((gl_bt_coexist.board_info.pg_ant_num == 2) &&
|
||||
+ (gl_bt_coexist.board_info.btdm_ant_num == 1))
|
||||
+ gl_bt_coexist.board_info.btdm_ant_pos =
|
||||
+ BTC_ANTENNA_AT_MAIN_PORT;
|
||||
+ else
|
||||
+ gl_bt_coexist.board_info.btdm_ant_pos =
|
||||
+ BTC_ANTENNA_AT_MAIN_PORT;
|
||||
} else if (BT_COEX_ANT_TYPE_ANTDIV == type) {
|
||||
gl_bt_coexist.board_info.btdm_ant_num = ant_num;
|
||||
+ gl_bt_coexist.board_info.btdm_ant_pos =
|
||||
+ BTC_ANTENNA_AT_MAIN_PORT;
|
||||
+ } else if (type == BT_COEX_ANT_TYPE_DETECTED) {
|
||||
+ gl_bt_coexist.board_info.btdm_ant_num = ant_num;
|
||||
+ if (rtlpriv->cfg->mod_params->ant_sel == 1)
|
||||
+ gl_bt_coexist.board_info.btdm_ant_pos =
|
||||
+ BTC_ANTENNA_AT_AUX_PORT;
|
||||
+ else
|
||||
+ gl_bt_coexist.board_info.btdm_ant_pos =
|
||||
+ BTC_ANTENNA_AT_MAIN_PORT;
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
|
||||
index 0a903ea..f41ca57 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
|
||||
@@ -535,7 +535,7 @@ void exhalbtc_set_bt_patch_version(u16 bt_hci_version, u16 bt_patch_version);
|
||||
void exhalbtc_update_min_bt_rssi(char bt_rssi);
|
||||
void exhalbtc_set_bt_exist(bool bt_exist);
|
||||
void exhalbtc_set_chip_type(u8 chip_type);
|
||||
-void exhalbtc_set_ant_num(u8 type, u8 ant_num);
|
||||
+void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num);
|
||||
void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist);
|
||||
void exhalbtc_signal_compensation(struct btc_coexist *btcoexist,
|
||||
u8 *rssi_wifi, u8 *rssi_bt);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
|
||||
index b9b0cb7..d3fd921 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
|
||||
@@ -72,7 +72,10 @@ void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv)
|
||||
__func__, bt_type);
|
||||
exhalbtc_set_chip_type(bt_type);
|
||||
|
||||
- exhalbtc_set_ant_num(BT_COEX_ANT_TYPE_PG, ant_num);
|
||||
+ if (rtlpriv->cfg->mod_params->ant_sel == 1)
|
||||
+ exhalbtc_set_ant_num(rtlpriv, BT_COEX_ANT_TYPE_DETECTED, 1);
|
||||
+ else
|
||||
+ exhalbtc_set_ant_num(rtlpriv, BT_COEX_ANT_TYPE_PG, ant_num);
|
||||
}
|
||||
|
||||
void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv)
|
||||
--
|
||||
cgit v0.12
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
|
|
@ -17,10 +17,6 @@ CONFIG_CC_STACKPROTECTOR=y
|
|||
# CONFIG_BIG_LITTLE is not set
|
||||
# CONFIG_IWMMXT is not set
|
||||
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
|
||||
CONFIG_RESET_CONTROLLER=y
|
||||
CONFIG_RESET_GPIO=y
|
||||
|
||||
|
@ -55,6 +51,7 @@ CONFIG_ARM_GIC=y
|
|||
CONFIG_ARM_GIC_V2M=y
|
||||
CONFIG_ARM_GIC_V3=y
|
||||
CONFIG_ARM_GIC_V3_ITS=y
|
||||
# CONFIG_HISILICON_IRQ_MBIGEN is not set
|
||||
CONFIG_ARM_GLOBAL_TIMER=y
|
||||
CONFIG_ARM_SMMU=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
|
@ -78,6 +75,11 @@ CONFIG_CRYPTO_SHA1_ARM_NEON=y
|
|||
CONFIG_CRYPTO_SHA512_ARM_NEON=y
|
||||
CONFIG_CRYPTO_SHA512_ARM=y
|
||||
|
||||
# EDAC
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_MM_EDAC=m
|
||||
CONFIG_EDAC_LEGACY_SYSFS=y
|
||||
|
||||
# ARM VExpress
|
||||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_MFD_VEXPRESS_SYSREG=y
|
||||
|
@ -113,6 +115,7 @@ CONFIG_ROCKCHIP_IOMMU=y
|
|||
CONFIG_ROCKCHIP_THERMAL=m
|
||||
CONFIG_DRM_ROCKCHIP=m
|
||||
CONFIG_ROCKCHIP_DW_HDMI=m
|
||||
CONFIG_ROCKCHIP_DW_MIPI_DSI=y
|
||||
CONFIG_PHY_ROCKCHIP_USB=m
|
||||
CONFIG_DWMAC_ROCKCHIP=m
|
||||
CONFIG_SND_SOC_ROCKCHIP=m
|
||||
|
@ -122,10 +125,53 @@ CONFIG_SND_SOC_ROCKCHIP_RT5645=m
|
|||
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
|
||||
CONFIG_REGULATOR_ACT8865=m
|
||||
CONFIG_ROCKCHIP_PM_DOMAINS=y
|
||||
CONFIG_CRYPTO_DEV_ROCKCHIP=m
|
||||
CONFIG_ROCKCHIP_EFUSE=m
|
||||
|
||||
# Tegra
|
||||
# CONFIG_TEGRA_AHB is not set
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TEGRA_MC=y
|
||||
CONFIG_TEGRA124_EMC=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_TEGRA_AHB=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
CONFIG_TRUSTED_FOUNDATIONS=y
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
CONFIG_PCI_TEGRA=y
|
||||
CONFIG_AHCI_TEGRA=m
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
CONFIG_TEGRA_WATCHDOG=m
|
||||
CONFIG_I2C_TEGRA=m
|
||||
CONFIG_SPI_TEGRA114=m
|
||||
CONFIG_PWM_TEGRA=m
|
||||
CONFIG_KEYBOARD_TEGRA=m
|
||||
CONFIG_USB_EHCI_TEGRA=m
|
||||
CONFIG_RTC_DRV_TEGRA=m
|
||||
CONFIG_ARM_TEGRA_DEVFREQ=m
|
||||
CONFIG_ARM_TEGRA124_CPUFREQ=m
|
||||
CONFIG_TEGRA_SOCTHERM=m
|
||||
|
||||
CONFIG_TEGRA_HOST1X=m
|
||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||
CONFIG_DRM_TEGRA=m
|
||||
CONFIG_DRM_TEGRA_FBDEV=y
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
CONFIG_DRM_TEGRA_STAGING=y
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
|
||||
CONFIG_SND_HDA_TEGRA=m
|
||||
|
||||
# CONFIG_ARM_TEGRA20_CPUFREQ is not set
|
||||
# CONFIG_MFD_NVEC is not set
|
||||
|
||||
# Virt
|
||||
CONFIG_PARAVIRT=y
|
||||
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
|
||||
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
|
||||
# Power management / thermal / cpu scaling
|
||||
# CONFIG_ARM_CPUIDLE is not set
|
||||
|
@ -171,15 +217,100 @@ CONFIG_ARM_SCPI_PROTOCOL=m
|
|||
# NVMem
|
||||
CONFIG_NVMEM=m
|
||||
|
||||
# SPI
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_GPIO=m
|
||||
CONFIG_SPI_SPIDEV=m
|
||||
CONFIG_SPI_BITBANG=m
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
# CONFIG_SPI_CADENCE is not set
|
||||
# CONFIG_SPI_SUN4I is not set
|
||||
# CONFIG_SPI_SUN6I is not set
|
||||
# CONFIG_SPI_TEGRA20_SFLASH is not set
|
||||
# CONFIG_SPI_TEGRA20_SLINK is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
# CONFIG_PWM_FSL_FTM is not set
|
||||
|
||||
# USB
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_XHCI_PLATFORM=m
|
||||
CONFIG_USB_ULPI=y
|
||||
|
||||
# usb gadget
|
||||
CONFIG_USB_OTG=y
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
CONFIG_U_SERIAL_CONSOLE=y
|
||||
CONFIG_USB_MUSB_HDRC=m
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_DSPS=m
|
||||
# CONFIG_MUSB_PIO_ONLY is not set
|
||||
# CONFIG_USB_MUSB_TUSB6010 is not set
|
||||
# CONFIG_USB_MUSB_UX500 is not set
|
||||
CONFIG_USB_GPIO_VBUS=m
|
||||
CONFIG_USB_CONFIGFS=m
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
|
||||
CONFIG_USB_CONFIGFS_EEM=y
|
||||
CONFIG_USB_CONFIGFS_F_TCM=y
|
||||
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||
CONFIG_USB_CONFIGFS_NCM=y
|
||||
CONFIG_USB_CONFIGFS_OBEX=y
|
||||
# CONFIG_USB_CONFIGFS_RNDIS is not set
|
||||
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
|
||||
# CONFIG_USB_CONFIGFS_F_FS is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC2 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI is not set
|
||||
# CONFIG_USB_CONFIGFS_F_HID is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UVC is not set
|
||||
# CONFIG_USB_CONFIGFS_F_PRINTER is not set
|
||||
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
# CONFIG_USB_GADGET_XILINX is not set
|
||||
# CONFIG_USB_FUSB300 is not set
|
||||
# CONFIG_USB_FOTG210_UDC is not set
|
||||
# CONFIG_USB_R8A66597 is not set
|
||||
# CONFIG_USB_PXA27X is not set
|
||||
# CONFIG_USB_MV_UDC is not set
|
||||
# CONFIG_USB_MV_U3D is not set
|
||||
# CONFIG_USB_BDC_UDC is not set
|
||||
# CONFIG_USB_M66592 is not set
|
||||
# CONFIG_USB_AMD5536UDC is not set
|
||||
# CONFIG_USB_NET2272 is not set
|
||||
# CONFIG_USB_NET2280 is not set
|
||||
# CONFIG_USB_GOKU is not set
|
||||
# CONFIG_USB_EG20T is not set
|
||||
# CONFIG_USB_DUMMY_HCD is not set
|
||||
# CONFIG_USB_ZERO_HNPTEST is not set
|
||||
|
||||
# MMC/SD
|
||||
CONFIG_MMC_SPI=m
|
||||
CONFIG_MMC_SDHCI_OF_ARASAN=m
|
||||
|
||||
# LCD Panels
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
CONFIG_DRM_PANEL_LD9040=m
|
||||
CONFIG_DRM_PANEL_LG_LG4573=m
|
||||
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
|
||||
CONFIG_DRM_PANEL_S6E8AA0=m
|
||||
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
|
||||
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
|
||||
|
||||
# Designware (used by numerous devices)
|
||||
CONFIG_MMC_DW=m
|
||||
CONFIG_MMC_DW_PLTFM=m
|
||||
|
@ -200,6 +331,7 @@ CONFIG_USB_DWC2_PCI=m
|
|||
CONFIG_USB_DWC3=m
|
||||
CONFIG_USB_DWC3_DUAL_ROLE=y
|
||||
CONFIG_USB_DWC3_PCI=m
|
||||
CONFIG_USB_DWC3_OF_SIMPLE=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
CONFIG_USB_DWC3_ULPI=y
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
|
@ -214,10 +346,12 @@ CONFIG_EXTCON=m
|
|||
CONFIG_EXTCON_GPIO=m
|
||||
CONFIG_EXTCON_ADC_JACK=m
|
||||
CONFIG_EXTCON_USB_GPIO=m
|
||||
# CONFIG_EXTCON_MAX3355 is not set
|
||||
# CONFIG_EXTCON_SM5502 is not set
|
||||
# CONFIG_EXTCON_RT8973A is not set
|
||||
|
||||
# MTD
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
CONFIG_MTD_BLKDEVS=m
|
||||
CONFIG_MTD_BLOCK=m
|
||||
CONFIG_MTD_CFI=m
|
||||
|
@ -265,6 +399,7 @@ CONFIG_I2C_MUX_PINCTRL=m
|
|||
CONFIG_I2C_MUX_PCA9541=m
|
||||
CONFIG_I2C_MUX_PCA954x=m
|
||||
CONFIG_I2C_MUX_REG=m
|
||||
CONFIG_I2C_MV64XXX=m
|
||||
|
||||
# spi
|
||||
CONFIG_SPI_PL022=m
|
||||
|
@ -296,11 +431,6 @@ CONFIG_CMA_SIZE_SEL_MBYTES=y
|
|||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_CMA_AREAS=7
|
||||
|
||||
# EDAC
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_MM_EDAC=m
|
||||
CONFIG_EDAC_LEGACY_SYSFS=y
|
||||
|
||||
# VFIO
|
||||
CONFIG_VFIO_PLATFORM=m
|
||||
CONFIG_VFIO_AMBA=m
|
||||
|
@ -320,7 +450,6 @@ CONFIG_VFIO_AMBA=m
|
|||
# CONFIG_CADENCE_WATCHDOG is not set
|
||||
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
# CONFIG_SHMOBILE_IOMMU is not set
|
||||
|
||||
# CONFIG_COMMON_CLK_SI570 is not set
|
||||
|
|
48
config-arm64
48
config-arm64
|
@ -9,6 +9,8 @@ CONFIG_SCHED_SMT=y
|
|||
# arm64 only SoCs
|
||||
CONFIG_ARCH_HISI=y
|
||||
CONFIG_ARCH_SEATTLE=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_XGENE=y
|
||||
# CONFIG_ARCH_BCM_IPROC is not set
|
||||
# CONFIG_ARCH_BERLIN is not set
|
||||
|
@ -17,11 +19,12 @@ CONFIG_ARCH_XGENE=y
|
|||
# CONFIG_ARCH_LAYERSCAPE is not set
|
||||
# CONFIG_ARCH_MEDIATEK is not set
|
||||
# CONFIG_ARCH_QCOM is not set
|
||||
# CONFIG_ARCH_RENESAS is not set
|
||||
# CONFIG_ARCH_SPRD is not set
|
||||
# CONFIG_ARCH_STRATIX10 is not set
|
||||
# CONFIG_ARCH_TEGRA is not set
|
||||
# CONFIG_ARCH_THUNDER is not set
|
||||
# CONFIG_ARCH_ZYNQMP is not set
|
||||
# CONFIG_ARCH_UNIPHIER is not set
|
||||
|
||||
# Erratum
|
||||
CONFIG_ARM64_ERRATUM_826319=y
|
||||
|
@ -73,11 +76,6 @@ CONFIG_SPARSEMEM_VMEMMAP=y
|
|||
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
CONFIG_ACPI=y
|
||||
|
@ -117,7 +115,7 @@ CONFIG_POWER_RESET_XGENE=y
|
|||
CONFIG_COMMON_CLK_XGENE=y
|
||||
CONFIG_AHCI_XGENE=y
|
||||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_NET_XGENE=y
|
||||
CONFIG_NET_XGENE=m
|
||||
CONFIG_RTC_DRV_XGENE=m
|
||||
CONFIG_HW_RANDOM_XGENE=m
|
||||
CONFIG_GPIO_XGENE=y
|
||||
|
@ -132,15 +130,45 @@ CONFIG_I2C_XGENE_SLIMPRO=m
|
|||
CONFIG_NET_SB1000=y
|
||||
CONFIG_AMD_XGBE=m
|
||||
CONFIG_AMD_XGBE_PHY=m
|
||||
# CONFIG_AMD_XGBE_DCB is not set
|
||||
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
|
||||
CONFIG_AMD_XGBE_DCB=y
|
||||
CONFIG_VFIO_PLATFORM_AMDXGBE_RESET=m
|
||||
CONFIG_PINCTRL_AMD=y
|
||||
|
||||
# HiSilicon
|
||||
CONFIG_HISILICON_IRQ_MBIGEN=y
|
||||
CONFIG_COMMON_CLK_HI6220=y
|
||||
CONFIG_PCI_HISI=y
|
||||
CONFIG_POWER_RESET_HISI=y
|
||||
CONFIG_HISI_THERMAL=m
|
||||
CONFIG_STUB_CLK_HI6220=y
|
||||
CONFIG_PCI_HISI=y
|
||||
CONFIG_MFD_HI655X_PMIC=m
|
||||
CONFIG_REGULATOR_HI655X=m
|
||||
CONFIG_PHY_HI6220_USB=m
|
||||
CONFIG_COMMON_RESET_HI6220=m
|
||||
|
||||
# Tegra
|
||||
CONFIG_ARCH_TEGRA_132_SOC=y
|
||||
CONFIG_ARCH_TEGRA_210_SOC=y
|
||||
|
||||
# AllWinner
|
||||
CONFIG_MACH_SUN50I=y
|
||||
CONFIG_SUNXI_RSB=m
|
||||
CONFIG_AHCI_SUNXI=m
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
# CONFIG_SUN4I_EMAC is not set
|
||||
# CONFIG_MDIO_SUN4I is not set
|
||||
# CONFIG_KEYBOARD_SUN4I_LRADC is not set
|
||||
# CONFIG_TOUCHSCREEN_SUN4I is not set
|
||||
# CONFIG_SERIO_SUN4I_PS2 is not set
|
||||
CONFIG_SUNXI_WATCHDOG=m
|
||||
CONFIG_MFD_SUN6I_PRCM=y
|
||||
CONFIG_IR_SUNXI=m
|
||||
CONFIG_MMC_SUNXI=m
|
||||
CONFIG_RTC_DRV_SUN6I=m
|
||||
CONFIG_PWM_SUN4I=m
|
||||
# CONFIG_PHY_SUN4I_USB is not set
|
||||
# CONFIG_PHY_SUN9I_USB is not set
|
||||
CONFIG_NVMEM_SUNXI_SID=m
|
||||
|
||||
# ThunderX
|
||||
# CONFIG_MDIO_OCTEON is not set
|
||||
|
|
85
config-armv7
85
config-armv7
|
@ -3,11 +3,11 @@
|
|||
# CONFIG_ARCH_BERLIN is not set
|
||||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
CONFIG_ARCH_MXC=y
|
||||
CONFIG_ARCH_MMP=y
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_ARCH_QCOM=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_U8500=y
|
||||
CONFIG_ARCH_ZYNQ=y
|
||||
|
||||
# These are supported in the LPAE kernel
|
||||
|
@ -106,12 +106,8 @@ CONFIG_RTC_DRV_PALMAS=m
|
|||
CONFIG_OMAP5_DSS_HDMI=y
|
||||
CONFIG_COMMON_CLK_PALMAS=m
|
||||
CONFIG_INPUT_PALMAS_PWRBUTTON=m
|
||||
CONFIG_PALMAS_GPADC=m
|
||||
|
||||
CONFIG_WL_TI=y
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WL18XX=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_MFD_WL1273_CORE=m
|
||||
CONFIG_NFC_WILINK=m
|
||||
|
||||
|
@ -143,6 +139,7 @@ CONFIG_PWM_TIECAP=m
|
|||
CONFIG_PWM_TIEHRPWM=m
|
||||
CONFIG_PWM_TWL=m
|
||||
CONFIG_PWM_TWL_LED=m
|
||||
CONFIG_PWM_OMAP_DMTIMER=m
|
||||
|
||||
CONFIG_CRYPTO_DEV_OMAP_SHAM=m
|
||||
CONFIG_CRYPTO_DEV_OMAP_AES=m
|
||||
|
@ -261,11 +258,12 @@ CONFIG_INPUT_TPS65218_PWRBUTTON=m
|
|||
CONFIG_VIDEO_AM437X_VPFE=m
|
||||
CONFIG_UIO_PRUSS=m
|
||||
CONFIG_WKUP_M3_RPROC=m
|
||||
CONFIG_WKUP_M3_IPC=m
|
||||
|
||||
# Builtin needed for BBone White
|
||||
CONFIG_MFD_TPS65217=y
|
||||
CONFIG_REGULATOR_TPS65217=y
|
||||
CONFOG_CHARGER_TPS65217=m
|
||||
CONFIG_CHARGER_TPS65217=m
|
||||
CONFIG_BACKLIGHT_TPS65217=m
|
||||
CONFIG_REGULATOR_TPS65217=m
|
||||
|
||||
|
@ -303,6 +301,8 @@ CONFIG_MSM_GCC_8960=m
|
|||
CONFIG_MSM_MMCC_8960=m
|
||||
CONFIG_MSM_GCC_8974=m
|
||||
CONFIG_MSM_MMCC_8974=m
|
||||
CONFIG_MSM_GCC_8996=m
|
||||
CONFIG_MSM_MMCC_8996=m
|
||||
CONFIG_HW_RANDOM_MSM=m
|
||||
CONFIG_I2C_QUP=m
|
||||
CONFIG_SPI_QUP=m
|
||||
|
@ -350,6 +350,10 @@ CONFIG_QCOM_SMEM=m
|
|||
CONFIG_REGULATOR_QCOM_SMD_RPM=m
|
||||
CONFIG_QCOM_SMEM=m
|
||||
CONFIG_QCOM_QFPROM=m
|
||||
CONFIG_QCOM_WCNSS_CTRL=m
|
||||
CONFIG_QCOM_SMSM=y
|
||||
CONFIG_QCOM_SMP2P=m
|
||||
CONFIG_PCIE_QCOM=y
|
||||
|
||||
# i.MX
|
||||
# CONFIG_MXC_DEBUG_BOARD is not set
|
||||
|
@ -377,7 +381,6 @@ CONFIG_USB_EHCI_MXC=m
|
|||
CONFIG_USB_CHIPIDEA=m
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
# CONFIG_USB_CHIPIDEA_DEBUG is not set
|
||||
CONFIG_USB_FSL_USB2=m
|
||||
CONFIG_NET_VENDOR_FREESCALE=y
|
||||
# CONFIG_GIANFAR is not set
|
||||
|
@ -467,8 +470,11 @@ CONFIG_DRM_IMX_IPUV3=m
|
|||
CONFIG_DRM_IMX_LDB=m
|
||||
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
|
||||
CONFIG_DRM_IMX_TVE=m
|
||||
CONFIG_DRM_ETNAVIV=m
|
||||
# CONFIG_DRM_ETNAVIV_REGISTER_LOGGING is not set
|
||||
CONFIG_VIDEO_CODA=m
|
||||
|
||||
CONFIG_IMX7D_ADC=m
|
||||
CONFIG_SENSORS_MC13783_ADC=m
|
||||
CONFIG_REGULATOR_ANATOP=m
|
||||
CONFIG_REGULATOR_MC13783=m
|
||||
|
@ -505,6 +511,24 @@ CONFIG_REGULATOR_DA9055=m
|
|||
# picoxcell
|
||||
# CONFIG_CRYPTO_DEV_PICOXCELL is not set
|
||||
|
||||
# MMP XO 1.75
|
||||
# CONFIG_MACH_BROWNSTONE is not set
|
||||
# CONFIG_MACH_FLINT is not set
|
||||
# CONFIG_MACH_MARVELL_JASPER is not set
|
||||
CONFIG_MACH_MMP2_DT=y
|
||||
CONFIG_SERIAL_PXA=y
|
||||
CONFIG_SERIAL_PXA_CONSOLE=y
|
||||
CONFIG_KEYBOARD_PXA27x=y
|
||||
CONFIG_I2C_PXA=m
|
||||
# CONFIG_I2C_PXA_SLAVE is not set
|
||||
CONFIG_SND_MMP_SOC=y
|
||||
CONFIG_SND_PXA910_SOC=m
|
||||
CONFIG_MMC_SDHCI_PXAV2=m
|
||||
CONFIG_MMP_PDMA=y
|
||||
CONFIG_MMP_TDMA=y
|
||||
CONFIG_PXA_DMA=y
|
||||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
# Exynos 4
|
||||
CONFIG_ARCH_EXYNOS4=y
|
||||
CONFIG_SOC_EXYNOS4212=y
|
||||
|
@ -514,46 +538,6 @@ CONFIG_AK8975=m
|
|||
CONFIG_CM36651=m
|
||||
CONFIG_KEYBOARD_SAMSUNG=m
|
||||
|
||||
# ST Ericsson
|
||||
CONFIG_MACH_HREFV60=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
|
||||
CONFIG_ABX500_CORE=y
|
||||
# CONFIG_ARM_U8500_CPUIDLE is not set
|
||||
CONFIG_UX500_DEBUG_UART=2
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_STE_DMA40=y
|
||||
CONFIG_HSEM_U8500=m
|
||||
CONFIG_PINCTRL_ABX500=y
|
||||
CONFIG_PINCTRL_AB8500=y
|
||||
CONFIG_I2C_NOMADIK=m
|
||||
CONFIG_KEYBOARD_NOMADIK=m
|
||||
CONFIG_DB8500_CPUFREQ_COOLING=m
|
||||
CONFIG_DB8500_THERMAL=y
|
||||
CONFIG_UX500_WATCHDOG=m
|
||||
CONFIG_AHCI_ST=m
|
||||
CONFIG_INPUT_AB8500_PONKEY=m
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_AB8500_USB=m
|
||||
CONFIG_USB_MUSB_UX500=m
|
||||
# CONFIG_USB_UX500_DMA is not set
|
||||
CONFIG_RTC_DRV_AB8500=m
|
||||
CONFIG_PWM_AB8500=m
|
||||
CONFIG_SND_SOC_UX500=m
|
||||
CONFIG_SND_SOC_UX500_PLAT_DMA=m
|
||||
CONFIG_SND_SOC_UX500_MACH_MOP500=m
|
||||
CONFIG_CLKSRC_DBX500_PRCMU=y
|
||||
CONFIG_CLKSRC_DBX500_PRCMU_SCHED_CLOCK=y
|
||||
CONFIG_CRYPTO_DEV_UX500=m
|
||||
CONFIG_CRYPTO_DEV_UX500_CRYP=m
|
||||
CONFIG_CRYPTO_DEV_UX500_HASH=m
|
||||
CONFIG_SENSORS_LIS3_I2C=m
|
||||
CONFIG_AB8500_BM=y
|
||||
CONFIG_AB8500_GPADC=y
|
||||
CONFIG_SENSORS_AB8500=m
|
||||
CONFIG_STE_MODEM_RPROC=m
|
||||
CONFIG_STIH415_RESET=y
|
||||
|
||||
# Allwinner
|
||||
CONFIG_MACH_SUN4I=y
|
||||
CONFIG_MACH_SUN5I=y
|
||||
|
@ -586,9 +570,6 @@ CONFIG_MFD_TPS6586X=y
|
|||
CONFIG_GPIO_TPS6586X=y
|
||||
CONFIG_RTC_DRV_TPS6586X=m
|
||||
|
||||
# OLPC XO
|
||||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
# Zynq-7xxx
|
||||
CONFIG_SERIAL_UARTLITE=y
|
||||
CONFIG_SERIAL_UARTLITE_CONSOLE=y
|
||||
|
@ -621,9 +602,9 @@ CONFIG_USB_GADGET_XILINX=m
|
|||
CONFIG_PCIE_XILINX=y
|
||||
CONFIG_CADENCE_WATCHDOG=m
|
||||
CONFIG_REGULATOR_ISL9305=m
|
||||
CONFIG_EDAC_SYNOPSYS=m
|
||||
CONFIG_PINCTRL_ZYNQ=y
|
||||
CONFIG_AXI_DMAC=m
|
||||
CONFIG_EDAC_SYNOPSYS=m
|
||||
|
||||
# Multi function devices
|
||||
CONFIG_MFD_88PM800=m
|
||||
|
|
|
@ -19,6 +19,7 @@ CONFIG_ARM_UNWIND=y
|
|||
CONFIG_ARM_THUMB=y
|
||||
CONFIG_ARM_THUMBEE=y
|
||||
CONFIG_ARM_ASM_UNIFIED=y
|
||||
CONFIG_ARM_PATCH_IDIV=y
|
||||
CONFIG_ARM_CPU_TOPOLOGY=y
|
||||
CONFIG_ARM_DMA_MEM_BUFFERABLE=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
|
@ -48,25 +49,37 @@ CONFIG_CPU_SW_DOMAIN_PAN=y
|
|||
# CONFIG_ARM_VIRT_EXT is not set
|
||||
|
||||
# Platforms enabled/disabled globally on ARMv7
|
||||
CONFIG_ARCH_BCM=y
|
||||
CONFIG_ARCH_BCM2835=y
|
||||
CONFIG_ARCH_EXYNOS=y
|
||||
CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
||||
CONFIG_ARCH_VIRT=y
|
||||
# CONFIG_ARCH_BCM is not set
|
||||
# CONFIG_ARCH_BCM_CYGNUS is not set
|
||||
# CONFIG_ARCH_BCM_NSP is not set
|
||||
# CONFIG_ARCH_BCM_5301X is not set
|
||||
# CONFIG_ARCH_BCM_281XX is not set
|
||||
# CONFIG_ARCH_BCM_21664 is not set
|
||||
# CONFIG_ARCH_BCM_63XX is not set
|
||||
# CONFIG_ARCH_BRCMSTB is not set
|
||||
# CONFIG_ARCH_BERLIN is not set
|
||||
# CONFIG_ARCH_HI3xxx is not set
|
||||
# CONFIG_ARCH_HISI is not set
|
||||
# CONFIG_ARCH_MEDIATEK is not set
|
||||
# CONFIG_ARCH_MESON is not set
|
||||
# CONFIG_ARCH_MMP is not set
|
||||
# CONFIG_ARCH_QCOM is not set
|
||||
# CONFIG_ARCH_REALVIEW is not set
|
||||
# CONFIG_ARCH_RENESAS is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
# CONFIG_ARCH_SIRF is not set
|
||||
# CONFIG_ARCH_SOCFPGA is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_STI is not set
|
||||
# CONFIG_ARCH_TANGO is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_VEXPRESS_SPC is not set
|
||||
# CONFIG_ARCH_WM8850 is not set
|
||||
|
@ -165,8 +178,6 @@ CONFIG_RTC_DRV_PL030=y
|
|||
CONFIG_AMBA_PL08X=y
|
||||
CONFIG_SND_ARMAACI=m
|
||||
|
||||
CONFIG_EDAC=y
|
||||
|
||||
# highbank
|
||||
CONFIG_EDAC_HIGHBANK_MC=m
|
||||
CONFIG_EDAC_HIGHBANK_L2=m
|
||||
|
@ -183,6 +194,7 @@ CONFIG_MACH_SUN6I=y
|
|||
CONFIG_MACH_SUN7I=y
|
||||
CONFIG_MACH_SUN8I=y
|
||||
# CONFIG_MACH_SUN9I is not set
|
||||
# CONFIG_MACH_SUN50I is not set
|
||||
CONFIG_SUNXI_SRAM=y
|
||||
CONFIG_DMA_SUN4I=m
|
||||
CONFIG_DMA_SUN6I=m
|
||||
|
@ -218,12 +230,32 @@ CONFIG_MTD_NAND_SUNXI=m
|
|||
CONFIG_SERIO_SUN4I_PS2=m
|
||||
CONFIG_KEYBOARD_SUN4I_LRADC=m
|
||||
CONFIG_PWM_SUN4I=m
|
||||
CONFIG_CAN_SUN4I=m
|
||||
CONFIG_USB_MUSB_SUNXI=m
|
||||
CONFIG_CRYPTO_DEV_SUN4I_SS=m
|
||||
CONFIG_SND_SUN4I_CODEC=m
|
||||
CONFIG_SUNXI_RSB=m
|
||||
CONFIG_NVMEM_SUNXI_SID=m
|
||||
|
||||
# BCM 283x
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_BCM2835AUX=y
|
||||
CONFIG_DMA_BCM2835=m
|
||||
# CONFIG_MMC_SDHCI_BCM2835 is not set
|
||||
CONFIG_MMC_SDHCI_IPROC=m
|
||||
CONFIG_BCM2835_MBOX=m
|
||||
CONFIG_PWM_BCM2835=m
|
||||
CONFIG_HW_RANDOM_BCM2835=m
|
||||
CONFIG_I2C_BCM2835=m
|
||||
CONFIG_SPI_BCM2835=m
|
||||
CONFIG_SPI_BCM2835AUX=m
|
||||
CONFIG_BCM2835_WDT=m
|
||||
CONFIG_SND_BCM2835_SOC_I2S=m
|
||||
CONFIG_DRM_VC4=m
|
||||
CONFIG_RASPBERRYPI_FIRMWARE=y
|
||||
CONFIG_RASPBERRYPI_POWER=y
|
||||
|
||||
# Exynos
|
||||
CONFIG_ARCH_EXYNOS3=y
|
||||
# CONFIG_ARCH_EXYNOS4 is not set
|
||||
|
@ -255,6 +287,7 @@ CONFIG_MMC_DW_EXYNOS=m
|
|||
# CONFIG_EXYNOS_IOMMU is not set
|
||||
CONFIG_PCI_EXYNOS=y
|
||||
CONFIG_PHY_EXYNOS5_USBDRD=m
|
||||
CONFIG_SAMSUNG_USBPHY=m
|
||||
CONFIG_PHY_SAMSUNG_USB2=m
|
||||
CONFIG_USB_EHCI_EXYNOS=m
|
||||
CONFIG_USB_OHCI_EXYNOS=m
|
||||
|
@ -294,9 +327,8 @@ CONFIG_DRM_EXYNOS_ROTATOR=y
|
|||
CONFIG_DRM_EXYNOS_VIDI=y
|
||||
CONFIG_DRM_EXYNOS_MIXER=y
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
# CONFIG_FB_S3C is not set
|
||||
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
# CONFIG_FB_S3C is not set
|
||||
CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS=y
|
||||
CONFIG_VIDEO_EXYNOS_FIMC_LITE=m
|
||||
CONFIG_VIDEO_EXYNOS4_FIMC_IS=m
|
||||
|
@ -340,45 +372,15 @@ CONFIG_EXTCON_MAX8997=m
|
|||
# Tegra
|
||||
CONFIG_ARCH_TEGRA_114_SOC=y
|
||||
CONFIG_ARCH_TEGRA_124_SOC=y
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TRUSTED_FOUNDATIONS=y
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
CONFIG_PCI_TEGRA=y
|
||||
CONFIG_AHCI_TEGRA=m
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
CONFIG_TEGRA_WATCHDOG=m
|
||||
CONFIG_I2C_TEGRA=m
|
||||
CONFIG_TEGRA_AHB=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
CONFIG_SPI_TEGRA114=m
|
||||
CONFIG_PWM_TEGRA=m
|
||||
CONFIG_KEYBOARD_TEGRA=m
|
||||
CONFIG_USB_EHCI_TEGRA=m
|
||||
CONFIG_RTC_DRV_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA_MAX98090=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5640=m
|
||||
CONFIG_SND_SOC_TEGRA30_AHUB=m
|
||||
CONFIG_SND_SOC_TEGRA30_I2S=m
|
||||
CONFIG_SND_SOC_TEGRA_MAX98090=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5640=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5677=m
|
||||
CONFIG_SND_HDA_TEGRA=m
|
||||
CONFIG_TEGRA_HOST1X=m
|
||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||
CONFIG_DRM_TEGRA=m
|
||||
CONFIG_DRM_TEGRA_FBDEV=y
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
CONFIG_DRM_TEGRA_STAGING=y
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
|
||||
CONFIG_AD525X_DPOT=m
|
||||
CONFIG_AD525X_DPOT_I2C=m
|
||||
CONFIG_AD525X_DPOT_SPI=m
|
||||
CONFIG_TEGRA_SOCTHERM=m
|
||||
CONFIG_TEGRA_MC=y
|
||||
CONFIG_TEGRA124_EMC=y
|
||||
CONFIG_ARM_TEGRA_DEVFREQ=m
|
||||
# CONFIG_ARM_TEGRA20_CPUFREQ is not set
|
||||
CONFIG_ARM_TEGRA124_CPUFREQ=m
|
||||
|
||||
# Jetson TK1
|
||||
CONFIG_PINCTRL_AS3722=y
|
||||
|
@ -453,11 +455,13 @@ CONFIG_DRM_PANEL_SIMPLE=m
|
|||
CONFIG_DRM_PANEL_LD9040=m
|
||||
CONFIG_DRM_PANEL_S6E8AA0=m
|
||||
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
|
||||
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
|
||||
CONFIG_DRM_PANEL_LG_LG4573=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
|
||||
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
|
||||
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
|
||||
CONFIG_DRM_DW_HDMI=m
|
||||
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
|
||||
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
|
||||
|
||||
# regmap
|
||||
CONFIG_REGMAP_SPI=m
|
||||
|
@ -465,62 +469,10 @@ CONFIG_REGMAP_SPMI=m
|
|||
CONFIG_REGMAP_MMIO=m
|
||||
CONFIG_REGMAP_IRQ=y
|
||||
|
||||
# usb
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_ULPI=y
|
||||
# usb net
|
||||
CONFIG_AX88796=m
|
||||
CONFIG_AX88796_93CX6=y
|
||||
|
||||
# usb gadget
|
||||
CONFIG_USB_OTG=y
|
||||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
CONFIG_USB_MUSB_HDRC=m
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_DSPS=m
|
||||
# CONFIG_MUSB_PIO_ONLY is not set
|
||||
# CONFIG_USB_MUSB_TUSB6010 is not set
|
||||
# CONFIG_USB_MUSB_UX500 is not set
|
||||
CONFIG_USB_GPIO_VBUS=m
|
||||
CONFIG_USB_CONFIGFS=m
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
CONFIG_USB_CONFIGFS_ECM_SUBSET=y
|
||||
CONFIG_USB_CONFIGFS_EEM=y
|
||||
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
|
||||
CONFIG_USB_CONFIGFS_NCM=y
|
||||
CONFIG_USB_CONFIGFS_OBEX=y
|
||||
# CONFIG_USB_CONFIGFS_RNDIS is not set
|
||||
CONFIG_USB_CONFIGFS_SERIAL=y
|
||||
# CONFIG_USB_CONFIGFS_F_LB_SS is not set
|
||||
# CONFIG_USB_CONFIGFS_F_FS is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC1 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UAC2 is not set
|
||||
# CONFIG_USB_CONFIGFS_F_MIDI is not set
|
||||
# CONFIG_USB_CONFIGFS_F_HID is not set
|
||||
# CONFIG_USB_CONFIGFS_F_UVC is not set
|
||||
# CONFIG_USB_CONFIGFS_F_PRINTER is not set
|
||||
|
||||
# CONFIG_USB_GADGET_DEBUG is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FILES is not set
|
||||
# CONFIG_USB_GADGET_DEBUG_FS is not set
|
||||
# CONFIG_USB_FUSB300 is not set
|
||||
# CONFIG_USB_FOTG210_UDC is not set
|
||||
# CONFIG_USB_R8A66597 is not set
|
||||
# CONFIG_USB_PXA27X is not set
|
||||
# CONFIG_USB_MV_UDC is not set
|
||||
# CONFIG_USB_MV_U3D is not set
|
||||
# CONFIG_USB_BDC_UDC is not set
|
||||
# CONFIG_USB_M66592 is not set
|
||||
# CONFIG_USB_AMD5536UDC is not set
|
||||
# CONFIG_USB_NET2272 is not set
|
||||
# CONFIG_USB_NET2280 is not set
|
||||
# CONFIG_USB_GOKU is not set
|
||||
# CONFIG_USB_EG20T is not set
|
||||
# CONFIG_USB_DUMMY_HCD is not set
|
||||
# CONFIG_USB_ZERO_HNPTEST is not set
|
||||
|
||||
# Multifunction Devices
|
||||
CONFIG_MFD_TPS65090=y
|
||||
CONFIG_MFD_TPS65910=y
|
||||
|
@ -552,6 +504,7 @@ CONFIG_MFD_TPS65912_SPI=y
|
|||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
# CONFIG_PINCTRL_MSM8960 is not set
|
||||
# CONFIG_PINCTRL_MSM8660 is not set
|
||||
# CONFIG_PINCTRL_MSM8996 is not set
|
||||
|
||||
# GPIO
|
||||
# CONFIG_GPIO_EM is not set
|
||||
|
@ -574,29 +527,6 @@ CONFIG_KEYBOARD_MATRIX=m
|
|||
# CONFIG_GPIO_RCAR is not set
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
|
||||
# SPI
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_GPIO=m
|
||||
CONFIG_SPI_SPIDEV=m
|
||||
CONFIG_SPI_ALTERA=m
|
||||
CONFIG_SPI_BITBANG=m
|
||||
CONFIG_SPI_BUTTERFLY=m
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
CONFIG_SPI_LM70_LLP=m
|
||||
CONFIG_SPI_OC_TINY=m
|
||||
CONFIG_SPI_SC18IS602=m
|
||||
CONFIG_SPI_TLE62X0=m
|
||||
CONFIG_SPI_XCOMM=m
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
# CONFIG_SPI_CADENCE is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
|
||||
CONFIG_NFC_NCI_SPI=y
|
||||
|
||||
# i2c
|
||||
CONFIG_I2C_MV64XXX=m
|
||||
|
||||
# HW crypto and rng
|
||||
# CONFIG_CRYPTO_SHA1_ARM_CE is not set
|
||||
# CONFIG_CRYPTO_SHA2_ARM_CE is not set
|
||||
|
@ -628,6 +558,7 @@ CONFIG_MTD_NAND_PXA3xx=m
|
|||
CONFIG_MTD_NAND_RICOH=m
|
||||
CONFIG_MTD_NAND_TMIO=m
|
||||
# CONFIG_MTD_NAND_BRCMNAND is not set
|
||||
# CONFIG_MTD_MT81xx_NOR is not set
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
|
||||
CONFIG_MTD_SPINAND_MT29F=m
|
||||
|
@ -682,6 +613,8 @@ CONFIG_REGULATOR_MAX8660=m
|
|||
CONFIG_REGULATOR_MAX8952=m
|
||||
CONFIG_REGULATOR_MAX8973=m
|
||||
CONFIG_REGULATOR_PFUZE100=m
|
||||
CONFIG_REGULATOR_PV88060=m
|
||||
CONFIG_REGULATOR_PV88090=m
|
||||
CONFIG_REGULATOR_TPS51632=m
|
||||
CONFIG_REGULATOR_TPS62360=m
|
||||
CONFIG_REGULATOR_TPS65023=m
|
||||
|
@ -732,7 +665,6 @@ CONFIG_SENSORS_LM70=m
|
|||
CONFIG_SENSORS_MAX1111=m
|
||||
CONFIG_MPL115=m
|
||||
CONFIG_MPL3115=m
|
||||
CONFIG_DHT11=m
|
||||
CONFIG_SI7005=m
|
||||
CONFIG_SI7020=m
|
||||
|
||||
|
@ -779,7 +711,6 @@ CONFIG_LIBERTAS_SPI=m
|
|||
CONFIG_P54_SPI=m
|
||||
CONFIG_P54_SPI_DEFAULT_EEPROM=n
|
||||
CONFIG_MICREL_KS8995MA=m
|
||||
CONFIG_IEEE802154_AT86RF230=m
|
||||
CONFIG_IEEE802154_MRF24J40=m
|
||||
|
||||
CONFIG_ARM_KPROBES_TEST=m
|
||||
|
@ -831,7 +762,6 @@ CONFIG_R8188EU=m
|
|||
# CONFIG_CAN_TI_HECC is not set
|
||||
# CONFIG_CAN_FLEXCAN is not set
|
||||
# CONFIG_CAN_RCAR is not set
|
||||
# CONFIG_CAN_MCP251X is not set
|
||||
|
||||
# Needs work/investigation
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
|
@ -865,7 +795,6 @@ CONFIG_R8188EU=m
|
|||
# CONFIG_SERIAL_BCM63XX is not set
|
||||
# CONFIG_SERIAL_STM32 is not set
|
||||
# CONFIG_FB_XILINX is not set
|
||||
# CONFIG_USB_GADGET_XILINX is not set
|
||||
# CONFIG_BRCMSTB_GISB_ARB is not set
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_FB_SAVAGE is not set
|
||||
|
@ -897,18 +826,18 @@ CONFIG_R8188EU=m
|
|||
# CONFIG_SND_SOC_APQ8016_SBC is not set
|
||||
# CONFIG_SND_SOC_TAS571X is not set
|
||||
|
||||
# Debug options. We need to deal with them at some point like x86
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
# CONFIG_DEBUG_PINCTRL is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_OMAP2_DSS_DEBUG is not set
|
||||
# CONFIG_CRYPTO_DEV_UX500_DEBUG is not set
|
||||
# CONFIG_AB8500_DEBUG is not set
|
||||
# CONFIG_ARM_KERNMEM_PERMS is not set
|
||||
|
||||
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
|
||||
|
||||
# Altera?
|
||||
# CONFIG_PCIE_ALTERA is not set
|
||||
|
||||
# Debug options. We need to deal with them at some point like x86
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_SERIAL_SAMSUNG_DEBUG is not set
|
||||
# CONFIG_OMAP2_DSS_DEBUG is not set
|
||||
# CONFIG_CRYPTO_DEV_UX500_DEBUG is not set
|
||||
# CONFIG_AB8500_DEBUG is not set
|
||||
# CONFIG_ARM_KERNMEM_PERMS is not set
|
||||
# CONFIG_DEBUG_LL is not set
|
||||
|
|
|
@ -71,7 +71,6 @@ CONFIG_GPIO_SYSCON=m
|
|||
# CONFIG_SPI_TEGRA20_SFLASH is not set
|
||||
# CONFIG_SPI_TEGRA20_SLINK is not set
|
||||
# CONFIG_MFD_MAX8907 is not set
|
||||
# CONFIG_MFD_NVEC is not set
|
||||
# CONFIG_SND_SOC_TEGRA_ALC5632 is not set
|
||||
# CONFIG_SND_SOC_TEGRA_TRIMSLICE is not set
|
||||
# CONFIG_SND_SOC_TEGRA_WM8753 is not set
|
||||
|
@ -80,4 +79,5 @@ CONFIG_GPIO_SYSCON=m
|
|||
# CONFIG_SND_SOC_TEGRA20_AC97 is not set
|
||||
# CONFIG_SND_SOC_TEGRA20_DAS is not set
|
||||
# CONFIG_SND_SOC_TEGRA20_SPDIF is not set
|
||||
# CONFIG_SND_SOC_TEGRA_RT5677 is not set
|
||||
# CONFIG_DRM_OMAP is not set
|
||||
# CONFIG_AM335X_PHY_USB is not set
|
||||
|
|
|
@ -112,6 +112,8 @@ CONFIG_DETECT_HUNG_TASK=y
|
|||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
|
||||
CONFIG_WQ_WATCHDOG=y
|
||||
|
||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
||||
|
||||
CONFIG_DEBUG_KMEMLEAK=y
|
||||
|
@ -126,3 +128,5 @@ CONFIG_EDAC_DEBUG=y
|
|||
CONFIG_SPI_DEBUG=y
|
||||
|
||||
CONFIG_X86_DEBUG_STATIC_CPU_HAS=y
|
||||
|
||||
CONFIG_DEBUG_VM_PGFLAGS=y
|
||||
|
|
140
config-generic
140
config-generic
|
@ -211,9 +211,9 @@ CONFIG_BINFMT_MISC=m
|
|||
|
||||
# CONFIG_COMMON_CLK_SI5351 is not set
|
||||
# CONFIG_COMMON_CLK_CDCE706 is not set
|
||||
# CONFIG_COMMON_CLK_CS2000_CP is not set
|
||||
# CONFIG_COMMON_CLK_PWM is not set
|
||||
# CONFIG_COMMON_CLK_CDCE925 is not set
|
||||
# CONFIG_COMMON_CLK_HI6220 is not set
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -249,6 +249,7 @@ CONFIG_REGMAP_I2C=m
|
|||
# CONFIG_SPI_XILINX is not set
|
||||
# CONFIG_SPI_DESIGNWARE is not set
|
||||
# CONFIG_SPI_SPIDEV is not set
|
||||
# CONFIG_SPI_LOOPBACK_TEST is not set
|
||||
# CONFIG_SPI_TLE62X0 is not set
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
|
||||
|
@ -384,6 +385,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
|||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_NVME=m
|
||||
# CONFIG_BLK_DEV_NVME_SCSI is not set
|
||||
CONFIG_BLK_DEV_SKD=m # 64-bit only but easier to put here
|
||||
CONFIG_BLK_DEV_OSD=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
|
@ -547,6 +549,7 @@ CONFIG_SCSI_AM53C974=m
|
|||
# CONFIG_SCSI_EATA_PIO is not set
|
||||
# CONFIG_SCSI_FUTURE_DOMAIN is not set
|
||||
CONFIG_SCSI_GDTH=m
|
||||
# CONFIG_SCSI_HISI_SAS is not set
|
||||
CONFIG_SCSI_HPTIOP=m
|
||||
CONFIG_SCSI_IPS=m
|
||||
CONFIG_SCSI_INIA100=m
|
||||
|
@ -713,6 +716,7 @@ CONFIG_DM_MULTIPATH_ST=m
|
|||
CONFIG_DM_RAID=m
|
||||
CONFIG_DM_FLAKEY=m
|
||||
CONFIG_DM_VERITY=m
|
||||
CONFIG_DM_VERITY_FEC=y
|
||||
CONFIG_DM_SWITCH=m
|
||||
CONFIG_DM_LOG_WRITES=m
|
||||
|
||||
|
@ -758,6 +762,8 @@ CONFIG_NETLINK_DIAG=m
|
|||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
CONFIG_INET_DIAG_DESTROY=y
|
||||
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=m
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
|
@ -1087,6 +1093,9 @@ CONFIG_NFT_REDIR_IPV4=m
|
|||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
CONFIG_NF_DUP_NETDEV=m
|
||||
CONFIG_NFT_DUP_NETDEV=m
|
||||
CONFIG_NFT_FWD_NETDEV=m
|
||||
|
||||
CONFIG_NF_TABLES_IPV4=m
|
||||
CONFIG_NF_DUP_IPV4=m
|
||||
|
@ -1495,6 +1504,7 @@ CONFIG_I40E=m
|
|||
CONFIG_I40E_VXLAN=y
|
||||
# CONFIG_I40E_DCB is not set
|
||||
# CONFIG_I40E_FCOE is not set
|
||||
CONFIG_I40E_GENEVE=y
|
||||
CONFIG_I40EVF=m
|
||||
CONFIG_FM10K=m
|
||||
# CONFIG_FM10K_VXLAN is not set
|
||||
|
@ -1524,6 +1534,10 @@ CONFIG_NET_VENDOR_NATSEMI=y
|
|||
CONFIG_NATSEMI=m
|
||||
CONFIG_NS83820=m
|
||||
|
||||
CONFIG_NET_VENDOR_NETRONOME=y
|
||||
CONFIG_NFP_NETVF=m
|
||||
CONFIG_NFP_NET_DEBUG=n
|
||||
|
||||
CONFIG_NET_VENDOR_8390=y
|
||||
CONFIG_PCMCIA_AXNET=m
|
||||
CONFIG_NE2K_PCI=m
|
||||
|
@ -1691,7 +1705,11 @@ CONFIG_MLX4_INFINIBAND=m
|
|||
CONFIG_MLX5_CORE=m
|
||||
CONFIG_MLX5_CORE_EN=y
|
||||
CONFIG_MLX5_INFINIBAND=m
|
||||
# CONFIG_MLXSW_CORE is not set
|
||||
CONFIG_MLXSW_CORE=m
|
||||
CONFIG_MLXSW_CORE_HWMON=y
|
||||
CONFIG_MLXSW_PCI=m
|
||||
CONFIG_MLXSW_SWITCHX2=m
|
||||
CONFIG_MLXSW_SPECTRUM=m
|
||||
# CONFIG_MLX4_DEBUG is not set
|
||||
# CONFIG_SFC is not set
|
||||
|
||||
|
@ -1750,7 +1768,9 @@ CONFIG_MAC80211_DEBUGFS=y
|
|||
|
||||
# CONFIG_WIMAX is not set
|
||||
|
||||
# CONFIG_WLAN_VENDOR_ADMTEK is not set
|
||||
# CONFIG_ADM8211 is not set
|
||||
CONFIG_WLAN_VENDOR_ATH=y
|
||||
CONFIG_ATH_COMMON=m
|
||||
CONFIG_ATH_CARDS=m
|
||||
CONFIG_ATH5K=m
|
||||
|
@ -1769,6 +1789,7 @@ CONFIG_ATH9K_AHB=y
|
|||
CONFIG_ATH9K_DEBUGFS=y
|
||||
CONFIG_ATH9K_HTC=m
|
||||
CONFIG_ATH9K_BTCOEX_SUPPORT=y
|
||||
# CONFIG_ATH9K_HWRNG is not set
|
||||
# CONFIG_ATH9K_HTC_DEBUGFS is not set
|
||||
# CONFIG_ATH9K_STATION_STATISTICS is not set
|
||||
# CONFIG_ATH9K_WOW is not set
|
||||
|
@ -1790,9 +1811,13 @@ CONFIG_CARL9170=m
|
|||
CONFIG_CARL9170_LEDS=y
|
||||
# CONFIG_CARL9170_HWRNG is not set
|
||||
CONFIG_AT76C50X_USB=m
|
||||
# CONFIG_WLAN_VENDOR_CISCO is not set
|
||||
# CONFIG_AIRO is not set
|
||||
# CONFIG_AIRO_CS is not set
|
||||
# CONFIG_WLAN_VENDOR_ATMEL is not set
|
||||
# CONFIG_ATMEL is not set
|
||||
CONFIG_WLAN_VENDOR_INTERSIL=y
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
CONFIG_NET_VENDOR_BROADCOM=y
|
||||
CONFIG_B43=m
|
||||
CONFIG_B43_PCMCIA=y
|
||||
|
@ -1829,6 +1854,7 @@ CONFIG_PCMCIA_HERMES=m
|
|||
CONFIG_ORINOCO_USB=m
|
||||
# CONFIG_TMD_HERMES is not set
|
||||
# CONFIG_PCMCIA_SPECTRUM is not set
|
||||
CONFIG_WLAN_VENDOR_ST=y
|
||||
CONFIG_CW1200=m
|
||||
CONFIG_CW1200_WLAN_SDIO=m
|
||||
CONFIG_CW1200_WLAN_SPI=m
|
||||
|
@ -1838,6 +1864,7 @@ CONFIG_CW1200_WLAN_SPI=m
|
|||
# CONFIG_IPW2100_DEBUG is not set
|
||||
# CONFIG_IPW2200_DEBUG is not set
|
||||
# CONFIG_LIBIPW_DEBUG is not set
|
||||
CONFIG_WLAN_VENDOR_MARVELL=y
|
||||
CONFIG_LIBERTAS=m
|
||||
CONFIG_LIBERTAS_USB=m
|
||||
CONFIG_LIBERTAS_CS=m
|
||||
|
@ -1849,6 +1876,7 @@ CONFIG_LIBERTAS_MESH=y
|
|||
CONFIG_BNXT=m
|
||||
CONFIG_BNXT_SRIOV=y
|
||||
|
||||
CONFIG_WLAN_VENDOR_INTEL=y
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLDVM=m
|
||||
CONFIG_IWLMVM=m
|
||||
|
@ -1873,6 +1901,7 @@ CONFIG_P54_PCI=m
|
|||
CONFIG_MWL8K=m
|
||||
# CONFIG_PRISM54 is not set
|
||||
# CONFIG_PCMCIA_WL3501 is not set
|
||||
CONFIG_WLAN_VENDOR_RSI=y
|
||||
CONFIG_RSI_91X=m
|
||||
CONFIG_RSI_DEBUGFS=y
|
||||
CONFIG_RSI_SDIO=m
|
||||
|
@ -1881,7 +1910,9 @@ CONFIG_RT2X00=m
|
|||
CONFIG_RT2X00_LIB_DEBUGFS=y
|
||||
# CONFIG_RT2X00_DEBUG is not set
|
||||
CONFIG_WL_MEDIATEK=y
|
||||
CONFIG_WLAN_VENDOR_MEDIATEK=y
|
||||
CONFIG_MT7601U=m
|
||||
CONFIG_WLAN_VENDOR_RALINK=y
|
||||
CONFIG_RT2400PCI=m
|
||||
CONFIG_RT2500PCI=m
|
||||
CONFIG_RT61PCI=m
|
||||
|
@ -1901,6 +1932,7 @@ CONFIG_RT2800PCI_RT53XX=y
|
|||
CONFIG_RT73USB=m
|
||||
CONFIG_RTL8180=m
|
||||
CONFIG_RTL8187=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
# CONFIG_USB_ZD1201 is not set
|
||||
# CONFIG_USB_NET_SR9800 is not set
|
||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
|
@ -1912,13 +1944,19 @@ CONFIG_USB_NET_CH9200=m
|
|||
CONFIG_ZD1211RW=m
|
||||
# CONFIG_ZD1211RW_DEBUG is not set
|
||||
|
||||
CONFIG_WLAN_VENDOR_TI=y
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_WLCORE=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WL12XX=m
|
||||
|
||||
CONFIG_WL1251=m
|
||||
CONFIG_WL1251_SPI=m
|
||||
CONFIG_WL1251_SDIO=m
|
||||
CONFIG_WL1251_SPI=m
|
||||
CONFIG_WL18XX=m
|
||||
|
||||
CONFIG_RTL_CARDS=m
|
||||
CONFIG_WLAN_VENDOR_REALTEK=y
|
||||
CONFIG_RTLWIFI=m
|
||||
CONFIG_RTL8192CE=m
|
||||
CONFIG_RTL8192SE=m
|
||||
|
@ -1930,7 +1968,7 @@ CONFIG_RTL8723BE=m
|
|||
CONFIG_RTL8188EE=m
|
||||
CONFIG_RTL8821AE=m
|
||||
CONFIG_RTL8XXXU=m
|
||||
# Untested is intentionally disabled in stable branches
|
||||
# NOTE! This should be disabled when branching to stable
|
||||
# CONFIG_RTL8XXXU_UNTESTED is not set
|
||||
|
||||
CONFIG_MWIFIEX=m
|
||||
|
@ -1945,10 +1983,11 @@ CONFIG_IEEE802154_DRIVERS=m
|
|||
CONFIG_IEEE802154_FAKELB=m
|
||||
CONFIG_IEEE802154_ATUSB=m
|
||||
CONFIG_IEEE802154_CC2520=m
|
||||
# CONFIG_IEEE802154_AT86RF230 is not set
|
||||
CONFIG_IEEE802154_AT86RF230=m
|
||||
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
|
||||
# CONFIG_IEEE802154_ADF7242 is not set
|
||||
# CONFIG_IEEE802154_MRF24J40 is not set
|
||||
# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
|
||||
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
|
||||
|
||||
CONFIG_MAC802154=m
|
||||
CONFIG_NET_MPLS_GSO=m
|
||||
|
@ -1966,7 +2005,13 @@ CONFIG_6LOWPAN_NHC_IPV6=m
|
|||
CONFIG_6LOWPAN_NHC_MOBILITY=m
|
||||
CONFIG_6LOWPAN_NHC_ROUTING=m
|
||||
CONFIG_6LOWPAN_NHC_UDP=m
|
||||
|
||||
CONFIG_6LOWPAN_DEBUGFS=y
|
||||
CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
|
||||
CONFIG_6LOWPAN_GHC_UDP=m
|
||||
CONFIG_6LOWPAN_GHC_ICMPV6=m
|
||||
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
|
||||
CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
|
||||
CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
|
||||
|
||||
#
|
||||
# Token Ring devices
|
||||
|
@ -2017,6 +2062,7 @@ CONFIG_CAN_PEAK_PCIEC=y
|
|||
CONFIG_CAN_PEAK_USB=m
|
||||
CONFIG_CAN_KVASER_PCI=m
|
||||
CONFIG_CAN_KVASER_USB=m
|
||||
# CONFIG_CAN_MCP251X is not set
|
||||
CONFIG_CAN_PLX_PCI=m
|
||||
# CONFIG_CAN_TSCAN1 is not set
|
||||
CONFIG_CAN_C_CAN=m
|
||||
|
@ -2031,7 +2077,6 @@ CONFIG_CAN_GS_USB=m
|
|||
CONFIG_CAN_8DEV_USB=m
|
||||
CONFIG_CAN_SOFTING=m
|
||||
# CONFIG_CAN_SOFTING_CS is not set
|
||||
CONFIG_CAN_SUN4I=m
|
||||
|
||||
CONFIG_NETROM=m
|
||||
CONFIG_ROSE=m
|
||||
|
@ -2067,11 +2112,15 @@ CONFIG_NFC_ST21NFCA=m
|
|||
CONFIG_NFC_ST21NFCA_I2C=m
|
||||
# CONFIG_NFC_ST21NFCB is not set
|
||||
# CONFIG_NFC_ST21NFCB_I2C is not set
|
||||
# CONFIG_NFC_NXP_NCI is not set
|
||||
# CONFIG_NFC_ST95HF is not set
|
||||
CONFIG_NFC_NXP_NCI=m
|
||||
CONFIG_NFC_NXP_NCI_I2C=m
|
||||
# CONFIG_NFC_NCI_SPI is not set
|
||||
# CONFIG_NFC_NCI_UART is not set
|
||||
# CONFIG_NFC_ST_NCI is not set
|
||||
# CONFIG_NFC_ST_NCI_I2C is not set
|
||||
# CONFIG_NFC_S3FWRN5_I2C is not set
|
||||
# CONFIG_NFC_ST_NCI_SPI is not set
|
||||
# CONFIG_NFC_FDP is not set
|
||||
# CONFIG_NFC_MRVL_I2C is not set
|
||||
# CONFIG_NFC_MRVL_SPI is not set
|
||||
|
@ -2442,6 +2491,7 @@ CONFIG_TOUCHSCREEN_DYNAPRO=m
|
|||
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
|
||||
CONFIG_TOUCHSCREEN_EETI=m
|
||||
CONFIG_TOUCHSCREEN_EGALAX=m
|
||||
CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
|
||||
CONFIG_TOUCHSCREEN_ELAN=m
|
||||
CONFIG_TOUCHSCREEN_ELO=m
|
||||
CONFIG_TOUCHSCREEN_FUJITSU=m
|
||||
|
@ -2456,6 +2506,7 @@ CONFIG_TOUCHSCREEN_MK712=m
|
|||
CONFIG_TOUCHSCREEN_PENMOUNT=m
|
||||
# CONFIG_TOUCHSCREEN_SUR40 is not set
|
||||
# CONFIG_TOUCHSCREEN_TPS6507X is not set
|
||||
CONFIG_TOUCHSCREEN_TS4800=m
|
||||
CONFIG_TOUCHSCREEN_TSC_SERIO=m
|
||||
CONFIG_TOUCHSCREEN_TSC2007=m
|
||||
CONFIG_TOUCHSCREEN_TOUCHIT213=m
|
||||
|
@ -2836,6 +2887,7 @@ CONFIG_SENSORS_MAX16064=m
|
|||
CONFIG_SENSORS_MAX20751=m
|
||||
CONFIG_SENSORS_LM25066=m
|
||||
CONFIG_SENSORS_LTC2978=m
|
||||
CONFIG_SENSORS_LTC3815=m
|
||||
CONFIG_SENSORS_MAX34440=m
|
||||
CONFIG_SENSORS_MAX8688=m
|
||||
CONFIG_SENSORS_MAX1668=m
|
||||
|
@ -2852,10 +2904,13 @@ CONFIG_IIO_BUFFER_CB=y
|
|||
# CONFIG_IIO_KFIFO_BUF is not set
|
||||
CONFIG_IIO_TRIGGERED_BUFFER=m
|
||||
CONFIG_IIO_TRIGGER=y
|
||||
CONFIG_IIO_SW_TRIGGER=y
|
||||
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
|
||||
CONFIG_IIO_INTERRUPT_TRIGGER=m
|
||||
CONFIG_HID_SENSOR_IIO_COMMON=m
|
||||
CONFIG_HID_SENSOR_IIO_TRIGGER=m
|
||||
CONFIG_IIO_CONFIGFS=m
|
||||
# CONFIG_IIO_HRTIMER_TRIGGER is not set
|
||||
# CONFIG_IIO_SYSFS_TRIGGER is not set
|
||||
# CONFIG_IIO_SSP_SENSORHUB is not set
|
||||
# CONFIG_AD5446 is not set
|
||||
|
@ -2883,6 +2938,7 @@ CONFIG_STK3310=m
|
|||
# CONFIG_TSL4531 is not set
|
||||
# CONFIG_NAU7802 is not set
|
||||
# CONFIG_TI_ADC081C is not set
|
||||
# CONFIG_TI_ADS8688 is not set
|
||||
# CONFIG_TI_ADC128S052 is not set
|
||||
# CONFIG_VIPERBOARD_ADC is not set
|
||||
# CONFIG_VF610_ADC is not set
|
||||
|
@ -2908,9 +2964,11 @@ CONFIG_ACPI_ALS=m
|
|||
# CONFIG_HID_SENSOR_PRESS is not set
|
||||
# CONFIG_IIO_ST_PRESS is not set
|
||||
# CONFIG_KXSD9 is not set
|
||||
# CONFIG_MMA7455_I2C is not set
|
||||
# CONFIG_MMA8452 is not set
|
||||
# CONFIG_MMA9551 is not set
|
||||
# CONFIG_MMA9553 is not set
|
||||
# CONFIG_MXC6255 is not set
|
||||
# CONFIG_STK8312 is not set
|
||||
# CONFIG_STK8BA50 is not set
|
||||
# CONFIG_AD7266 is not set
|
||||
|
@ -2945,7 +3003,7 @@ CONFIG_ACPI_ALS=m
|
|||
# CONFIG_BMG160 is not set
|
||||
# CONFIG_ADIS16400 is not set
|
||||
# CONFIG_ADIS16480 is not set
|
||||
# CONFIG_DHT11 is not set
|
||||
CONFIG_DHT11=m
|
||||
# CONFIG_MPL3115 is not set
|
||||
# CONFIG_MS5611 is not set
|
||||
# CONFIG_MPL115 is not set
|
||||
|
@ -2957,6 +3015,7 @@ CONFIG_KXCJK1013=m
|
|||
# CONFIG_ISL29125 is not set
|
||||
# CONFIG_JSA1212 is not set
|
||||
CONFIG_RPR0521=m
|
||||
CONFIG_MAX30100=m
|
||||
CONFIG_OPT3001=m
|
||||
CONFIG_PA12203001=m
|
||||
# CONFIG_TCS3414 is not set
|
||||
|
@ -2965,6 +3024,8 @@ CONFIG_PA12203001=m
|
|||
# CONFIG_MCP4922 is not set
|
||||
# CONFIG_MAX1027 is not set
|
||||
# CONFIG_MXC4005 is not set
|
||||
# CONFIG_IAQCORE is not set
|
||||
# CONFIG_INA2XX_ADC is not set
|
||||
# CONFIG_VZ89X is not set
|
||||
# CONFIG_HDC100X is not set
|
||||
# CONFIG_HTU21 is not set
|
||||
|
@ -2976,6 +3037,7 @@ CONFIG_PA12203001=m
|
|||
# CONFIG_TSYS01 is not set
|
||||
# CONFIG_TSYS02D is not set
|
||||
# CONFIG_HI8435 is not set
|
||||
# CONFIG_IMX7D_ADC is not set
|
||||
|
||||
# staging IIO drivers
|
||||
# CONFIG_AD7291 is not set
|
||||
|
@ -3026,6 +3088,7 @@ CONFIG_PA12203001=m
|
|||
# CONFIG_SRAM is not set
|
||||
# CONFIG_TI_DAC7512 is not set
|
||||
# CONFIG_BMP085_SPI is not set
|
||||
# CONFIG_MMA7455_SPI is not set
|
||||
# CONFIG_LATTICE_ECP3_CONFIG is not set
|
||||
|
||||
CONFIG_W1=m
|
||||
|
@ -3071,6 +3134,7 @@ CONFIG_IPMI_POWEROFF=m
|
|||
#
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_WATCHDOG_CORE=y
|
||||
CONFIG_WATCHDOG_SYSFS=y
|
||||
# CONFIG_WATCHDOG_NOWAYOUT is not set
|
||||
CONFIG_SOFT_WATCHDOG=m
|
||||
CONFIG_WDTPCI=m
|
||||
|
@ -3102,6 +3166,7 @@ CONFIG_W83977F_WDT=m
|
|||
CONFIG_PCIPCWATCHDOG=m
|
||||
CONFIG_USBPCWATCHDOG=m
|
||||
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
|
||||
# CONFIG_TS4800_WATCHDOG is not set
|
||||
CONFIG_WM8350_WATCHDOG=m
|
||||
CONFIG_WM831X_WATCHDOG=m
|
||||
# CONFIG_MAX63XX_WATCHDOG is not set
|
||||
|
@ -3111,6 +3176,7 @@ CONFIG_WM831X_WATCHDOG=m
|
|||
# CONFIG_XILINX_WATCHDOG is not set
|
||||
# CONFIG_CADENCE_WATCHDOG is not set
|
||||
# CONFIG_BCM7038_WDT is not set
|
||||
# CONFIG_ZIIRAVE_WATCHDOG is not set
|
||||
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_TIMERIOMEM=m
|
||||
|
@ -3161,6 +3227,7 @@ CONFIG_RTC_DRV_V3020=m
|
|||
CONFIG_RTC_DRV_DS2404=m
|
||||
CONFIG_RTC_DRV_STK17TA8=m
|
||||
# CONFIG_RTC_DRV_S35390A is not set
|
||||
CONFIG_RTC_DRV_RX8010=m
|
||||
CONFIG_RTC_DRV_RX8581=m
|
||||
CONFIG_RTC_DRV_RX8025=m
|
||||
CONFIG_RTC_DRV_DS1286=m
|
||||
|
@ -3235,6 +3302,7 @@ CONFIG_DRM_RADEON_USERPTR=y
|
|||
CONFIG_DRM_AMDGPU=m
|
||||
# CONFIG_DRM_AMDGPU_CIK is not set
|
||||
CONFIG_DRM_AMDGPU_USERPTR=y
|
||||
CONFIG_DRM_AMD_POWERPLAY=y
|
||||
# CONFIG_DRM_I810 is not set
|
||||
# CONFIG_DRM_MGA is not set
|
||||
CONFIG_DRM_MGAG200=m # do not enable on f17 or older
|
||||
|
@ -3342,6 +3410,10 @@ CONFIG_VIDEO_CX231XX=m
|
|||
CONFIG_VIDEO_CX231XX_ALSA=m
|
||||
CONFIG_VIDEO_CX231XX_DVB=m
|
||||
CONFIG_VIDEO_CX231XX_RC=y
|
||||
CONFIG_VIDEO_GO7007=m
|
||||
CONFIG_VIDEO_GO7007_USB=m
|
||||
CONFIG_VIDEO_GO7007_LOADER=m
|
||||
CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
|
||||
CONFIG_VIDEO_HEXIUM_ORION=m
|
||||
CONFIG_VIDEO_HEXIUM_GEMINI=m
|
||||
CONFIG_VIDEO_IVTV=m
|
||||
|
@ -3354,6 +3426,7 @@ CONFIG_VIDEO_SAA6588=m
|
|||
CONFIG_VIDEO_SAA7134=m
|
||||
CONFIG_VIDEO_SAA7134_ALSA=m
|
||||
CONFIG_VIDEO_SAA7134_DVB=m
|
||||
CONFIG_VIDEO_SAA7134_GO7007=m
|
||||
CONFIG_VIDEO_SAA7134_RC=y
|
||||
CONFIG_VIDEO_SOLO6X10=m
|
||||
CONFIG_VIDEO_USBVISION=m
|
||||
|
@ -4171,6 +4244,7 @@ CONFIG_USB_SERIAL_KLSI=m
|
|||
CONFIG_USB_SERIAL_KOBIL_SCT=m
|
||||
CONFIG_USB_SERIAL_MCT_U232=m
|
||||
# CONFIG_USB_SERIAL_METRO is not set
|
||||
CONFIG_USB_SERIAL_MXUPORT11=m
|
||||
CONFIG_USB_SERIAL_MOS7720=m
|
||||
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
|
||||
# CONFIG_USB_SERIAL_WISHBONE is not set
|
||||
|
@ -4223,7 +4297,6 @@ CONFIG_USB_ULPI_BUS=m
|
|||
# CONFIG_PHY_PXA_28NM_HSIC is not set
|
||||
# CONFIG_PHY_PXA_28NM_USB2 is not set
|
||||
# CONFIG_PHY_TUSB1210 is not set
|
||||
# CONFIG_AM335X_PHY_USB is not set
|
||||
# CONFIG_SAMSUNG_USBPHY is not set
|
||||
# CONFIG_BCM_KONA_USB2_PHY is not set
|
||||
# CONFIG_USB_RCAR_PHY is not set
|
||||
|
@ -4235,6 +4308,7 @@ CONFIG_USB_EMI26=m
|
|||
CONFIG_USB_FTDI_ELAN=m
|
||||
# CONFIG_USB_GADGET is not set
|
||||
# CONFIG_USB_DWC3 is not set
|
||||
# CONFIG_USB_DWC3_OF_SIMPLE is not set
|
||||
# CONFIG_USB_GADGETFS is not set
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
CONFIG_USB_IOWARRIOR=m
|
||||
|
@ -4266,7 +4340,7 @@ CONFIG_USB_STKWEBCAM=m
|
|||
# CONFIG_USB_TEST is not set
|
||||
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
|
||||
CONFIG_USB_TRANCEVIBRATOR=m
|
||||
CONFIG_USB_U132_HCD=m
|
||||
# CONFIG_USB_U132_HCD is not set
|
||||
CONFIG_USB_UEAGLEATM=m
|
||||
CONFIG_USB_XUSBATM=m
|
||||
|
||||
|
@ -4370,6 +4444,7 @@ CONFIG_MFD_VIPERBOARD=m
|
|||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_INTEL_SOC_PMIC is not set
|
||||
# CONFIG_MFD_ATMEL_FLEXCOM is not set
|
||||
# CONFIG_TS4800_IRQ is not set
|
||||
|
||||
#
|
||||
# File systems
|
||||
|
@ -4410,6 +4485,7 @@ CONFIG_QUOTA_NETLINK_INTERFACE=y
|
|||
# CONFIG_QFMT_V1 is not set
|
||||
CONFIG_QFMT_V2=y
|
||||
CONFIG_QUOTACTL=y
|
||||
# CONFIG_MANDATORY_FILE_LOCKING is not set
|
||||
CONFIG_DNOTIFY=y
|
||||
# Autofsv3 is obsolete.
|
||||
# systemd is dependant upon AUTOFS, so build it in.
|
||||
|
@ -4727,6 +4803,8 @@ CONFIG_HEADERS_CHECK=y
|
|||
# This breaks booting until the module patches are in-tree
|
||||
# CONFIG_DEBUG_KOBJECT_RELEASE is not set
|
||||
#
|
||||
# This just changes a default enable with workqueue.debug_force_rr_cpu
|
||||
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
|
||||
#
|
||||
# These debug options are deliberatly left on (even in 'make release' kernels).
|
||||
# They aren't that much of a performance impact, and the value
|
||||
|
@ -4775,6 +4853,10 @@ CONFIG_KGDB_LOW_LEVEL_TRAP=y
|
|||
# CONFIG_KGDB_TESTS_ON_BOOT is not set
|
||||
# CONFIG_GDB_SCRIPTS is not set
|
||||
|
||||
# CONFIG_UBSAN is not set
|
||||
# CONFIG_UBSAN_ALIGNMENT is not set
|
||||
# CONFIG_UBSAN_SANITIZE_ALL is not set
|
||||
|
||||
|
||||
#
|
||||
# Security options
|
||||
|
@ -4804,6 +4886,7 @@ CONFIG_AUDITSYSCALL=y
|
|||
|
||||
CONFIG_SECCOMP=y
|
||||
CONFIG_STRICT_DEVMEM=y
|
||||
CONFIG_IO_STRICT_DEVMEM=y
|
||||
|
||||
|
||||
#
|
||||
|
@ -5120,6 +5203,9 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
|||
# CONFIG_SND_SOC_CS42XX8_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM1681 is not set
|
||||
# CONFIG_SND_SOC_PCM1792A is not set
|
||||
# CONFIG_SND_SOC_PCM179X is not set
|
||||
# CONFIG_SND_SOC_PCM3168A_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM3168A_SPI is not set
|
||||
# CONFIG_SND_SOC_PCM512x_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM512x_SPI is not set
|
||||
# CONFIG_SND_SOC_QCOM is not set
|
||||
|
@ -5144,6 +5230,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
|||
# CONFIG_SND_SOC_WM8804_SPI is not set
|
||||
# CONFIG_SND_SOC_WM8903 is not set
|
||||
# CONFIG_SND_SOC_WM8962 is not set
|
||||
# CONFIG_SND_SOC_WM8974 is not set
|
||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||
# CONFIG_SND_SOC_FSL_ASRC is not set
|
||||
# CONFIG_SND_SOC_FSL_ESAI is not set
|
||||
|
@ -5181,7 +5268,9 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
|||
# CONFIG_SND_SOC_CS4349 is not set
|
||||
# CONFIG_SND_SOC_GTM601 is not set
|
||||
# CONFIG_SND_SOC_STI_SAS is not set
|
||||
#
|
||||
# CONFIG_SND_SOC_INNO_RK3036 is not set
|
||||
# CONFIG_SND_SOC_IMG is not set
|
||||
CONFIG_SND_SOC_AMD_ACP=m
|
||||
|
||||
CONFIG_BALLOON_COMPACTION=y
|
||||
CONFIG_COMPACTION=y
|
||||
|
@ -5395,7 +5484,8 @@ CONFIG_INPUT_GP2A=m
|
|||
|
||||
# CONFIG_INTEL_MENLOW is not set
|
||||
CONFIG_ENCLOSURE_SERVICES=m
|
||||
CONFIG_IPWIRELESS=m
|
||||
# Disable temporarily while I (pbr) work out why this filters properly when build with rpmbuild but not in koji
|
||||
# CONFIG_IPWIRELESS is not set
|
||||
|
||||
CONFIG_MEMSTICK=m
|
||||
# CONFIG_MEMSTICK_DEBUG is not set
|
||||
|
@ -5472,7 +5562,6 @@ CONFIG_STAGING_MEDIA=y
|
|||
# CONFIG_VIDEO_DT3155 is not set
|
||||
# CONFIG_TI_ST is not set
|
||||
# CONFIG_FB_XGI is not set
|
||||
# CONFIG_VIDEO_GO7007 is not set
|
||||
# CONFIG_I2C_BCM2048 is not set
|
||||
# CONFIG_DT3155 is not set
|
||||
# CONFIG_PRISM2_USB is not set
|
||||
|
@ -5530,6 +5619,8 @@ CONFIG_USBIP_HOST=m
|
|||
# CONFIG_FB_SM750 is not set
|
||||
# CONFIG_STAGING_RDMA is not set
|
||||
# CONFIG_WILC1000_DRIVER is not set
|
||||
# CONFIG_WILC1000_SDIO is not set
|
||||
# CONFIG_WILC1000_SPI is not set
|
||||
# END OF STAGING
|
||||
|
||||
#
|
||||
|
@ -5761,11 +5852,22 @@ CONFIG_POWERCAP=y
|
|||
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
|
||||
# CONFIG_MODULE_SIG is not set
|
||||
CONFIG_MODULE_SIG=y
|
||||
CONFIG_MODULE_SIG_ALL=y
|
||||
# CONFIG_MODULE_SIG_SHA1 is not set
|
||||
CONFIG_MODULE_SIG_SHA256=y
|
||||
# CONFIG_MODULE_SIG_FORCE is not set
|
||||
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
|
||||
CONFIG_SYSTEM_TRUSTED_KEYS=""
|
||||
CONFIG_PKCS7_MESSAGE_PARSER=y
|
||||
# CONFIG_PKCS7_TEST_KEY is not set
|
||||
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
|
||||
CONFIG_SYSTEM_TRUSTED_KEYRING=y
|
||||
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
|
||||
# CONFIG_MODULE_SIG_UEFI is not set
|
||||
# CONFIG_EFI_SIGNATURE_LIST_PARSER is not set
|
||||
# FIXME: Revisit this to see if we can use it instead of the spec file stuff
|
||||
# CONFIG_MODULE_COMPRESS is not set
|
||||
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
|
||||
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
|
||||
|
||||
# CONFIG_RTC_DRV_EFI is not set
|
||||
# CONFIG_NET_XGENE is not set
|
||||
|
|
|
@ -112,6 +112,7 @@ CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
|||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
# CONFIG_WQ_WATCHDOG is not set
|
||||
|
||||
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||
|
||||
|
@ -127,3 +128,5 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
|||
# CONFIG_SPI_DEBUG is not set
|
||||
|
||||
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||
|
||||
# CONFIG_DEBUG_VM_PGFLAGS is not set
|
||||
|
|
|
@ -60,6 +60,7 @@ CONFIG_MEMORY_HOTREMOVE=y
|
|||
CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
|
||||
|
||||
CONFIG_CGROUP_HUGETLB=y
|
||||
CONFIG_MEM_SOFT_DIRTY=y
|
||||
|
||||
CONFIG_RCU_FANOUT=64
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
|
@ -74,14 +75,13 @@ CONFIG_PSERIES_CPUIDLE=y
|
|||
|
||||
CONFIG_HW_RANDOM_PSERIES=m
|
||||
CONFIG_CRYPTO_DEV_NX=y
|
||||
CONFIG_CRYPTO_842=m
|
||||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS_CRYPTO=m
|
||||
CONFIG_CRYPTO_DEV_VMX=y
|
||||
# CONFIG_CRYPTO_DEV_VMX_ENCRYPT is not set
|
||||
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
|
||||
|
||||
CONFIG_XZ_DEC_POWERPC=y
|
||||
|
||||
|
@ -352,6 +352,7 @@ CONFIG_I2C_MPC=m
|
|||
# CONFIG_IBM_EMAC is not set
|
||||
# CONFIG_NET_VENDOR_PASEMI is not set
|
||||
# CONFIG_NET_VENDOR_TOSHIBA is not set
|
||||
CONFIG_IBMVNIC=m
|
||||
|
||||
CONFIG_MDIO_OCTEON=m
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ CONFIG_SCLP_VT220_CONSOLE=y
|
|||
CONFIG_SCLP_CPI=m
|
||||
CONFIG_SCLP_ASYNC=m
|
||||
CONFIG_SCLP_ASYNC_ID="000000000"
|
||||
CONFIG_SCLP_OFB=y
|
||||
CONFIG_S390_TAPE=m
|
||||
CONFIG_S390_TAPE_3590=m
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_HIGHMEM4G=y
|
|||
# CONFIG_HIGHMEM64G is not set
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_ZONE_DMA=y
|
||||
|
||||
# CONFIG_MATH_EMULATION is not set
|
||||
|
||||
|
@ -219,4 +220,5 @@ CONFIG_OF=y
|
|||
# CONFIG_COMMON_CLK_SI570 is not set
|
||||
# CONFIG_COMMON_CLK_QCOM is not set
|
||||
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
|
||||
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
|
||||
# CONFIG_KEYBOARD_BCM is not set
|
||||
|
|
|
@ -72,7 +72,6 @@ CONFIG_MMIOTRACE=y
|
|||
# CONFIG_MMIOTRACE_TEST is not set
|
||||
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||
CONFIG_DEBUG_RODATA=y
|
||||
# Generating too many warnings while waiting for fixes
|
||||
# CONFIG_DEBUG_WX is not set
|
||||
CONFIG_DEBUG_STACKOVERFLOW=y
|
||||
|
||||
|
@ -139,11 +138,16 @@ CONFIG_CRYPTO_DEV_CCP_DD=m
|
|||
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
|
||||
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
|
||||
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
|
||||
CONFIG_CRYPTO_DEV_QAT_C3XXX=m
|
||||
CONFIG_CRYPTO_DEV_QAT_C62X=m
|
||||
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
|
||||
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
|
||||
|
||||
CONFIG_GENERIC_ISA_DMA=y
|
||||
|
||||
CONFIG_PCI_MMCONFIG=y
|
||||
CONFIG_PCI_BIOS=y
|
||||
CONFIG_VMD=m
|
||||
|
||||
CONFIG_HOTPLUG_PCI_COMPAQ=m
|
||||
# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
|
||||
|
@ -176,6 +180,7 @@ CONFIG_I2C_VIA=m
|
|||
CONFIG_I2C_VIAPRO=m
|
||||
CONFIG_I2C_DESIGNWARE_CORE=m
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=m
|
||||
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
|
||||
|
||||
#rhbz 997149
|
||||
# CONFIG_DELL_RBU is not set
|
||||
|
@ -222,6 +227,7 @@ CONFIG_X86_PLATFORM_DEVICES=y
|
|||
|
||||
CONFIG_AMILO_RFKILL=m
|
||||
CONFIG_ASUS_LAPTOP=m
|
||||
CONFIG_ASUS_WIRELESS=m
|
||||
CONFIG_COMPAL_LAPTOP=m
|
||||
CONFIG_DELL_LAPTOP=m
|
||||
CONFIG_DELL_RBTN=m
|
||||
|
@ -232,6 +238,7 @@ CONFIG_FUJITSU_TABLET=m
|
|||
CONFIG_FUJITSU_LAPTOP=m
|
||||
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
|
||||
CONFIG_IDEAPAD_LAPTOP=m
|
||||
CONFIG_INTEL_HID_EVENT=m
|
||||
CONFIG_MSI_LAPTOP=m
|
||||
CONFIG_PANASONIC_LAPTOP=m
|
||||
CONFIG_SAMSUNG_LAPTOP=m
|
||||
|
@ -312,18 +319,18 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
|
|||
CONFIG_XEN_SELFBALLOONING=y
|
||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
||||
CONFIG_XEN_ACPI_PROCESSOR=m
|
||||
# CONFIG_XEN_SCSI_FRONTEND is not set
|
||||
# CONFIG_XEN_SCSI_BACKEND is not set
|
||||
CONFIG_XEN_SCSI_FRONTEND=m
|
||||
CONFIG_XEN_SCSI_BACKEND=m
|
||||
CONFIG_XEN_SYMS=y
|
||||
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_MASTER=y
|
||||
CONFIG_SPI_PXA2XX=m
|
||||
# CONFIG_CAN_MCP251X is not set
|
||||
# CONFIG_SPI_CADENCE is not set
|
||||
# CONFIG_SPI_ZYNQMP_GQSPI is not set
|
||||
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
|
||||
# CONFIG_DRM_PANEL_LG_LG4573 is not set
|
||||
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
|
||||
|
||||
CONFIG_MTD_ESB2ROM=m
|
||||
CONFIG_MTD_CK804XROM=m
|
||||
|
@ -413,6 +420,7 @@ CONFIG_LPC_ICH=m
|
|||
CONFIG_GPIO_ICH=m
|
||||
# CONFIG_GPIO_LYNXPOINT is not set
|
||||
# CONFIG_GPIO_F7188X is not set
|
||||
# CONFIG_GPIO_104_IDI_48 is not set
|
||||
|
||||
# These should all go away with IC2_ACPI is fixed
|
||||
# CONFIG_MFD_AS3711 is not set
|
||||
|
@ -474,6 +482,7 @@ CONFIG_CRYPTO_CRC32_PCLMUL=m
|
|||
CONFIG_HP_ACCEL=m
|
||||
|
||||
CONFIG_SURFACE_PRO3_BUTTON=m
|
||||
CONFIG_INTEL_PUNIT_IPC=m
|
||||
|
||||
# CONFIG_RAPIDIO is not set
|
||||
|
||||
|
@ -519,6 +528,7 @@ CONFIG_X86_INTEL_LPSS=y
|
|||
CONFIG_IDMA64=m
|
||||
|
||||
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
||||
# CONFIG_X86_INTEL_MID is not set
|
||||
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
|
||||
|
||||
CONFIG_MFD_INTEL_LPSS_ACPI=m
|
||||
|
@ -545,12 +555,15 @@ CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
|
|||
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BAYTRAIL=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
|
||||
CONFIG_SND_SOC_AC97_CODEC=m
|
||||
# CONFIG_SND_SOC_TAS571X is not set
|
||||
# CONFIG_SND_SUN4I_CODEC is not set
|
||||
|
@ -569,18 +582,7 @@ CONFIG_MOUSE_PS2_VMMOUSE=y
|
|||
CONFIG_XZ_DEC_X86=y
|
||||
|
||||
CONFIG_MPILIB=y
|
||||
CONFIG_PKCS7_MESSAGE_PARSER=y
|
||||
# CONFIG_PKCS7_TEST_KEY is not set
|
||||
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
|
||||
CONFIG_SYSTEM_TRUSTED_KEYRING=y
|
||||
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
|
||||
CONFIG_MODULE_SIG=y
|
||||
CONFIG_MODULE_SIG_ALL=y
|
||||
# CONFIG_MODULE_SIG_SHA1 is not set
|
||||
CONFIG_MODULE_SIG_SHA256=y
|
||||
# CONFIG_MODULE_SIG_FORCE is not set
|
||||
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
|
||||
CONFIG_SYSTEM_TRUSTED_KEYS=""
|
||||
|
||||
CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE=y
|
||||
CONFIG_EFI_SIGNATURE_LIST_PARSER=y
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ CONFIG_SPARSEMEM_VMEMMAP=y
|
|||
# CONFIG_MOVABLE_NODE is not set
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
# CONFIG_ARCH_MEMORY_PROBE is not set
|
||||
# CONFIG_MEMORY_HOTREMOVE is not set
|
||||
CONFIG_MEMORY_HOTREMOVE=y
|
||||
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
|
||||
|
||||
# CONFIG_BLK_DEV_CMD640 is not set
|
||||
|
@ -176,8 +176,10 @@ CONFIG_THUNDERBOLT=m
|
|||
|
||||
CONFIG_NTB=m
|
||||
CONFIG_NTB_NETDEV=m
|
||||
CONFIG_NTB_AMD=m
|
||||
CONFIG_NTB_INTEL=m
|
||||
CONFIG_NTB_PINGPONG=m
|
||||
CONFIG_NTB_PERF=m
|
||||
CONFIG_NTB_TOOL=m
|
||||
CONFIG_NTB_TRANSPORT=m
|
||||
|
||||
|
@ -212,3 +214,23 @@ CONFIG_CMA=y
|
|||
# CONFIG_CMA_DEBUG is not set
|
||||
# CONFIG_CMA_DEBUGFS is not set
|
||||
CONFIG_CMA_AREAS=7
|
||||
|
||||
# Changes for persistent memory devices
|
||||
# ZONE_DMA and ZONE_DEVICE can now co-exist
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_ZONE_DEVICE=y
|
||||
CONFIG_NVDIMM_PFN=y
|
||||
CONFIG_ND_PFN=m
|
||||
|
||||
# Staging
|
||||
CONFIG_STAGING_RDMA=y
|
||||
# CONFIG_INFINIBAND_AMSO1100 is not set
|
||||
# CONFIG_INFINIBAND_EHCA is not set
|
||||
CONFIG_INFINIBAND_HFI1=m
|
||||
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
|
||||
CONFIG_HFI1_VERBS_31BIT_PSN=y
|
||||
# CONFIG_SDMA_VERBOSITY is not set
|
||||
# CONFIG_PRESCAN_RXQ is not set
|
||||
|
||||
# Temporary workaround until SND_SOC_INTEL_HASWELL_MACH no longer requires builtin
|
||||
CONFIG_DW_DMAC=y
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
From f7a3aa353011e38e119adebd845b38551587a26a Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Thu, 17 Mar 2016 16:25:33 +0100
|
||||
Subject: [PATCH] cypress_m8: add sanity checking
|
||||
|
||||
An attack using missing endpoints exists.
|
||||
CVE-2016-3137
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
CC: stable@vger.kernel.org
|
||||
|
||||
v1 - add sanity check
|
||||
v2 - add error logging
|
||||
v3 - correct error message
|
||||
---
|
||||
drivers/usb/serial/cypress_m8.c | 11 +++++------
|
||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
|
||||
index 01bf53392819..5e25443fe4ef 100644
|
||||
--- a/drivers/usb/serial/cypress_m8.c
|
||||
+++ b/drivers/usb/serial/cypress_m8.c
|
||||
@@ -447,6 +447,11 @@ static int cypress_generic_port_probe(struct usb_serial_port *port)
|
||||
struct usb_serial *serial = port->serial;
|
||||
struct cypress_private *priv;
|
||||
|
||||
+ if (!port->interrupt_out_urb || !port->interrupt_in_urb) {
|
||||
+ dev_err(&port->dev, "A required endpoint is missing\n");
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
priv = kzalloc(sizeof(struct cypress_private), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
@@ -606,12 +611,6 @@ static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port)
|
||||
cypress_set_termios(tty, port, &priv->tmp_termios);
|
||||
|
||||
/* setup the port and start reading from the device */
|
||||
- if (!port->interrupt_in_urb) {
|
||||
- dev_err(&port->dev, "%s - interrupt_in_urb is empty!\n",
|
||||
- __func__);
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
usb_fill_int_urb(port->interrupt_in_urb, serial->dev,
|
||||
usb_rcvintpipe(serial->dev, port->interrupt_in_endpointAddress),
|
||||
port->interrupt_in_urb->transfer_buffer,
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From e9c2a3972496927631a1a98fef43e9538e9fd5d5 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Mon, 14 Mar 2016 15:53:38 +0100
|
||||
Subject: [PATCH v2] digi_acceleport: do sanity checking for the number of ports
|
||||
|
||||
The driver can be crashed with devices that expose crafted
|
||||
descriptors with too few endpoints.
|
||||
See:
|
||||
http://seclists.org/bugtraq/2016/Mar/61
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
|
||||
v1 - added sanity checks
|
||||
v2 - moved them to probe() to fix problems Johan pointed out
|
||||
---
|
||||
drivers/usb/serial/digi_acceleport.c | 24 +++++++++++++++++++-----
|
||||
1 file changed, 19 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c
|
||||
index 12b0e67..dab1dcf 100644
|
||||
--- a/drivers/usb/serial/digi_acceleport.c
|
||||
+++ b/drivers/usb/serial/digi_acceleport.c
|
||||
@@ -1252,7 +1252,8 @@ static int digi_port_init(struct usb_serial_port *port, unsigned port_num)
|
||||
static int digi_startup(struct usb_serial *serial)
|
||||
{
|
||||
struct digi_serial *serial_priv;
|
||||
- int ret;
|
||||
+ int ret = -ENODEV;
|
||||
+ int i;
|
||||
|
||||
serial_priv = kzalloc(sizeof(*serial_priv), GFP_KERNEL);
|
||||
if (!serial_priv)
|
||||
@@ -1260,18 +1261,31 @@ static int digi_startup(struct usb_serial *serial)
|
||||
|
||||
spin_lock_init(&serial_priv->ds_serial_lock);
|
||||
serial_priv->ds_oob_port_num = serial->type->num_ports;
|
||||
+
|
||||
+ /* Check whether the expected number of ports matches the device */
|
||||
+ if (serial->num_ports < serial_priv->ds_oob_port_num)
|
||||
+ goto error;
|
||||
+ /* all features must be present */
|
||||
+ for (i = 0; i < serial->type->num_ports + 1 ; i++) {
|
||||
+ if (!serial->port[i]->read_urb)
|
||||
+ goto error;
|
||||
+ if (!serial->port[i]->write_urb)
|
||||
+ goto error;
|
||||
+ }
|
||||
+
|
||||
serial_priv->ds_oob_port = serial->port[serial_priv->ds_oob_port_num];
|
||||
|
||||
ret = digi_port_init(serial_priv->ds_oob_port,
|
||||
serial_priv->ds_oob_port_num);
|
||||
- if (ret) {
|
||||
- kfree(serial_priv);
|
||||
- return ret;
|
||||
- }
|
||||
+ if (ret)
|
||||
+ goto error;
|
||||
|
||||
usb_set_serial_data(serial, serial_priv);
|
||||
|
||||
return 0;
|
||||
+error:
|
||||
+ kfree(serial_priv);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.1.4
|
|
@ -0,0 +1,43 @@
|
|||
From 888ba9b2a02e8d144c3a9ae5e01a1a94280cd2bf 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
|
||||
|
||||
Disable the requirement on CONFIG_EXPERT for ZONE_DMA and ZONE_DEVICE so
|
||||
that we can enable NVDIMM_PFN and ND_PFN
|
||||
|
||||
Signed-off-by: Justin Forbes <jforbes@fedoraproject.org>
|
||||
---
|
||||
arch/x86/Kconfig | 2 +-
|
||||
mm/Kconfig | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index a02c842..ea2eaeb 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -315,7 +315,7 @@ source "kernel/Kconfig.freezer"
|
||||
menu "Processor type and features"
|
||||
|
||||
config ZONE_DMA
|
||||
- bool "DMA memory allocation support" if EXPERT
|
||||
+ bool "DMA memory allocation support"
|
||||
default y
|
||||
help
|
||||
DMA memory allocation support allows devices with less than 32-bit
|
||||
diff --git a/mm/Kconfig b/mm/Kconfig
|
||||
index 97a4e06..26bbbe0 100644
|
||||
--- a/mm/Kconfig
|
||||
+++ b/mm/Kconfig
|
||||
@@ -650,7 +650,7 @@ config IDLE_PAGE_TRACKING
|
||||
See Documentation/vm/idle_page_tracking.txt for more details.
|
||||
|
||||
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
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -9,6 +9,8 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target"
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn media memstick message nfc ntb pcmcia platform ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn media memstick message mwave nfc ntb pcmcia platform ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
|
||||
|
||||
drmdrvs="amd armada bridge ast exynos i2c imx mgag200 msm omapdrm panel nouveau radeon rockchip tegra tilcdc via"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target"
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick mfd mmc mtd mwave nfc ntb pcmcia platform power ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user sbp_target"
|
||||
|
|
|
@ -14,25 +14,27 @@
|
|||
# listed here.
|
||||
|
||||
# Set the default dirs/modules to filter out
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
|
||||
|
||||
chardrvs="mwave pcmcia"
|
||||
|
||||
netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
|
||||
|
||||
ethdrvs="3com adaptec alteon amd atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
|
||||
|
||||
inputdrvs="gameport tablet touchscreen"
|
||||
|
||||
scsidrvs="aacraid aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs"
|
||||
|
||||
ttydrvs="ipwireless"
|
||||
|
||||
usbdrvs="atm wusbcore"
|
||||
usbdrvs="atm image misc serial wusbcore"
|
||||
|
||||
fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs udf ufs"
|
||||
|
||||
netprots="appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 netrom nfc rds rfkill rose sctp wireless"
|
||||
netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp wireless"
|
||||
|
||||
drmdrvs="ast gma500 mgag200 via nouveau"
|
||||
drmdrvs="amd ast gma500 i2c i915 mgag200 nouveau radeon via "
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub target_core_user sbp_target"
|
||||
|
||||
# Grab the arch-specific filter list overrides
|
||||
source ./filter-$2.sh
|
||||
|
@ -83,6 +85,12 @@ do
|
|||
filter_dir $1 drivers/net/${netdrv}
|
||||
done
|
||||
|
||||
# Filter the char drivers
|
||||
for char in ${chardrvs}
|
||||
do
|
||||
filter_dir $1 drivers/char/${input}
|
||||
done
|
||||
|
||||
# Filter the ethernet drivers
|
||||
for eth in ${ethdrvs}
|
||||
do
|
||||
|
@ -95,10 +103,10 @@ do
|
|||
filter_dir $1 drivers/scsi/${scsi}
|
||||
done
|
||||
|
||||
# TTY
|
||||
for tty in ${ttydrvs}
|
||||
# Input
|
||||
for input in ${inputdrvs}
|
||||
do
|
||||
filter_dir $1 drivers/tty/${tty}
|
||||
filter_dir $1 drivers/input/${input}
|
||||
done
|
||||
|
||||
# USB
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target"
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target"
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
# modifications to the overrides below. If something should be removed across
|
||||
# all arches, remove it in the default instead of per-arch.
|
||||
|
||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging uio uwb w1"
|
||||
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user"
|
||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qla1280 9pnet_rdma rpcrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target"
|
||||
|
|
|
@ -0,0 +1,464 @@
|
|||
From 4d321bf15d2d5e5b1b674f2a26a1c5202090a800 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Thu, 17 Mar 2016 15:19:04 +0000
|
||||
Subject: [PATCH] geekbox v4 patchset
|
||||
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/rockchip.txt | 9 +
|
||||
arch/arm64/boot/dts/rockchip/Makefile | 2 +
|
||||
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 2 +-
|
||||
.../dts/rockchip/rk3368-geekbox-landingship.dts | 57 ++++
|
||||
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts | 319 +++++++++++++++++++++
|
||||
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 2 +-
|
||||
6 files changed, 389 insertions(+), 2 deletions(-)
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts
|
||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
|
||||
index 078c14f..ae84f4e 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
|
||||
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
|
||||
@@ -87,6 +87,15 @@ Rockchip platforms device tree bindings
|
||||
"google,veyron-speedy-rev3", "google,veyron-speedy-rev2",
|
||||
"google,veyron-speedy", "google,veyron", "rockchip,rk3288";
|
||||
|
||||
+- GeekBuying GeekBox:
|
||||
+ Required root node properties:
|
||||
+ - compatible = "geekbuying,geekbox", "rockchip,rk3368";
|
||||
+
|
||||
+- GeekBuying Landingship with GeekBox module:
|
||||
+ Required root node properties:
|
||||
+ - compatible = "geekbuying,geekbox-landingship",
|
||||
+ "geekbuying,geekbox", "rockchip,rk3368";
|
||||
+
|
||||
- Rockchip RK3368 evb:
|
||||
Required root node properties:
|
||||
- compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368";
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
index e3f0b5f..201bcd9 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||
@@ -1,4 +1,6 @@
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb
|
||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox-landingship.dtb
|
||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
|
||||
|
||||
always := $(dtb-y)
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
|
||||
index 8c219cc..e4ceb53 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
|
||||
@@ -48,7 +48,7 @@
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
- memory {
|
||||
+ memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>;
|
||||
};
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts b/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts
|
||||
new file mode 100644
|
||||
index 0000000..a28ace9
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts
|
||||
@@ -0,0 +1,57 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2016 Andreas Färber
|
||||
+ *
|
||||
+ * This file is dual-licensed: you can use it either under the terms
|
||||
+ * of the GPL or the X11 license, at your option. Note that this dual
|
||||
+ * licensing only applies to this file, and not this project as a
|
||||
+ * whole.
|
||||
+ *
|
||||
+ * a) This file is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of the
|
||||
+ * License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This file is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * Or, alternatively,
|
||||
+ *
|
||||
+ * b) Permission is hereby granted, free of charge, to any person
|
||||
+ * obtaining a copy of this software and associated documentation
|
||||
+ * files (the "Software"), to deal in the Software without
|
||||
+ * restriction, including without limitation the rights to use,
|
||||
+ * copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
+ * sell copies of the Software, and to permit persons to whom the
|
||||
+ * Software is furnished to do so, subject to the following
|
||||
+ * conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be
|
||||
+ * included in all copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
+ * OTHER DEALINGS IN THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include "rk3368-geekbox.dts"
|
||||
+
|
||||
+/ {
|
||||
+ model = "GeekBox on Landingship";
|
||||
+ compatible = "geekbuying,geekbox-landingship",
|
||||
+ "geekbuying,geekbox", "rockchip,rk3368";
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&i2c2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
|
||||
new file mode 100644
|
||||
index 0000000..46cdddf
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
|
||||
@@ -0,0 +1,319 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2016 Andreas Färber
|
||||
+ *
|
||||
+ * This file is dual-licensed: you can use it either under the terms
|
||||
+ * of the GPL or the X11 license, at your option. Note that this dual
|
||||
+ * licensing only applies to this file, and not this project as a
|
||||
+ * whole.
|
||||
+ *
|
||||
+ * a) This file is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of the
|
||||
+ * License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This file is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * Or, alternatively,
|
||||
+ *
|
||||
+ * b) Permission is hereby granted, free of charge, to any person
|
||||
+ * obtaining a copy of this software and associated documentation
|
||||
+ * files (the "Software"), to deal in the Software without
|
||||
+ * restriction, including without limitation the rights to use,
|
||||
+ * copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
+ * sell copies of the Software, and to permit persons to whom the
|
||||
+ * Software is furnished to do so, subject to the following
|
||||
+ * conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be
|
||||
+ * included in all copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
+ * OTHER DEALINGS IN THE SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "rk3368.dtsi"
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "GeekBox";
|
||||
+ compatible = "geekbuying,geekbox", "rockchip,rk3368";
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial2:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x0 0x0 0x80000000>;
|
||||
+ };
|
||||
+
|
||||
+ ext_gmac: gmac-clk {
|
||||
+ compatible = "fixed-clock";
|
||||
+ clock-frequency = <125000000>;
|
||||
+ clock-output-names = "ext_gmac";
|
||||
+ #clock-cells = <0>;
|
||||
+ };
|
||||
+
|
||||
+ ir: ir-receiver {
|
||||
+ compatible = "gpio-ir-receiver";
|
||||
+ gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&ir_int>;
|
||||
+ };
|
||||
+
|
||||
+ keys: gpio-keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pwr_key>;
|
||||
+
|
||||
+ power {
|
||||
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
|
||||
+ label = "GPIO Power";
|
||||
+ linux,code = <KEY_POWER>;
|
||||
+ wakeup-source;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ leds: gpio-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+
|
||||
+ blue {
|
||||
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "geekbox:blue:led";
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+
|
||||
+ red {
|
||||
+ gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
|
||||
+ label = "geekbox:red:led";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ vcc_sys: vcc-sys-regulator {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc_sys";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&emmc {
|
||||
+ status = "okay";
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ clock-frequency = <150000000>;
|
||||
+ disable-wp;
|
||||
+ keep-power-in-suspend;
|
||||
+ non-removable;
|
||||
+ num-slots = <1>;
|
||||
+ vmmc-supply = <&vcc_io>;
|
||||
+ vqmmc-supply = <&vcc18_flash>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
|
||||
+};
|
||||
+
|
||||
+&gmac {
|
||||
+ status = "okay";
|
||||
+ phy-supply = <&vcc_lan>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ clock_in_out = "input";
|
||||
+ assigned-clocks = <&cru SCLK_MAC>;
|
||||
+ assigned-clock-parents = <&ext_gmac>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&rgmii_pins>;
|
||||
+ tx_delay = <0x30>;
|
||||
+ rx_delay = <0x10>;
|
||||
+};
|
||||
+
|
||||
+&i2c0 {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ rk808: pmic@1b {
|
||||
+ compatible = "rockchip,rk808";
|
||||
+ reg = <0x1b>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
|
||||
+ interrupt-parent = <&gpio0>;
|
||||
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ rockchip,system-power-controller;
|
||||
+ vcc1-supply = <&vcc_sys>;
|
||||
+ vcc2-supply = <&vcc_sys>;
|
||||
+ vcc3-supply = <&vcc_sys>;
|
||||
+ vcc4-supply = <&vcc_sys>;
|
||||
+ vcc6-supply = <&vcc_sys>;
|
||||
+ vcc7-supply = <&vcc_sys>;
|
||||
+ vcc8-supply = <&vcc_io>;
|
||||
+ vcc9-supply = <&vcc_sys>;
|
||||
+ vcc10-supply = <&vcc_sys>;
|
||||
+ vcc11-supply = <&vcc_sys>;
|
||||
+ vcc12-supply = <&vcc_io>;
|
||||
+ clock-output-names = "xin32k", "rk808-clkout2";
|
||||
+ #clock-cells = <1>;
|
||||
+
|
||||
+ regulators {
|
||||
+ vdd_cpu: DCDC_REG1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <1500000>;
|
||||
+ regulator-name = "vdd_cpu";
|
||||
+ };
|
||||
+
|
||||
+ vdd_log: DCDC_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <1500000>;
|
||||
+ regulator-name = "vdd_log";
|
||||
+ };
|
||||
+
|
||||
+ vcc_ddr: DCDC_REG3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc_ddr";
|
||||
+ };
|
||||
+
|
||||
+ vcc_io: DCDC_REG4 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc_io";
|
||||
+ };
|
||||
+
|
||||
+ vcc18_flash: LDO_REG1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc18_flash";
|
||||
+ };
|
||||
+
|
||||
+ vcc33_lcd: LDO_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc33_lcd";
|
||||
+ };
|
||||
+
|
||||
+ vdd_10: LDO_REG3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1000000>;
|
||||
+ regulator-name = "vdd_10";
|
||||
+ };
|
||||
+
|
||||
+ vcca_18: LDO_REG4 {
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcca_18";
|
||||
+ };
|
||||
+
|
||||
+ vccio_sd: LDO_REG5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vccio_sd";
|
||||
+ };
|
||||
+
|
||||
+ vdd10_lcd: LDO_REG6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1000000>;
|
||||
+ regulator-name = "vdd10_lcd";
|
||||
+ };
|
||||
+
|
||||
+ vcc_18: LDO_REG7 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc_18";
|
||||
+ };
|
||||
+
|
||||
+ vcc18_lcd: LDO_REG8 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "vcc18_lcd";
|
||||
+ };
|
||||
+
|
||||
+ vcc_sd: SWITCH_REG1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc_sd";
|
||||
+ };
|
||||
+
|
||||
+ vcc_lan: SWITCH_REG2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-name = "vcc_lan";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pinctrl {
|
||||
+ ir {
|
||||
+ ir_int: ir-int {
|
||||
+ rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ keys {
|
||||
+ pwr_key: pwr-key {
|
||||
+ rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pmic {
|
||||
+ pmic_sleep: pmic-sleep {
|
||||
+ rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
|
||||
+ };
|
||||
+
|
||||
+ pmic_int: pmic-int {
|
||||
+ rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&tsadc {
|
||||
+ status = "okay";
|
||||
+ rockchip,hw-tshut-mode = <0>; /* CRU */
|
||||
+ rockchip,hw-tshut-polarity = <1>; /* high */
|
||||
+};
|
||||
+
|
||||
+&uart2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_host0_ehci {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&wdt {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
|
||||
index 104cbee..9548129 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
|
||||
@@ -51,7 +51,7 @@
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
- memory {
|
||||
+ memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>;
|
||||
};
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From a4200b7eb26271108586d3a7cf34a2f16d460e48 Mon Sep 17 00:00:00 2001
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: Thu, 17 Mar 2016 15:10:47 +0100
|
||||
Subject: [PATCH] ims-pcu: sanity check against missing interfaces
|
||||
|
||||
A malicious device missing interface can make the driver oops.
|
||||
Add sanity checking.
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
CC: stable@vger.kernel.org
|
||||
---
|
||||
drivers/input/misc/ims-pcu.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
|
||||
index ac1fa5f44580..9c0ea36913b4 100644
|
||||
--- a/drivers/input/misc/ims-pcu.c
|
||||
+++ b/drivers/input/misc/ims-pcu.c
|
||||
@@ -1663,6 +1663,8 @@ static int ims_pcu_parse_cdc_data(struct usb_interface *intf, struct ims_pcu *pc
|
||||
|
||||
pcu->ctrl_intf = usb_ifnum_to_if(pcu->udev,
|
||||
union_desc->bMasterInterface0);
|
||||
+ if (!pcu->ctrl_intf)
|
||||
+ return -EINVAL;
|
||||
|
||||
alt = pcu->ctrl_intf->cur_altsetting;
|
||||
pcu->ep_ctrl = &alt->endpoint[0].desc;
|
||||
@@ -1670,6 +1672,8 @@ static int ims_pcu_parse_cdc_data(struct usb_interface *intf, struct ims_pcu *pc
|
||||
|
||||
pcu->data_intf = usb_ifnum_to_if(pcu->udev,
|
||||
union_desc->bSlaveInterface0);
|
||||
+ if (!pcu->data_intf)
|
||||
+ return -EINVAL;
|
||||
|
||||
alt = pcu->data_intf->cur_altsetting;
|
||||
if (alt->desc.bNumEndpoints != 2) {
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
Subject: [PATCH] Input: gtco: fix crash on detecting device without endpoints
|
||||
From: Vladis Dronov <vdronov@redhat.com>
|
||||
Date: 2016-03-18 18:35:00
|
||||
|
||||
The gtco 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. Fix minor coding
|
||||
style issue.
|
||||
|
||||
The full report of this issue can be found here:
|
||||
http://seclists.org/bugtraq/2016/Mar/86
|
||||
|
||||
Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
|
||||
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
|
||||
---
|
||||
drivers/input/tablet/gtco.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/input/tablet/gtco.c b/drivers/input/tablet/gtco.c
|
||||
index 3a7f3a4..7c18249 100644
|
||||
--- a/drivers/input/tablet/gtco.c
|
||||
+++ b/drivers/input/tablet/gtco.c
|
||||
@@ -858,6 +858,14 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
goto err_free_buf;
|
||||
}
|
||||
|
||||
+ /* Sanity check that a device has an endpoint */
|
||||
+ if (usbinterface->altsetting[0].desc.bNumEndpoints < 1) {
|
||||
+ dev_err(&usbinterface->dev,
|
||||
+ "Invalid number of endpoints\n");
|
||||
+ error = -EINVAL;
|
||||
+ goto err_free_urb;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* The endpoint is always altsetting 0, we know this since we know
|
||||
* this device only has one interrupt endpoint
|
||||
@@ -879,7 +887,7 @@ static int gtco_probe(struct usb_interface *usbinterface,
|
||||
* HID report descriptor
|
||||
*/
|
||||
if (usb_get_extra_descriptor(usbinterface->cur_altsetting,
|
||||
- HID_DEVICE_TYPE, &hid_desc) != 0){
|
||||
+ HID_DEVICE_TYPE, &hid_desc) != 0) {
|
||||
dev_err(&usbinterface->dev,
|
||||
"Can't retrieve exta USB descriptor to get hid report descriptor length\n");
|
||||
error = -EIO;
|
||||
--
|
||||
2.5.0
|
|
@ -1,97 +0,0 @@
|
|||
From fbd40ea0180a2d328c5adc61414dc8bab9335ce2 Mon Sep 17 00:00:00 2001
|
||||
From: "David S. Miller" <davem@davemloft.net>
|
||||
Date: Sun, 13 Mar 2016 23:28:00 -0400
|
||||
Subject: ipv4: Don't do expensive useless work during inetdev destroy.
|
||||
|
||||
When an inetdev is destroyed, every address assigned to the interface
|
||||
is removed. And in this scenerio we do two pointless things which can
|
||||
be very expensive if the number of assigned interfaces is large:
|
||||
|
||||
1) Address promotion. We are deleting all addresses, so there is no
|
||||
point in doing this.
|
||||
|
||||
2) A full nf conntrack table purge for every address. We only need to
|
||||
do this once, as is already caught by the existing
|
||||
masq_dev_notifier so masq_inet_event() can skip this.
|
||||
|
||||
Reported-by: Solar Designer <solar@openwall.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
Tested-by: Cyrill Gorcunov <gorcunov@openvz.org>
|
||||
---
|
||||
net/ipv4/devinet.c | 4 ++++
|
||||
net/ipv4/fib_frontend.c | 4 ++++
|
||||
net/ipv4/netfilter/nf_nat_masquerade_ipv4.c | 12 ++++++++++--
|
||||
3 files changed, 18 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
|
||||
index 65e76a4..e333bc8 100644
|
||||
--- a/net/ipv4/devinet.c
|
||||
+++ b/net/ipv4/devinet.c
|
||||
@@ -334,6 +334,9 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
||||
+ if (in_dev->dead)
|
||||
+ goto no_promotions;
|
||||
+
|
||||
/* 1. Deleting primary ifaddr forces deletion all secondaries
|
||||
* unless alias promotion is set
|
||||
**/
|
||||
@@ -380,6 +383,7 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
|
||||
fib_del_ifaddr(ifa, ifa1);
|
||||
}
|
||||
|
||||
+no_promotions:
|
||||
/* 2. Unlink it */
|
||||
|
||||
*ifap = ifa1->ifa_next;
|
||||
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
|
||||
index 4734475..21add55 100644
|
||||
--- a/net/ipv4/fib_frontend.c
|
||||
+++ b/net/ipv4/fib_frontend.c
|
||||
@@ -922,6 +922,9 @@ void fib_del_ifaddr(struct in_ifaddr *ifa, struct in_ifaddr *iprim)
|
||||
subnet = 1;
|
||||
}
|
||||
|
||||
+ if (in_dev->dead)
|
||||
+ goto no_promotions;
|
||||
+
|
||||
/* Deletion is more complicated than add.
|
||||
* We should take care of not to delete too much :-)
|
||||
*
|
||||
@@ -997,6 +1000,7 @@ void fib_del_ifaddr(struct in_ifaddr *ifa, struct in_ifaddr *iprim)
|
||||
}
|
||||
}
|
||||
|
||||
+no_promotions:
|
||||
if (!(ok & BRD_OK))
|
||||
fib_magic(RTM_DELROUTE, RTN_BROADCAST, ifa->ifa_broadcast, 32, prim);
|
||||
if (subnet && ifa->ifa_prefixlen < 31) {
|
||||
diff --git a/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c b/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
|
||||
index c6eb421..ea91058 100644
|
||||
--- a/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
|
||||
+++ b/net/ipv4/netfilter/nf_nat_masquerade_ipv4.c
|
||||
@@ -108,10 +108,18 @@ static int masq_inet_event(struct notifier_block *this,
|
||||
unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
- struct net_device *dev = ((struct in_ifaddr *)ptr)->ifa_dev->dev;
|
||||
+ struct in_device *idev = ((struct in_ifaddr *)ptr)->ifa_dev;
|
||||
struct netdev_notifier_info info;
|
||||
|
||||
- netdev_notifier_info_init(&info, dev);
|
||||
+ /* The masq_dev_notifier will catch the case of the device going
|
||||
+ * down. So if the inetdev is dead and being destroyed we have
|
||||
+ * no work to do. Otherwise this is an individual address removal
|
||||
+ * and we have to perform the flush.
|
||||
+ */
|
||||
+ if (idev->dead)
|
||||
+ return NOTIFY_DONE;
|
||||
+
|
||||
+ netdev_notifier_info_init(&info, idev->dev);
|
||||
return masq_device_event(this, event, &info);
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.12
|
||||
|
358
kernel.spec
358
kernel.spec
|
@ -11,10 +11,12 @@ Summary: The Linux kernel
|
|||
# Sign modules on x86. Make sure the config files match this setting if more
|
||||
# architectures are added.
|
||||
%ifarch %{ix86} x86_64
|
||||
%global signkernel 1
|
||||
%global signmodules 1
|
||||
%global zipmodules 1
|
||||
%else
|
||||
%global signmodules 0
|
||||
%global signkernel 0
|
||||
%global signmodules 1
|
||||
%global zipmodules 0
|
||||
%endif
|
||||
|
||||
|
@ -22,7 +24,7 @@ Summary: The Linux kernel
|
|||
%global zipsed -e 's/\.ko$/\.ko.xz/'
|
||||
%endif
|
||||
|
||||
%define buildid .hu.1.pf8
|
||||
%define buildid .hu.1.pf4
|
||||
|
||||
# baserelease defines which build revision of this kernel version we're
|
||||
# building. We used to call this fedora_build, but the magical name
|
||||
|
@ -40,20 +42,20 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 300
|
||||
%global baserelease 200
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||
# which yields a base_sublevel of 0.
|
||||
%define base_sublevel 4
|
||||
%define base_sublevel 5
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
#+Hu Pf against 4.4.5 v4.4-pf8: https://pf.natalenko.name/news/?p=166, https://pf.natalenko.name/news/?p=165
|
||||
%define stable_update 5
|
||||
#+Hu Pf against 4.5.6(?) v4.5-pf4: https://pf.natalenko.name/news/?p=177
|
||||
%define stable_update 6
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
@ -91,6 +93,7 @@ Summary: The Linux kernel
|
|||
%define with_debug %{?_without_debug: 0} %{?!_without_debug: 1}
|
||||
# kernel-headers
|
||||
%define with_headers %{?_without_headers: 0} %{?!_without_headers: 1}
|
||||
%define with_cross_headers %{?_without_cross_headers: 0} %{?!_without_cross_headers: 1}
|
||||
# perf
|
||||
%define with_perf %{?_without_perf: 0} %{?!_without_perf: 1}
|
||||
# tools
|
||||
|
@ -228,6 +231,7 @@ Summary: The Linux kernel
|
|||
%ifarch noarch
|
||||
%define with_up 0
|
||||
%define with_headers 0
|
||||
%define with_cross_headers 0
|
||||
%define with_tools 0
|
||||
%define with_perf 0
|
||||
%define all_arch_configs kernel-%{version}-*.config
|
||||
|
@ -292,6 +296,7 @@ Summary: The Linux kernel
|
|||
# just like we used to only build them on i386 for x86
|
||||
%ifnarch armv7hl
|
||||
%define with_headers 0
|
||||
%define with_cross_headers 0
|
||||
%define with_perf 0
|
||||
%define with_tools 0
|
||||
%endif
|
||||
|
@ -343,7 +348,7 @@ Summary: The Linux kernel
|
|||
# Packages that need to be installed before the kernel is, because the %%post
|
||||
# scripts use them.
|
||||
#
|
||||
%define kernel_prereq fileutils, systemd >= 203-2
|
||||
%define kernel_prereq fileutils, systemd >= 203-2, /usr/bin/kernel-install
|
||||
%define initrd_prereq dracut >= 027
|
||||
|
||||
|
||||
|
@ -392,14 +397,12 @@ BuildRequires: rpm-build, elfutils
|
|||
%define debuginfo_args --strict-build-id -r
|
||||
%endif
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
# MODULE_SIG is enabled in config-x86-generic and needs these:
|
||||
%if %{signkernel}%{signmodules}
|
||||
BuildRequires: openssl openssl-devel
|
||||
%endif
|
||||
|
||||
%if %{signmodules}
|
||||
%if %{signkernel}
|
||||
BuildRequires: pesign >= 0.10-4
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{with_cross}
|
||||
BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
|
||||
|
@ -468,8 +471,8 @@ Source2001: cpupower.config
|
|||
# For a stable release kernel
|
||||
%if 0%{?stable_update}
|
||||
%if 0%{?stable_base}
|
||||
#%%define stable_patch_00 patch-4.%%{base_sublevel}.%%{stable_base}.xz
|
||||
%global stable_patch_00 https://pf.natalenko.name/sources/4.4/patch-4.4-pf8.xz
|
||||
# %%define stable_patch_00 patch-4.%%{base_sublevel}.%%{stable_base}.xz
|
||||
%global stable_patch_00 https://pf.natalenko.name/sources/4.5/patch-4.5-pf4.xz
|
||||
Source5000: %{stable_patch_00}
|
||||
%endif
|
||||
|
||||
|
@ -495,22 +498,44 @@ Source5005: kbuild-AFTER_LINK.patch
|
|||
|
||||
%if !%{nopatches}
|
||||
|
||||
|
||||
# Git trees.
|
||||
|
||||
# Standalone patches
|
||||
Patch420: arm64-avoid-needing-console-to-enable-serial-console.patch
|
||||
|
||||
Patch451: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
Patch421: arm64-acpi-drop-expert-patch.patch
|
||||
|
||||
Patch454: arm64-avoid-needing-console-to-enable-serial-console.patch
|
||||
# http://www.spinics.net/lists/arm-kernel/msg490981.html
|
||||
Patch422: geekbox-v4-device-tree-support.patch
|
||||
|
||||
Patch456: arm64-acpi-drop-expert-patch.patch
|
||||
# http://www.spinics.net/lists/arm-kernel/msg483898.html
|
||||
Patch423: Initial-AllWinner-A64-and-PINE64-support.patch
|
||||
|
||||
Patch457: ARM-tegra-usb-no-reset.patch
|
||||
# http://www.spinics.net/lists/linux-tegra/msg26029.html
|
||||
Patch426: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch
|
||||
|
||||
Patch460: mfd-wm8994-Ensure-that-the-whole-MFD-is-built-into-a.patch
|
||||
# http://patchwork.ozlabs.org/patch/587554/
|
||||
Patch430: ARM-tegra-usb-no-reset.patch
|
||||
|
||||
Patch463: arm-i.MX6-Utilite-device-dtb.patch
|
||||
Patch431: arm-i.MX6-Utilite-device-dtb.patch
|
||||
|
||||
# http://www.spinics.net/lists/linux-tegra/msg25152.html
|
||||
Patch432: Fix-tegra-to-use-stdout-path-for-serial-console.patch
|
||||
|
||||
Patch433: bcm283x-Pull-upstream-fixes-plus-iproc-mmc-driver.patch
|
||||
|
||||
# http://www.spinics.net/lists/netdev/msg369442.html
|
||||
Patch434: revert-stmmac-Fix-eth0-No-PHY-found-regression.patch
|
||||
Patch435: stmmac-fix-MDIO-settings.patch
|
||||
|
||||
Patch436: ARM-mvebu-change-order-of-ethernet-DT-nodes-on-Armada-38x.patch
|
||||
|
||||
# mvebu DSA switch fixes
|
||||
# http://www.spinics.net/lists/netdev/msg370841.html http://www.spinics.net/lists/netdev/msg370842.html
|
||||
Patch438: 0001-net-dsa-mv88e6xxx-Introduce-_mv88e6xxx_phy_page_-rea.patch
|
||||
Patch439: 0002-net-dsa-mv88e6xxx-Clear-the-PDOWN-bit-on-setup.patch
|
||||
|
||||
Patch460: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
|
||||
Patch466: input-kill-stupid-messages.patch
|
||||
|
||||
|
@ -588,66 +613,17 @@ Patch503: drm-i915-turn-off-wc-mmaps.patch
|
|||
|
||||
Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch
|
||||
|
||||
#CVE-2015-7833 rhbz 1270158 1270160
|
||||
Patch567: usbvision-fix-crash-on-detecting-device-with-invalid.patch
|
||||
|
||||
#rhbz 1287819
|
||||
Patch570: HID-multitouch-enable-palm-rejection-if-device-imple.patch
|
||||
|
||||
#rhbz 1286293
|
||||
Patch571: ideapad-laptop-Add-Lenovo-ideapad-Y700-17ISK-to-no_h.patch
|
||||
|
||||
#rhbz 1288687
|
||||
Patch572: alua_fix.patch
|
||||
|
||||
#rhbz 1083853
|
||||
Patch610: PNP-Add-Broadwell-to-Intel-MCH-size-workaround.patch
|
||||
|
||||
################# Hubbitus patches
|
||||
# My patch to resolve compile problem:
|
||||
#+ make -s ARCH=x86_64 V=1 -j3 bzImage
|
||||
#In file included from include/linux/srcu.h:33:0,
|
||||
# from include/linux/notifier.h:15,
|
||||
# from include/linux/memory_hotplug.h:6,
|
||||
# from include/linux/mmzone.h:800,
|
||||
# from include/linux/gfp.h:4,
|
||||
# from include/linux/slab.h:14,
|
||||
# from kernel/sched/stats.c:2:
|
||||
#kernel/sched/stats.c: In function 'show_schedstat':
|
||||
#kernel/sched/bfs_sched.h:104:27: error: 'sched_domains_mutex' undeclared (first use in this function)
|
||||
# lockdep_is_held(&sched_domains_mutex))
|
||||
#? Patch30007: kernel-3.19-bfs-compat-hubbitus.patch
|
||||
# https://kojipkgs.fedoraproject.org//work/tasks/258/9750258/build.log
|
||||
# kernel/sched/bfs.c:522:20: error: function declaration isn't a prototype [-Werror=strict-prototypes]
|
||||
# static inline void grq_priodl_lock()
|
||||
|
||||
# My patch to fix ERROR: "function_trace_stop" [kernel/power/tuxonice_core.ko] undefined!
|
||||
#? Patch30008: tuxonice-function_trace_stop-undefined-compilation-problem.patch
|
||||
#//////////////// end Hubbitus patches
|
||||
|
||||
#rhbz 1300955
|
||||
Patch640: PNP-Add-Haswell-ULT-to-Intel-MCH-size-workaround.patch
|
||||
|
||||
#rhbz 1278942
|
||||
Patch643: media-ivtv-avoid-going-past-input-audio-array.patch
|
||||
#Required for some persistent memory options
|
||||
Patch641: disable-CONFIG_EXPERT-for-ZONE_DMA.patch
|
||||
|
||||
#rhbz 1255325
|
||||
Patch646: HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch
|
||||
|
||||
#Known use after free, possibly rhbz 1310579
|
||||
Patch654: 0001-usb-hub-fix-panic-in-usb_reset_and_verify_device.patch
|
||||
|
||||
#Mitigates CVE-2013-4312 rhbz 1313428 1313433
|
||||
Patch659: pipe-limit-the-per-user-amount-of-pages-allocated-in.patch
|
||||
|
||||
#rhbz 1310252 1313318
|
||||
Patch660: 0001-drm-i915-Pretend-cursor-is-always-on-for-ILK-style-W.patch
|
||||
|
||||
#rhbz 1316719
|
||||
Patch662: 0001-cdc-acm-fix-NULL-pointer-reference.patch
|
||||
|
||||
#rhbz 1316136
|
||||
Patch663: USB-serial-ftdi_sio-Add-support-for-ICP-DAS-I-756xU-.patch
|
||||
#rhbz 1309658
|
||||
Patch648: 0001-mm-CONFIG_NR_ZONES_EXTENDED.patch
|
||||
|
||||
#CVE-2016-3135 rhbz 1317386 1317387
|
||||
Patch664: netfilter-x_tables-check-for-size-overflow.patch
|
||||
|
@ -655,49 +631,40 @@ Patch664: netfilter-x_tables-check-for-size-overflow.patch
|
|||
#CVE-2016-3134 rhbz 1317383 1317384
|
||||
Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
|
||||
|
||||
#CVE-2016-3135 rhbz 1318172 1318270
|
||||
Patch666: ipv4-Dont-do-expensive-useless-work-during-inetdev-des.patch
|
||||
# CVE-2016-3672 rhbz 1324749 1324750
|
||||
Patch689: x86-mm-32-Enable-full-randomization-on-i386-and-X86_.patch
|
||||
|
||||
#CVE-2016-2184 rhbz 1317012 1317470
|
||||
Patch670: ALSA-usb-audio-Fix-NULL-dereference-in-create_fixed_.patch
|
||||
Patch671: ALSA-usb-audio-Add-sanity-checks-for-endpoint-access.patch
|
||||
#rhbz 1309487
|
||||
Patch701: antenna_select.patch
|
||||
|
||||
#CVE-2016-3137 rhbz 1317010 1316996
|
||||
Patch672: cypress_m8-add-sanity-checking.patch
|
||||
#rhbz 1302071
|
||||
Patch702: x86-build-Build-compressed-x86-kernels-as-PIE.patch
|
||||
|
||||
#CVE-2016-2186 rhbz 1317015 1317464
|
||||
Patch673: USB-input-powermate-fix-oops-with-malicious-USB-desc.patch
|
||||
# Stop splashing crap about broken firmware BGRT
|
||||
Patch704: x86-efi-bgrt-Switch-all-pr_err-to-pr_debug-for-inval.patch
|
||||
|
||||
#CVE-2016-2188 rhbz 1317018 1317467
|
||||
Patch674: USB-iowarrior-fix-oops-with-malicious-USB-descriptor.patch
|
||||
#rhbz 1331092
|
||||
Patch705: mm-thp-kvm-fix-memory-corruption-in-KVM-with-THP-ena.patch
|
||||
|
||||
#CVE-2016-2185 rhbz 1317014 1317471
|
||||
Patch675: usb_driver_claim_interface-add-sanity-checking.patch
|
||||
#CVE-2016-4482 rhbz 1332931 1332932
|
||||
Patch706: USB-usbfs-fix-potential-infoleak-in-devio.patch
|
||||
|
||||
#CVE-2016-3138 rhbz 1317010 1316204
|
||||
Patch676: cdc-acm-more-sanity-checking.patch
|
||||
#CVE-2016-4569 rhbz 1334643 1334645
|
||||
Patch714: ALSA-timer-Fix-leak-in-SNDRV_TIMER_IOCTL_PARAMS.patch
|
||||
Patch715: ALSA-timer-Fix-leak-in-events-via-snd_timer_user_cca.patch
|
||||
Patch716: ALSA-timer-Fix-leak-in-events-via-snd_timer_user_tin.patch
|
||||
|
||||
#CVE-2016-3140 rhbz 1317010 1316995
|
||||
Patch677: digi_acceleport-do-sanity-checking-for-the-number-of.patch
|
||||
#CVE-2016-0758 rhbz 1300257 1335386
|
||||
Patch717: KEYS-Fix-ASN.1-indefinite-length-object-parsing.patch
|
||||
|
||||
Patch678: ims-pcu-sanity-check-against-missing-interfaces.patch
|
||||
#CVE-2016-4440 rhbz 1337806 1337807
|
||||
Patch719: kvm-vmx-more-complete-state-update-on-APICv-on-off.patch
|
||||
|
||||
#rhbz 1315013
|
||||
Patch679: 0001-uas-Limit-qdepth-at-the-scsi-host-level.patch
|
||||
|
||||
#rhbz 1317190
|
||||
Patch680: thermal-fix.patch
|
||||
|
||||
#rhbz 1318079
|
||||
Patch681: 0001-Input-synaptics-handle-spurious-release-of-trackstic.patch
|
||||
|
||||
#CVE-2016-2187 rhbz 1317017 1317010
|
||||
Patch686: input-gtco-fix-crash-on-detecting-device-without-end.patch
|
||||
|
||||
#CVE-2016-3136 rhbz 1317007 1317010
|
||||
Patch687: mct_u232-sanity-checking-in-probe.patch
|
||||
#CVE-2016-4951 rhbz 1338625 1338626
|
||||
Patch720: tipc-check-nl-sock-before-parsing-nested-attributes.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||
|
@ -752,6 +719,17 @@ header files define structures and constants that are needed for
|
|||
building most standard programs and are also needed for rebuilding the
|
||||
glibc package.
|
||||
|
||||
%package cross-headers
|
||||
Summary: Header files for the Linux kernel for use by cross-glibc
|
||||
Group: Development/System
|
||||
%description cross-headers
|
||||
Kernel-cross-headers includes the C header files that specify the interface
|
||||
between the Linux kernel and userspace libraries and programs. The
|
||||
header files define structures and constants that are needed for
|
||||
building most standard programs and are also needed for rebuilding the
|
||||
cross-glibc package.
|
||||
|
||||
|
||||
%package bootwrapper
|
||||
Summary: Boot wrapper files for generating combined kernel + initrd images
|
||||
Group: Development/System
|
||||
|
@ -1405,7 +1383,7 @@ BuildKernel() {
|
|||
make -s mrproper
|
||||
cp configs/$Config .config
|
||||
|
||||
%if %{signmodules}
|
||||
%if %{signkernel}%{signmodules}
|
||||
cp %{SOURCE11} certs/.
|
||||
%endif
|
||||
|
||||
|
@ -1442,7 +1420,7 @@ BuildKernel() {
|
|||
cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
|
||||
cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || :
|
||||
fi
|
||||
%if %{signmodules}
|
||||
%if %{signkernel}
|
||||
# Sign the image if we're using EFI
|
||||
%pesign -s -i $KernelImage -o vmlinuz.signed
|
||||
if [ ! -s vmlinuz.signed ]; then
|
||||
|
@ -1527,9 +1505,35 @@ BuildKernel() {
|
|||
if [ -d arch/%{asmarch}/mach-${Flavour}/include ]; then
|
||||
cp -a --parents arch/%{asmarch}/mach-${Flavour}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
fi
|
||||
# include a few files for 'make prepare'
|
||||
cp -a --parents arch/arm/tools/gen-mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/arm/tools/mach-types $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
|
||||
%endif
|
||||
cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
# files for 'make prepare' to succeed with kernel-devel
|
||||
cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/entry/syscalls/syscallhdr.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/entry/syscalls/syscall_64.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/tools/relocs_32.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/tools/relocs_64.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/sha256.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/sha256.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/purgatory/entry64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/boot/string.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/boot/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
cp -a --parents arch/x86/boot/ctype.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
|
||||
%endif
|
||||
# Make sure the Makefile and version.h have a matching timestamp so that
|
||||
# external modules can be built
|
||||
touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/generated/uapi/linux/version.h
|
||||
|
@ -1817,11 +1821,40 @@ find $RPM_BUILD_ROOT/usr/include \
|
|||
|
||||
%endif
|
||||
|
||||
%if %{with_cross_headers}
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers
|
||||
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers headers_install_all
|
||||
|
||||
find $RPM_BUILD_ROOT/usr/tmp-headers/include \
|
||||
\( -name .install -o -name .check -o \
|
||||
-name ..install.cmd -o -name ..check.cmd \) | xargs rm -f
|
||||
|
||||
# Copy all the architectures we care about to their respective asm directories
|
||||
for arch in arm arm64 powerpc s390 x86 ; do
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
|
||||
mv $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-${arch} $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/asm
|
||||
cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-generic $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
|
||||
done
|
||||
|
||||
# Remove the rest of the architectures
|
||||
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/arch*
|
||||
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-*
|
||||
|
||||
# Copy the rest of the headers over
|
||||
for arch in arm arm64 powerpc s390 x86 ; do
|
||||
cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
|
||||
done
|
||||
|
||||
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
|
||||
%endif
|
||||
|
||||
%if %{with_perf}
|
||||
# perf tool binary and supporting scripts/binaries
|
||||
%{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin install-traceevent-plugins
|
||||
# remove the 'trace' symlink.
|
||||
rm -f %{buildroot}%{_bindir}/trace
|
||||
# remove the perf-tips
|
||||
rm -rf %{buildroot}%{_docdir}/perf-tip
|
||||
|
||||
# python-perf extension
|
||||
%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-python_ext
|
||||
|
@ -2001,6 +2034,12 @@ fi
|
|||
/usr/include/*
|
||||
%endif
|
||||
|
||||
%if %{with_cross_headers}
|
||||
%files cross-headers
|
||||
%defattr(-,root,root)
|
||||
/usr/*-linux-gnu/include/*
|
||||
%endif
|
||||
|
||||
%if %{with_bootwrapper}
|
||||
%files bootwrapper
|
||||
%defattr(-,root,root)
|
||||
|
@ -2118,6 +2157,7 @@ fi
|
|||
%defattr(-,root,root)\
|
||||
%{expand:%%files %{?2:%{2}-}devel}\
|
||||
%defattr(-,root,root)\
|
||||
%defverify(not mtime)\
|
||||
/usr/src/kernels/%{KVERREL}%{?2:+%{2}}\
|
||||
%{expand:%%files %{?2:%{2}-}modules-extra}\
|
||||
%defattr(-,root,root)\
|
||||
|
@ -2145,6 +2185,106 @@ fi
|
|||
# and build.
|
||||
#
|
||||
%changelog
|
||||
* Wed Jun 01 2016 Justin M. Forbes <jforbes@fedoraproject.org> 4.5.6-200
|
||||
- Linux v4.5.6
|
||||
|
||||
* Mon May 23 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-4951 null ptr deref in tipc_nl_publ_dump (rhbz 1338625 1338626)
|
||||
|
||||
* Fri May 20 2016 Justin M. Forbes <jforbes@fedoraproject.org> 4.5.5-201
|
||||
- Remove the installonly additions until dnf can handle the transition
|
||||
|
||||
* Fri May 20 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-4440 kvm: incorrect state leading to APIC register access (rhbz 1337806 1337807)
|
||||
|
||||
* Thu May 19 2016 Josh Boyer <jwboyer@fedoraproject.org> - 4.5.5-200
|
||||
- Linux v4.5.5
|
||||
- CVE-2016-4913 isofs: info leak with malformed NM entries (rhbz 1337528 1337529)
|
||||
|
||||
* Mon May 16 2016 Justin M. Forbes <jforbes@fedoraproject.org>
|
||||
- Disable CONFIG_DEBUG_VM_PGFLAGS on non debug kernels (rhbz 1335173)
|
||||
|
||||
* Mon May 16 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-3713 kvm: out-of-bounds access in set_var_mtrr_msr (rhbz 1332139 1336410)
|
||||
|
||||
* Fri May 13 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-0758 pointer corruption in asn1 decoder (rhbz 1300257 1335386)
|
||||
|
||||
* Wed May 11 2016 Justin M. Forbes <jforbes@fedoraproject.org> - 4.5.4-200
|
||||
- Linux v4.5.4
|
||||
|
||||
* Tue May 10 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Enable XEN SCSI front and backend (rhbz 1334512)
|
||||
- CVE-2016-4569 info leak in sound module (rhbz 1334643 1334645)
|
||||
|
||||
* Mon May 09 2016 Justin M. Forbes <jforbes@fedoraproject.org> -4.5.3-200
|
||||
- Linux v4.5.3 rebase
|
||||
|
||||
* Mon May 09 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-4557 bpf: Use after free vulnerability via double fdput
|
||||
CVE-2016-4558 bpf: refcnt overflow (rhbz 1334307 1334303 1334311)
|
||||
|
||||
* Fri May 06 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Oops in propogate_mnt if first copy is slave (rhbz 1333712 1333713)
|
||||
|
||||
* Thu May 05 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-4486 CVE-2016-4485 info leaks (rhbz 1333316 1333309 1333321)
|
||||
|
||||
* Wed May 04 2016 Laura Abbott <labbott@fedoraproject.org> - 4.4.9-300
|
||||
- Linux v4.4.9
|
||||
|
||||
* Wed May 04 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Enable NFC_NXP_NCI options (rhbz 1290556)
|
||||
- CVE-2016-4482 info leak in devio.c (rhbz 1332931 1332932)
|
||||
|
||||
* Fri Apr 29 2016 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Add patch to fix i.MX6 graphics
|
||||
|
||||
* Thu Apr 28 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Don't splash warnings from broken BGRT firmware implementations
|
||||
- Require /usr/bin/kernel-install (rhbz 1331012)
|
||||
|
||||
* Tue Apr 26 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Enable IEEE802154_AT86RF230 on more arches (rhbz 1330356)
|
||||
|
||||
* Wed Apr 20 2016 Laura Abbott <labbott@fedoraproject.org> - 4.4.8-300
|
||||
- Linux v4.4.8
|
||||
- Allow antenna selection for rtl8723be (rhbz 1309487)
|
||||
|
||||
* Tue Apr 19 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-3955 usbip: buffer overflow by trusting length of incoming packets (rhbz 1328478 1328479)
|
||||
|
||||
* Fri Apr 15 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-3961 xen: hugetlbfs use may crash PV guests (rhbz 1327219 1323956)
|
||||
|
||||
* Wed Apr 13 2016 Laura Abbott <labbott@fedoraproject.org>
|
||||
- Fix for Skylake pstate issues (rhbz 1309980)
|
||||
|
||||
* Tue Apr 12 2016 Laura Abbott <labbott@redhat.com> - 4.4.7-300
|
||||
- Linux v4.4.7
|
||||
|
||||
* Tue Apr 12 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix Bamboo ONE issues (rhbz 1317116)
|
||||
|
||||
* Mon Apr 11 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-3951 usbnet: crash on invalid USB descriptors (rhbz 1324782 1324815)
|
||||
- CVE-2015-8839 ext4: data corruption due to punch hole races (rhbz 1323577 1323579)
|
||||
|
||||
* Thu Apr 07 2016 Justin M. Forbes <jforbes@fedoraproject.org>
|
||||
- Enable Full Randomization on 32bit x86 CVE-2016-3672 (rhbz 1324749 1324750)
|
||||
|
||||
* Thu Mar 31 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Add two more patches for CVE-2016-2184
|
||||
|
||||
* Wed Mar 30 2016 Laura Abbott <labbott@redhat.com> - 4.4.6-301
|
||||
- Bump and build
|
||||
|
||||
* Tue Mar 29 2016 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- CVE-2016-3157 xen: priv escalation on 64bit PV domains with io port access (rhbz 1315711 1321948)
|
||||
|
||||
* Wed Mar 23 2016 Laura Abbott <labbott@fedoraproject.org>
|
||||
- drm/udl: Use unlocked gem unreferencing (rhbz 1295646)
|
||||
|
||||
* Wed Mar 23 2016 Pavel Alexeev <Pahan@Hubbitus.info> - 4.4.5-300.hu.1.pf8
|
||||
- Merge upstream changes (4.4.6).
|
||||
- Update pf patch to v4.4-pf8, but it stick on 4.4.5 (https://pf.natalenko.name/news/?p=166, https://pf.natalenko.name/news/?p=165)
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
From: Roman Kagan <rkagan@virtuozzo.com>
|
||||
Subject: [PATCH v3] kvm:vmx: more complete state update on APICv on/off
|
||||
Date: 2016-05-18 14:48:20 GMT (1 day, 21 hours and 23 minutes ago)
|
||||
|
||||
The function to update APICv on/off state (in particular, to deactivate
|
||||
it when enabling Hyper-V SynIC), used to be incomplete: it didn't adjust
|
||||
APICv-related fields among secondary processor-based VM-execution
|
||||
controls.
|
||||
|
||||
As a result, Windows 2012 guests would get stuck when SynIC-based
|
||||
auto-EOI interrupt intersected with e.g. an IPI in the guest.
|
||||
|
||||
In addition, the MSR intercept bitmap wasn't updated to correspond to
|
||||
whether "virtualize x2APIC mode" was enabled. This path used not to be
|
||||
triggered, since Windows didn't use x2APIC but rather their own
|
||||
synthetic APIC access MSRs; however it represented a security risk
|
||||
because the guest running in a SynIC-enabled VM could switch to x2APIC
|
||||
and thus obtain direct access to host APIC MSRs (thanks to Yang Zhang
|
||||
<yang.zhang.wz@gmail.com> for spotting this).
|
||||
|
||||
The patch fixes those omissions.
|
||||
|
||||
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
|
||||
Cc: Steve Rutherford <srutherford@google.com>
|
||||
Cc: Yang Zhang <yang.zhang.wz@gmail.com>
|
||||
---
|
||||
v2 -> v3:
|
||||
- only switch to x2apic msr bitmap if virtualize x2apic mode is on in vmcs
|
||||
|
||||
v1 -> v2:
|
||||
- only update relevant bits in the secondary exec control
|
||||
- update msr intercept bitmap (also make x2apic msr bitmap always
|
||||
correspond to APICv)
|
||||
|
||||
arch/x86/kvm/vmx.c | 48 ++++++++++++++++++++++++++++++------------------
|
||||
1 file changed, 30 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
||||
index ee1c8a9..cef741a 100644
|
||||
--- a/arch/x86/kvm/vmx.c
|
||||
+++ b/arch/x86/kvm/vmx.c
|
||||
@@ -2418,7 +2418,9 @@ static void vmx_set_msr_bitmap(struct kvm_vcpu *vcpu)
|
||||
|
||||
if (is_guest_mode(vcpu))
|
||||
msr_bitmap = vmx_msr_bitmap_nested;
|
||||
- else if (vcpu->arch.apic_base & X2APIC_ENABLE) {
|
||||
+ else if (cpu_has_secondary_exec_ctrls() &&
|
||||
+ (vmcs_read32(SECONDARY_VM_EXEC_CONTROL) &
|
||||
+ SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE)) {
|
||||
if (is_long_mode(vcpu))
|
||||
msr_bitmap = vmx_msr_bitmap_longmode_x2apic;
|
||||
else
|
||||
@@ -4783,6 +4785,19 @@ static void vmx_refresh_apicv_exec_ctrl(struct kvm_vcpu *vcpu)
|
||||
struct vcpu_vmx *vmx = to_vmx(vcpu);
|
||||
|
||||
vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, vmx_pin_based_exec_ctrl(vmx));
|
||||
+ if (cpu_has_secondary_exec_ctrls()) {
|
||||
+ if (kvm_vcpu_apicv_active(vcpu))
|
||||
+ vmcs_set_bits(SECONDARY_VM_EXEC_CONTROL,
|
||||
+ SECONDARY_EXEC_APIC_REGISTER_VIRT |
|
||||
+ SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
|
||||
+ else
|
||||
+ vmcs_clear_bits(SECONDARY_VM_EXEC_CONTROL,
|
||||
+ SECONDARY_EXEC_APIC_REGISTER_VIRT |
|
||||
+ SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
|
||||
+ }
|
||||
+
|
||||
+ if (cpu_has_vmx_msr_bitmap())
|
||||
+ vmx_set_msr_bitmap(vcpu);
|
||||
}
|
||||
|
||||
static u32 vmx_exec_control(struct vcpu_vmx *vmx)
|
||||
@@ -6329,23 +6344,20 @@ static __init int hardware_setup(void)
|
||||
|
||||
set_bit(0, vmx_vpid_bitmap); /* 0 is reserved for host */
|
||||
|
||||
- if (enable_apicv) {
|
||||
- for (msr = 0x800; msr <= 0x8ff; msr++)
|
||||
- vmx_disable_intercept_msr_read_x2apic(msr);
|
||||
-
|
||||
- /* According SDM, in x2apic mode, the whole id reg is used.
|
||||
- * But in KVM, it only use the highest eight bits. Need to
|
||||
- * intercept it */
|
||||
- vmx_enable_intercept_msr_read_x2apic(0x802);
|
||||
- /* TMCCT */
|
||||
- vmx_enable_intercept_msr_read_x2apic(0x839);
|
||||
- /* TPR */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x808);
|
||||
- /* EOI */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x80b);
|
||||
- /* SELF-IPI */
|
||||
- vmx_disable_intercept_msr_write_x2apic(0x83f);
|
||||
- }
|
||||
+ for (msr = 0x800; msr <= 0x8ff; msr++)
|
||||
+ vmx_disable_intercept_msr_read_x2apic(msr);
|
||||
+
|
||||
+ /* According SDM, in x2apic mode, the whole id reg is used. But in
|
||||
+ * KVM, it only use the highest eight bits. Need to intercept it */
|
||||
+ vmx_enable_intercept_msr_read_x2apic(0x802);
|
||||
+ /* TMCCT */
|
||||
+ vmx_enable_intercept_msr_read_x2apic(0x839);
|
||||
+ /* TPR */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x808);
|
||||
+ /* EOI */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x80b);
|
||||
+ /* SELF-IPI */
|
||||
+ vmx_disable_intercept_msr_write_x2apic(0x83f);
|
||||
|
||||
if (enable_ept) {
|
||||
kvm_mmu_set_mask_ptes(0ull,
|
||||
--
|
||||
2.5.5
|
|
@ -1,35 +0,0 @@
|
|||
Subject: [PATCH v2] mct_u232: sanity checking in probe
|
||||
From: Oliver Neukum <oneukum@suse.com>
|
||||
Date: 2016-03-21 13:14:37
|
||||
|
||||
An attack using the lack of sanity checking in probe
|
||||
is known. This patch checks for the existance of a
|
||||
second port.
|
||||
CVE-2016-3136
|
||||
|
||||
Signed-off-by: Oliver Neukum <ONeukum@suse.com>
|
||||
CC: stable@vger.kernel.org
|
||||
|
||||
v1 - add sanity check for presence of a second port
|
||||
v2 - add sanity check for an interrupt endpoint
|
||||
---
|
||||
drivers/usb/serial/mct_u232.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
|
||||
index 4446b8d..3e64538 100644
|
||||
--- a/drivers/usb/serial/mct_u232.c
|
||||
+++ b/drivers/usb/serial/mct_u232.c
|
||||
@@ -378,6 +378,10 @@ static int mct_u232_port_probe(struct usb_serial_port *port)
|
||||
{
|
||||
struct mct_u232_private *priv;
|
||||
|
||||
+ /* check first to simplify error handling */
|
||||
+ if (!port->serial->port[1] || !port->serial->port[1]->interrupt_in_urb)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
--
|
||||
2.1.4
|
|
@ -1,29 +0,0 @@
|
|||
From d55ebd07b6c21a1c7e3e74f1b73b3b033cece2b5 Mon Sep 17 00:00:00 2001
|
||||
From: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
|
||||
Date: Wed, 11 Nov 2015 09:27:42 -0200
|
||||
Subject: [PATCH] [media] ivtv: avoid going past input/audio array
|
||||
|
||||
As reported by smatch:
|
||||
drivers/media/pci/ivtv/ivtv-driver.c:832 ivtv_init_struct2() error: buffer overflow 'itv->card->video_inputs' 6 <= 6
|
||||
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
|
||||
---
|
||||
drivers/media/pci/ivtv/ivtv-driver.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
|
||||
index c2e60b4f292d..2bb10cd9ecfd 100644
|
||||
--- a/drivers/media/pci/ivtv/ivtv-driver.c
|
||||
+++ b/drivers/media/pci/ivtv/ivtv-driver.c
|
||||
@@ -826,7 +826,7 @@ static void ivtv_init_struct2(struct ivtv *itv)
|
||||
IVTV_CARD_INPUT_VID_TUNER)
|
||||
break;
|
||||
}
|
||||
- if (i == itv->nof_inputs)
|
||||
+ if (i >= itv->nof_inputs)
|
||||
i = 0;
|
||||
itv->active_input = i;
|
||||
itv->audio_input = itv->card->video_inputs[i].audio_index;
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From 567a18f57213647e2c31bbdc7f6b8f9991d22fad Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Fri, 13 Nov 2015 19:03:29 +0000
|
||||
Subject: [PATCH] mfd: wm8994: Ensure that the whole MFD is built into a single
|
||||
module
|
||||
|
||||
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
|
||||
---
|
||||
drivers/mfd/Makefile | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
|
||||
index a59e3fc..4a767ef 100644
|
||||
--- a/drivers/mfd/Makefile
|
||||
+++ b/drivers/mfd/Makefile
|
||||
@@ -61,7 +61,8 @@ wm8350-objs := wm8350-core.o wm8350-regmap.o wm8350-gpio.o
|
||||
wm8350-objs += wm8350-irq.o
|
||||
obj-$(CONFIG_MFD_WM8350) += wm8350.o
|
||||
obj-$(CONFIG_MFD_WM8350_I2C) += wm8350-i2c.o
|
||||
-obj-$(CONFIG_MFD_WM8994) += wm8994-core.o wm8994-irq.o wm8994-regmap.o
|
||||
+wm8994-objs := wm8994-core.o wm8994-irq.o wm8994-regmap.o
|
||||
+obj-$(CONFIG_MFD_WM8994) += wm8994.o
|
||||
|
||||
obj-$(CONFIG_TPS6105X) += tps6105x.o
|
||||
obj-$(CONFIG_TPS65010) += tps65010.o
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
From 94f984ff563d1777652b822d7a282cacc1e481c2 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Arcangeli <aarcange@redhat.com>
|
||||
Date: Wed, 27 Apr 2016 12:04:46 -0500
|
||||
Subject: [PATCH] mm: thp: kvm: fix memory corruption in KVM with THP enabled
|
||||
|
||||
After the THP refcounting change, obtaining a compound pages from
|
||||
get_user_pages() no longer allows us to assume the entire compound
|
||||
page is immediately mappable from a secondary MMU.
|
||||
|
||||
A secondary MMU doesn't want to call get_user_pages() more than once
|
||||
for each compound page, in order to know if it can map the whole
|
||||
compound page. So a secondary MMU needs to know from a single
|
||||
get_user_pages() invocation when it can map immediately the entire
|
||||
compound page to avoid a flood of unnecessary secondary MMU faults and
|
||||
spurious atomic_inc()/atomic_dec() (pages don't have to be pinned by
|
||||
MMU notifier users).
|
||||
|
||||
Ideally instead of the page->_mapcount < 1 check, get_user_pages()
|
||||
should return the granularity of the "page" mapping in the "mm" passed
|
||||
to get_user_pages(). However it's non trivial change to pass the "pmd"
|
||||
status belonging to the "mm" walked by get_user_pages up the stack (up
|
||||
to the caller of get_user_pages). So the fix just checks if there is
|
||||
not a single pte mapping on the page returned by get_user_pages, and
|
||||
in turn if the caller can assume that the whole compound page is
|
||||
mapped in the current "mm" (in a pmd_trans_huge()). In such case the
|
||||
entire compound page is safe to map into the secondary MMU without
|
||||
additional get_user_pages() calls on the surrounding tail/head
|
||||
pages. In addition of being faster, not having to run other
|
||||
get_user_pages() calls also reduces the memory footprint of the
|
||||
secondary MMU fault in case the pmd split happened as result of memory
|
||||
pressure.
|
||||
|
||||
Without this fix after a MADV_DONTNEED (like invoked by QEMU during
|
||||
postcopy live migration or balloning) or after generic swapping (with
|
||||
a failure in split_huge_page() that would only result in pmd splitting
|
||||
and not a physical page split), KVM would map the whole compound page
|
||||
into the shadow pagetables, despite regular faults or userfaults (like
|
||||
UFFDIO_COPY) may map regular pages into the primary MMU as result of
|
||||
the pte faults, leading to the guest mode and userland mode going out
|
||||
of sync and not working on the same memory at all times.
|
||||
|
||||
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
|
||||
---
|
||||
arch/arm/kvm/mmu.c | 2 +-
|
||||
arch/x86/kvm/mmu.c | 4 ++--
|
||||
include/linux/page-flags.h | 22 ++++++++++++++++++++++
|
||||
3 files changed, 25 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
|
||||
index aba61fd..8dafe97 100644
|
||||
--- a/arch/arm/kvm/mmu.c
|
||||
+++ b/arch/arm/kvm/mmu.c
|
||||
@@ -997,7 +997,7 @@ static bool transparent_hugepage_adjust(kvm_pfn_t *pfnp, phys_addr_t *ipap)
|
||||
kvm_pfn_t pfn = *pfnp;
|
||||
gfn_t gfn = *ipap >> PAGE_SHIFT;
|
||||
|
||||
- if (PageTransCompound(pfn_to_page(pfn))) {
|
||||
+ if (PageTransCompoundMap(pfn_to_page(pfn))) {
|
||||
unsigned long mask;
|
||||
/*
|
||||
* The address we faulted on is backed by a transparent huge
|
||||
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
|
||||
index 1e7a49b..3a371f7 100644
|
||||
--- a/arch/x86/kvm/mmu.c
|
||||
+++ b/arch/x86/kvm/mmu.c
|
||||
@@ -2767,7 +2767,7 @@ static void transparent_hugepage_adjust(struct kvm_vcpu *vcpu,
|
||||
*/
|
||||
if (!is_error_noslot_pfn(pfn) && !kvm_is_reserved_pfn(pfn) &&
|
||||
level == PT_PAGE_TABLE_LEVEL &&
|
||||
- PageTransCompound(pfn_to_page(pfn)) &&
|
||||
+ PageTransCompoundMap(pfn_to_page(pfn)) &&
|
||||
!has_wrprotected_page(vcpu, gfn, PT_DIRECTORY_LEVEL)) {
|
||||
unsigned long mask;
|
||||
/*
|
||||
@@ -4621,7 +4621,7 @@ restart:
|
||||
*/
|
||||
if (sp->role.direct &&
|
||||
!kvm_is_reserved_pfn(pfn) &&
|
||||
- PageTransCompound(pfn_to_page(pfn))) {
|
||||
+ PageTransCompoundMap(pfn_to_page(pfn))) {
|
||||
drop_spte(kvm, sptep);
|
||||
need_tlb_flush = 1;
|
||||
goto restart;
|
||||
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
|
||||
index 19724e6..522bd6d 100644
|
||||
--- a/include/linux/page-flags.h
|
||||
+++ b/include/linux/page-flags.h
|
||||
@@ -517,6 +517,27 @@ static inline int PageTransCompound(struct page *page)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * PageTransCompoundMap is the same as PageTransCompound, but it also
|
||||
+ * guarantees the primary MMU has the entire compound page mapped
|
||||
+ * through pmd_trans_huge, which in turn guarantees the secondary MMUs
|
||||
+ * can also map the entire compound page. This allows the secondary
|
||||
+ * MMUs to call get_user_pages() only once for each compound page and
|
||||
+ * to immediately map the entire compound page with a single secondary
|
||||
+ * MMU fault. If there will be a pmd split later, the secondary MMUs
|
||||
+ * will get an update through the MMU notifier invalidation through
|
||||
+ * split_huge_pmd().
|
||||
+ *
|
||||
+ * Unlike PageTransCompound, this is safe to be called only while
|
||||
+ * split_huge_pmd() cannot run from under us, like if protected by the
|
||||
+ * MMU notifier, otherwise it may result in page->_mapcount < 0 false
|
||||
+ * positives.
|
||||
+ */
|
||||
+static inline int PageTransCompoundMap(struct page *page)
|
||||
+{
|
||||
+ return PageTransCompound(page) && atomic_read(&page->_mapcount) < 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* PageTransTail returns true for both transparent huge pages
|
||||
* and hugetlbfs pages, so it should only be called when it's known
|
||||
* that hugetlbfs pages aren't involved.
|
||||
@@ -559,6 +580,7 @@ static inline int TestClearPageDoubleMap(struct page *page)
|
||||
#else
|
||||
TESTPAGEFLAG_FALSE(TransHuge)
|
||||
TESTPAGEFLAG_FALSE(TransCompound)
|
||||
+TESTPAGEFLAG_FALSE(TransCompoundMap)
|
||||
TESTPAGEFLAG_FALSE(TransTail)
|
||||
TESTPAGEFLAG_FALSE(DoubleMap)
|
||||
TESTSETFLAG_FALSE(DoubleMap)
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -1,250 +0,0 @@
|
|||
From 759c01142a5d0f364a462346168a56de28a80f52 Mon Sep 17 00:00:00 2001
|
||||
From: Willy Tarreau <w@1wt.eu>
|
||||
Date: Mon, 18 Jan 2016 16:36:09 +0100
|
||||
Subject: [PATCH] pipe: limit the per-user amount of pages allocated in pipes
|
||||
|
||||
On no-so-small systems, it is possible for a single process to cause an
|
||||
OOM condition by filling large pipes with data that are never read. A
|
||||
typical process filling 4000 pipes with 1 MB of data will use 4 GB of
|
||||
memory. On small systems it may be tricky to set the pipe max size to
|
||||
prevent this from happening.
|
||||
|
||||
This patch makes it possible to enforce a per-user soft limit above
|
||||
which new pipes will be limited to a single page, effectively limiting
|
||||
them to 4 kB each, as well as a hard limit above which no new pipes may
|
||||
be created for this user. This has the effect of protecting the system
|
||||
against memory abuse without hurting other users, and still allowing
|
||||
pipes to work correctly though with less data at once.
|
||||
|
||||
The limit are controlled by two new sysctls : pipe-user-pages-soft, and
|
||||
pipe-user-pages-hard. Both may be disabled by setting them to zero. The
|
||||
default soft limit allows the default number of FDs per process (1024)
|
||||
to create pipes of the default size (64kB), thus reaching a limit of 64MB
|
||||
before starting to create only smaller pipes. With 256 processes limited
|
||||
to 1024 FDs each, this results in 1024*64kB + (256*1024 - 1024) * 4kB =
|
||||
1084 MB of memory allocated for a user. The hard limit is disabled by
|
||||
default to avoid breaking existing applications that make intensive use
|
||||
of pipes (eg: for splicing).
|
||||
|
||||
Reported-by: socketpair@gmail.com
|
||||
Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
|
||||
Mitigates: CVE-2013-4312 (Linux 2.0+)
|
||||
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Signed-off-by: Willy Tarreau <w@1wt.eu>
|
||||
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
Documentation/sysctl/fs.txt | 23 ++++++++++++++++++++++
|
||||
fs/pipe.c | 47 +++++++++++++++++++++++++++++++++++++++++++--
|
||||
include/linux/pipe_fs_i.h | 4 ++++
|
||||
include/linux/sched.h | 1 +
|
||||
kernel/sysctl.c | 14 ++++++++++++++
|
||||
5 files changed, 87 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt
|
||||
index 88152f214f48..302b5ed616a6 100644
|
||||
--- a/Documentation/sysctl/fs.txt
|
||||
+++ b/Documentation/sysctl/fs.txt
|
||||
@@ -32,6 +32,8 @@ Currently, these files are in /proc/sys/fs:
|
||||
- nr_open
|
||||
- overflowuid
|
||||
- overflowgid
|
||||
+- pipe-user-pages-hard
|
||||
+- pipe-user-pages-soft
|
||||
- protected_hardlinks
|
||||
- protected_symlinks
|
||||
- suid_dumpable
|
||||
@@ -159,6 +161,27 @@ The default is 65534.
|
||||
|
||||
==============================================================
|
||||
|
||||
+pipe-user-pages-hard:
|
||||
+
|
||||
+Maximum total number of pages a non-privileged user may allocate for pipes.
|
||||
+Once this limit is reached, no new pipes may be allocated until usage goes
|
||||
+below the limit again. When set to 0, no limit is applied, which is the default
|
||||
+setting.
|
||||
+
|
||||
+==============================================================
|
||||
+
|
||||
+pipe-user-pages-soft:
|
||||
+
|
||||
+Maximum total number of pages a non-privileged user may allocate for pipes
|
||||
+before the pipe size gets limited to a single page. Once this limit is reached,
|
||||
+new pipes will be limited to a single page in size for this user in order to
|
||||
+limit total memory usage, and trying to increase them using fcntl() will be
|
||||
+denied until usage goes below the limit again. The default value allows to
|
||||
+allocate up to 1024 pipes at their default size. When set to 0, no limit is
|
||||
+applied.
|
||||
+
|
||||
+==============================================================
|
||||
+
|
||||
protected_hardlinks:
|
||||
|
||||
A long-standing class of security issues is the hardlink-based
|
||||
diff --git a/fs/pipe.c b/fs/pipe.c
|
||||
index 42cf8ddf0e55..ab8dad3ccb6a 100644
|
||||
--- a/fs/pipe.c
|
||||
+++ b/fs/pipe.c
|
||||
@@ -38,6 +38,12 @@ unsigned int pipe_max_size = 1048576;
|
||||
*/
|
||||
unsigned int pipe_min_size = PAGE_SIZE;
|
||||
|
||||
+/* Maximum allocatable pages per user. Hard limit is unset by default, soft
|
||||
+ * matches default values.
|
||||
+ */
|
||||
+unsigned long pipe_user_pages_hard;
|
||||
+unsigned long pipe_user_pages_soft = PIPE_DEF_BUFFERS * INR_OPEN_CUR;
|
||||
+
|
||||
/*
|
||||
* We use a start+len construction, which provides full use of the
|
||||
* allocated memory.
|
||||
@@ -583,20 +589,49 @@ pipe_fasync(int fd, struct file *filp, int on)
|
||||
return retval;
|
||||
}
|
||||
|
||||
+static void account_pipe_buffers(struct pipe_inode_info *pipe,
|
||||
+ unsigned long old, unsigned long new)
|
||||
+{
|
||||
+ atomic_long_add(new - old, &pipe->user->pipe_bufs);
|
||||
+}
|
||||
+
|
||||
+static bool too_many_pipe_buffers_soft(struct user_struct *user)
|
||||
+{
|
||||
+ return pipe_user_pages_soft &&
|
||||
+ atomic_long_read(&user->pipe_bufs) >= pipe_user_pages_soft;
|
||||
+}
|
||||
+
|
||||
+static bool too_many_pipe_buffers_hard(struct user_struct *user)
|
||||
+{
|
||||
+ return pipe_user_pages_hard &&
|
||||
+ atomic_long_read(&user->pipe_bufs) >= pipe_user_pages_hard;
|
||||
+}
|
||||
+
|
||||
struct pipe_inode_info *alloc_pipe_info(void)
|
||||
{
|
||||
struct pipe_inode_info *pipe;
|
||||
|
||||
pipe = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL);
|
||||
if (pipe) {
|
||||
- pipe->bufs = kzalloc(sizeof(struct pipe_buffer) * PIPE_DEF_BUFFERS, GFP_KERNEL);
|
||||
+ unsigned long pipe_bufs = PIPE_DEF_BUFFERS;
|
||||
+ struct user_struct *user = get_current_user();
|
||||
+
|
||||
+ if (!too_many_pipe_buffers_hard(user)) {
|
||||
+ if (too_many_pipe_buffers_soft(user))
|
||||
+ pipe_bufs = 1;
|
||||
+ pipe->bufs = kzalloc(sizeof(struct pipe_buffer) * pipe_bufs, GFP_KERNEL);
|
||||
+ }
|
||||
+
|
||||
if (pipe->bufs) {
|
||||
init_waitqueue_head(&pipe->wait);
|
||||
pipe->r_counter = pipe->w_counter = 1;
|
||||
- pipe->buffers = PIPE_DEF_BUFFERS;
|
||||
+ pipe->buffers = pipe_bufs;
|
||||
+ pipe->user = user;
|
||||
+ account_pipe_buffers(pipe, 0, pipe_bufs);
|
||||
mutex_init(&pipe->mutex);
|
||||
return pipe;
|
||||
}
|
||||
+ free_uid(user);
|
||||
kfree(pipe);
|
||||
}
|
||||
|
||||
@@ -607,6 +642,8 @@ void free_pipe_info(struct pipe_inode_info *pipe)
|
||||
{
|
||||
int i;
|
||||
|
||||
+ account_pipe_buffers(pipe, pipe->buffers, 0);
|
||||
+ free_uid(pipe->user);
|
||||
for (i = 0; i < pipe->buffers; i++) {
|
||||
struct pipe_buffer *buf = pipe->bufs + i;
|
||||
if (buf->ops)
|
||||
@@ -998,6 +1035,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
|
||||
memcpy(bufs + head, pipe->bufs, tail * sizeof(struct pipe_buffer));
|
||||
}
|
||||
|
||||
+ account_pipe_buffers(pipe, pipe->buffers, nr_pages);
|
||||
pipe->curbuf = 0;
|
||||
kfree(pipe->bufs);
|
||||
pipe->bufs = bufs;
|
||||
@@ -1069,6 +1107,11 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
|
||||
ret = -EPERM;
|
||||
goto out;
|
||||
+ } else if ((too_many_pipe_buffers_hard(pipe->user) ||
|
||||
+ too_many_pipe_buffers_soft(pipe->user)) &&
|
||||
+ !capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN)) {
|
||||
+ ret = -EPERM;
|
||||
+ goto out;
|
||||
}
|
||||
ret = pipe_set_size(pipe, nr_pages);
|
||||
break;
|
||||
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
|
||||
index eb8b8ac6df3c..24f5470d3944 100644
|
||||
--- a/include/linux/pipe_fs_i.h
|
||||
+++ b/include/linux/pipe_fs_i.h
|
||||
@@ -42,6 +42,7 @@ struct pipe_buffer {
|
||||
* @fasync_readers: reader side fasync
|
||||
* @fasync_writers: writer side fasync
|
||||
* @bufs: the circular array of pipe buffers
|
||||
+ * @user: the user who created this pipe
|
||||
**/
|
||||
struct pipe_inode_info {
|
||||
struct mutex mutex;
|
||||
@@ -57,6 +58,7 @@ struct pipe_inode_info {
|
||||
struct fasync_struct *fasync_readers;
|
||||
struct fasync_struct *fasync_writers;
|
||||
struct pipe_buffer *bufs;
|
||||
+ struct user_struct *user;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -123,6 +125,8 @@ void pipe_unlock(struct pipe_inode_info *);
|
||||
void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *);
|
||||
|
||||
extern unsigned int pipe_max_size, pipe_min_size;
|
||||
+extern unsigned long pipe_user_pages_hard;
|
||||
+extern unsigned long pipe_user_pages_soft;
|
||||
int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *);
|
||||
|
||||
|
||||
diff --git a/include/linux/sched.h b/include/linux/sched.h
|
||||
index 61aa9bbea871..1589ddc88e38 100644
|
||||
--- a/include/linux/sched.h
|
||||
+++ b/include/linux/sched.h
|
||||
@@ -835,6 +835,7 @@ struct user_struct {
|
||||
#endif
|
||||
unsigned long locked_shm; /* How many pages of mlocked shm ? */
|
||||
unsigned long unix_inflight; /* How many files in flight in unix sockets */
|
||||
+ atomic_long_t pipe_bufs; /* how many pages are allocated in pipe buffers */
|
||||
|
||||
#ifdef CONFIG_KEYS
|
||||
struct key *uid_keyring; /* UID specific keyring */
|
||||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
||||
index c810f8afdb7f..f6fd236429bd 100644
|
||||
--- a/kernel/sysctl.c
|
||||
+++ b/kernel/sysctl.c
|
||||
@@ -1757,6 +1757,20 @@ static struct ctl_table fs_table[] = {
|
||||
.proc_handler = &pipe_proc_fn,
|
||||
.extra1 = &pipe_min_size,
|
||||
},
|
||||
+ {
|
||||
+ .procname = "pipe-user-pages-hard",
|
||||
+ .data = &pipe_user_pages_hard,
|
||||
+ .maxlen = sizeof(pipe_user_pages_hard),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_doulongvec_minmax,
|
||||
+ },
|
||||
+ {
|
||||
+ .procname = "pipe-user-pages-soft",
|
||||
+ .data = &pipe_user_pages_soft,
|
||||
+ .maxlen = sizeof(pipe_user_pages_soft),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_doulongvec_minmax,
|
||||
+ },
|
||||
{ }
|
||||
};
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
Linux 3.4 rebase notes:
|
||||
Linux 4.5 rebase notes:
|
||||
|
||||
* Look at the CPU modalias patches from Andi. See if they are sufficient to
|
||||
build the cpufreq drivers as modules again (rhbz 713572 but mostly to just
|
||||
make this person in IRC be quiet)
|
||||
- Check on status of drm-i915-turn-off-wc-mmaps.patch (Should be okay to remove in F24, but not F22 or F23)
|
||||
- Check on status of disabled ZONE_DMA (They can now coexist with ZONE_DEVICE)
|
||||
- Check on status of CONFIG_DW_DMAC_CORE ( Built-in DW_DMAC for now, revisit later)
|
||||
|
||||
* Make sure X32 stays disabled. Preferably forever
|
||||
Linux 4.4 rebase notes:
|
||||
|
||||
CONFIG_RTL8XXXU_UNTESTED should be turned off. Great for rawhide, not for stable
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
From 44f947bb8ef5f4add9f2d84e1ff53afd8f2f5537 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Wed, 16 Mar 2016 15:21:44 +0000
|
||||
Subject: [PATCH 1/2] Revert "stmmac: Fix 'eth0: No PHY found' regression"
|
||||
|
||||
This reverts commit 88f8b1bb41c6208f81b6a480244533ded7b59493.
|
||||
---
|
||||
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 11 ++++++++++-
|
||||
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 9 +--------
|
||||
include/linux/stmmac.h | 1 -
|
||||
3 files changed, 11 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
index efb54f3..0faf163 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
@@ -199,12 +199,21 @@ int stmmac_mdio_register(struct net_device *ndev)
|
||||
struct stmmac_priv *priv = netdev_priv(ndev);
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data = priv->plat->mdio_bus_data;
|
||||
int addr, found;
|
||||
- struct device_node *mdio_node = priv->plat->mdio_node;
|
||||
+ struct device_node *mdio_node = NULL;
|
||||
+ struct device_node *child_node = NULL;
|
||||
|
||||
if (!mdio_bus_data)
|
||||
return 0;
|
||||
|
||||
if (IS_ENABLED(CONFIG_OF)) {
|
||||
+ for_each_child_of_node(priv->device->of_node, child_node) {
|
||||
+ if (of_device_is_compatible(child_node,
|
||||
+ "snps,dwmac-mdio")) {
|
||||
+ mdio_node = child_node;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (mdio_node) {
|
||||
netdev_dbg(ndev, "FOUND MDIO subnode\n");
|
||||
} else {
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
index 4514ba7..6a52fa1 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
@@ -110,7 +110,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
struct plat_stmmacenet_data *plat;
|
||||
struct stmmac_dma_cfg *dma_cfg;
|
||||
- struct device_node *child_node = NULL;
|
||||
|
||||
plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
|
||||
if (!plat)
|
||||
@@ -141,19 +140,13 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
|
||||
plat->phy_node = of_node_get(np);
|
||||
}
|
||||
|
||||
- for_each_child_of_node(np, child_node)
|
||||
- if (of_device_is_compatible(child_node, "snps,dwmac-mdio")) {
|
||||
- plat->mdio_node = child_node;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
/* "snps,phy-addr" is not a standard property. Mark it as deprecated
|
||||
* and warn of its use. Remove this when phy node support is added.
|
||||
*/
|
||||
if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
|
||||
dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
|
||||
|
||||
- if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
|
||||
+ if ((plat->phy_node && !of_phy_is_fixed_link(np)) || plat->phy_bus_name)
|
||||
plat->mdio_bus_data = NULL;
|
||||
else
|
||||
plat->mdio_bus_data =
|
||||
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
|
||||
index 881a79d..eead8ab 100644
|
||||
--- a/include/linux/stmmac.h
|
||||
+++ b/include/linux/stmmac.h
|
||||
@@ -100,7 +100,6 @@ struct plat_stmmacenet_data {
|
||||
int interface;
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data;
|
||||
struct device_node *phy_node;
|
||||
- struct device_node *mdio_node;
|
||||
struct stmmac_dma_cfg *dma_cfg;
|
||||
int clk_csr;
|
||||
int has_gmac;
|
||||
--
|
||||
2.5.0
|
||||
|
6
sources
6
sources
|
@ -1,3 +1,3 @@
|
|||
9a78fa2eb6c68ca5a40ed5af08142599 linux-4.4.tar.xz
|
||||
dcbc8fe378a676d5d0dd208cf524e144 perf-man-4.4.tar.gz
|
||||
d48f09bf61f2500d70f839e190dc7c5a patch-4.4.6.xz
|
||||
a60d48eee08ec0536d5efb17ca819aef linux-4.5.tar.xz
|
||||
6f557fe90b800b615c85c2ca04da6154 perf-man-4.5.tar.gz
|
||||
165ea1f74c34d264f11be8c25d97635b patch-4.5.6.xz
|
||||
|
|
|
@ -0,0 +1,235 @@
|
|||
From d55a02f460ffd64a5ba7f331489af87edeebf8da Mon Sep 17 00:00:00 2001
|
||||
From: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
|
||||
Date: Wed, 16 Mar 2016 10:38:49 +0100
|
||||
Subject: [PATCH 2/2] stmmac: fix MDIO settings
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Initially the phy_bus_name was added to manipulate the
|
||||
driver name but it was recently just used to manage the
|
||||
fixed-link and then to take some decision at run-time.
|
||||
So the patch uses the is_pseudo_fixed_link and removes
|
||||
the phy_bus_name variable not necessary anymore.
|
||||
|
||||
The driver can manage the mdio registration by using phy-handle,
|
||||
dwmac-mdio and own parameter e.g. snps,phy-addr.
|
||||
This patch takes care about all these possible configurations
|
||||
and fixes the mdio registration in case of there is a real
|
||||
transceiver or a switch (that needs to be managed by using
|
||||
fixed-link).
|
||||
|
||||
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
|
||||
Reviewed-by: Andreas Färber <afaerber@suse.de>
|
||||
Tested-by: Frank Schäfer <fschaefer.oss@googlemail.com>
|
||||
Cc: Gabriel Fernandez <gabriel.fernandez@linaro.org>
|
||||
Cc: Dinh Nguyen <dinh.linux@gmail.com>
|
||||
Cc: David S. Miller <davem@davemloft.net>
|
||||
Cc: Phil Reid <preid@electromag.com.au>
|
||||
---
|
||||
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 11 +--
|
||||
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 19 +----
|
||||
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 84 +++++++++++++++++-----
|
||||
include/linux/stmmac.h | 2 +-
|
||||
4 files changed, 71 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
index c21015b..389d7d0 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||
@@ -271,7 +271,6 @@ static void stmmac_eee_ctrl_timer(unsigned long arg)
|
||||
*/
|
||||
bool stmmac_eee_init(struct stmmac_priv *priv)
|
||||
{
|
||||
- char *phy_bus_name = priv->plat->phy_bus_name;
|
||||
unsigned long flags;
|
||||
bool ret = false;
|
||||
|
||||
@@ -283,7 +282,7 @@ bool stmmac_eee_init(struct stmmac_priv *priv)
|
||||
goto out;
|
||||
|
||||
/* Never init EEE in case of a switch is attached */
|
||||
- if (phy_bus_name && (!strcmp(phy_bus_name, "fixed")))
|
||||
+ if (priv->phydev->is_pseudo_fixed_link)
|
||||
goto out;
|
||||
|
||||
/* MAC core supports the EEE feature. */
|
||||
@@ -820,12 +819,8 @@ static int stmmac_init_phy(struct net_device *dev)
|
||||
phydev = of_phy_connect(dev, priv->plat->phy_node,
|
||||
&stmmac_adjust_link, 0, interface);
|
||||
} else {
|
||||
- if (priv->plat->phy_bus_name)
|
||||
- snprintf(bus_id, MII_BUS_ID_SIZE, "%s-%x",
|
||||
- priv->plat->phy_bus_name, priv->plat->bus_id);
|
||||
- else
|
||||
- snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x",
|
||||
- priv->plat->bus_id);
|
||||
+ snprintf(bus_id, MII_BUS_ID_SIZE, "stmmac-%x",
|
||||
+ priv->plat->bus_id);
|
||||
|
||||
snprintf(phy_id_fmt, MII_BUS_ID_SIZE + 3, PHY_ID_FMT, bus_id,
|
||||
priv->plat->phy_addr);
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
index 0faf163..3f5512f 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
@@ -198,29 +198,12 @@ int stmmac_mdio_register(struct net_device *ndev)
|
||||
struct mii_bus *new_bus;
|
||||
struct stmmac_priv *priv = netdev_priv(ndev);
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data = priv->plat->mdio_bus_data;
|
||||
+ struct device_node *mdio_node = priv->plat->mdio_node;
|
||||
int addr, found;
|
||||
- struct device_node *mdio_node = NULL;
|
||||
- struct device_node *child_node = NULL;
|
||||
|
||||
if (!mdio_bus_data)
|
||||
return 0;
|
||||
|
||||
- if (IS_ENABLED(CONFIG_OF)) {
|
||||
- for_each_child_of_node(priv->device->of_node, child_node) {
|
||||
- if (of_device_is_compatible(child_node,
|
||||
- "snps,dwmac-mdio")) {
|
||||
- mdio_node = child_node;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (mdio_node) {
|
||||
- netdev_dbg(ndev, "FOUND MDIO subnode\n");
|
||||
- } else {
|
||||
- netdev_warn(ndev, "No MDIO subnode found\n");
|
||||
- }
|
||||
- }
|
||||
-
|
||||
new_bus = mdiobus_alloc();
|
||||
if (new_bus == NULL)
|
||||
return -ENOMEM;
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
index 6a52fa1..190fb6d 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
@@ -96,6 +96,69 @@ static int dwmac1000_validate_ucast_entries(int ucast_entries)
|
||||
}
|
||||
|
||||
/**
|
||||
+ * stmmac_dt_phy - parse device-tree driver parameters to allocate PHY resources
|
||||
+ * @plat: driver data platform structure
|
||||
+ * @np: device tree node
|
||||
+ * @dev: device pointer
|
||||
+ * Description:
|
||||
+ * The mdio bus will be allocated in case of a phy transceiver is on board;
|
||||
+ * it will be NULL if the fixed-link is configured.
|
||||
+ * If there is the "snps,dwmac-mdio" sub-node the mdio will be allocated
|
||||
+ * in any case (for DSA, mdio must be registered even if fixed-link).
|
||||
+ * The table below sums the supported configurations:
|
||||
+ * -------------------------------
|
||||
+ * snps,phy-addr | Y
|
||||
+ * -------------------------------
|
||||
+ * phy-handle | Y
|
||||
+ * -------------------------------
|
||||
+ * fixed-link | N
|
||||
+ * -------------------------------
|
||||
+ * snps,dwmac-mdio |
|
||||
+ * even if | Y
|
||||
+ * fixed-link |
|
||||
+ * -------------------------------
|
||||
+ *
|
||||
+ * It returns 0 in case of success otherwise -ENODEV.
|
||||
+ */
|
||||
+static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
|
||||
+ struct device_node *np, struct device *dev)
|
||||
+{
|
||||
+ bool mdio = true;
|
||||
+
|
||||
+ /* If phy-handle property is passed from DT, use it as the PHY */
|
||||
+ plat->phy_node = of_parse_phandle(np, "phy-handle", 0);
|
||||
+ if (plat->phy_node)
|
||||
+ dev_dbg(dev, "Found phy-handle subnode\n");
|
||||
+
|
||||
+ /* If phy-handle is not specified, check if we have a fixed-phy */
|
||||
+ if (!plat->phy_node && of_phy_is_fixed_link(np)) {
|
||||
+ if ((of_phy_register_fixed_link(np) < 0))
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ dev_dbg(dev, "Found fixed-link subnode\n");
|
||||
+ plat->phy_node = of_node_get(np);
|
||||
+ mdio = false;
|
||||
+ }
|
||||
+
|
||||
+ /* If snps,dwmac-mdio is passed from DT, always register the MDIO */
|
||||
+ for_each_child_of_node(np, plat->mdio_node) {
|
||||
+ if (of_device_is_compatible(plat->mdio_node, "snps,dwmac-mdio"))
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (plat->mdio_node) {
|
||||
+ dev_dbg(dev, "Found MDIO subnode\n");
|
||||
+ mdio = true;
|
||||
+ }
|
||||
+
|
||||
+ if (mdio)
|
||||
+ plat->mdio_bus_data =
|
||||
+ devm_kzalloc(dev, sizeof(struct stmmac_mdio_bus_data),
|
||||
+ GFP_KERNEL);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
* stmmac_probe_config_dt - parse device-tree driver parameters
|
||||
* @pdev: platform_device structure
|
||||
* @plat: driver data platform structure
|
||||
@@ -129,30 +192,15 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
|
||||
/* Default to phy auto-detection */
|
||||
plat->phy_addr = -1;
|
||||
|
||||
- /* If we find a phy-handle property, use it as the PHY */
|
||||
- plat->phy_node = of_parse_phandle(np, "phy-handle", 0);
|
||||
-
|
||||
- /* If phy-handle is not specified, check if we have a fixed-phy */
|
||||
- if (!plat->phy_node && of_phy_is_fixed_link(np)) {
|
||||
- if ((of_phy_register_fixed_link(np) < 0))
|
||||
- return ERR_PTR(-ENODEV);
|
||||
-
|
||||
- plat->phy_node = of_node_get(np);
|
||||
- }
|
||||
-
|
||||
/* "snps,phy-addr" is not a standard property. Mark it as deprecated
|
||||
* and warn of its use. Remove this when phy node support is added.
|
||||
*/
|
||||
if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
|
||||
dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
|
||||
|
||||
- if ((plat->phy_node && !of_phy_is_fixed_link(np)) || plat->phy_bus_name)
|
||||
- plat->mdio_bus_data = NULL;
|
||||
- else
|
||||
- plat->mdio_bus_data =
|
||||
- devm_kzalloc(&pdev->dev,
|
||||
- sizeof(struct stmmac_mdio_bus_data),
|
||||
- GFP_KERNEL);
|
||||
+ /* To Configure PHY by using all device-tree supported properties */
|
||||
+ if (stmmac_dt_phy(plat, np, &pdev->dev))
|
||||
+ return ERR_PTR(-ENODEV);
|
||||
|
||||
of_property_read_u32(np, "tx-fifo-depth", &plat->tx_fifo_size);
|
||||
|
||||
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
|
||||
index eead8ab..8b1ff2b 100644
|
||||
--- a/include/linux/stmmac.h
|
||||
+++ b/include/linux/stmmac.h
|
||||
@@ -94,12 +94,12 @@ struct stmmac_dma_cfg {
|
||||
};
|
||||
|
||||
struct plat_stmmacenet_data {
|
||||
- char *phy_bus_name;
|
||||
int bus_id;
|
||||
int phy_addr;
|
||||
int interface;
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data;
|
||||
struct device_node *phy_node;
|
||||
+ struct device_node *mdio_node;
|
||||
struct stmmac_dma_cfg *dma_cfg;
|
||||
int clk_csr;
|
||||
int has_gmac;
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
From 81ad4276b505e987dd8ebbdf63605f92cd172b52 Mon Sep 17 00:00:00 2001
|
||||
From: Zhang Rui <rui.zhang@intel.com>
|
||||
Date: Fri, 18 Mar 2016 10:03:24 +0800
|
||||
Subject: [PATCH] Thermal: Ignore invalid trip points
|
||||
|
||||
In some cases, platform thermal driver may report invalid trip points,
|
||||
thermal core should not take any action for these trip points.
|
||||
|
||||
CC: <stable@vger.kernel.org> #3.18+
|
||||
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1317190
|
||||
Link: https://bugzilla.kernel.org/show_bug.cgi?id=114551
|
||||
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
|
||||
---
|
||||
drivers/thermal/thermal_core.c | 13 ++++++++++++-
|
||||
include/linux/thermal.h | 2 ++
|
||||
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
|
||||
index a0a8fd1..d4b5465 100644
|
||||
--- a/drivers/thermal/thermal_core.c
|
||||
+++ b/drivers/thermal/thermal_core.c
|
||||
@@ -454,6 +454,10 @@ static void handle_thermal_trip(struct thermal_zone_device *tz, int trip)
|
||||
{
|
||||
enum thermal_trip_type type;
|
||||
|
||||
+ /* Ignore disabled trip points */
|
||||
+ if (test_bit(trip, &tz->trips_disabled))
|
||||
+ return;
|
||||
+
|
||||
tz->ops->get_trip_type(tz, trip, &type);
|
||||
|
||||
if (type == THERMAL_TRIP_CRITICAL || type == THERMAL_TRIP_HOT)
|
||||
@@ -1800,6 +1804,7 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
|
||||
{
|
||||
struct thermal_zone_device *tz;
|
||||
enum thermal_trip_type trip_type;
|
||||
+ int trip_temp;
|
||||
int result;
|
||||
int count;
|
||||
int passive = 0;
|
||||
@@ -1871,9 +1876,15 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
|
||||
goto unregister;
|
||||
|
||||
for (count = 0; count < trips; count++) {
|
||||
- tz->ops->get_trip_type(tz, count, &trip_type);
|
||||
+ if (tz->ops->get_trip_type(tz, count, &trip_type))
|
||||
+ set_bit(count, &tz->trips_disabled);
|
||||
if (trip_type == THERMAL_TRIP_PASSIVE)
|
||||
passive = 1;
|
||||
+ if (tz->ops->get_trip_temp(tz, count, &trip_temp))
|
||||
+ set_bit(count, &tz->trips_disabled);
|
||||
+ /* Check for bogus trip points */
|
||||
+ if (trip_temp == 0)
|
||||
+ set_bit(count, &tz->trips_disabled);
|
||||
}
|
||||
|
||||
if (!passive) {
|
||||
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
|
||||
index 9c48199..a55d052 100644
|
||||
--- a/include/linux/thermal.h
|
||||
+++ b/include/linux/thermal.h
|
||||
@@ -156,6 +156,7 @@ struct thermal_attr {
|
||||
* @trip_hyst_attrs: attributes for trip points for sysfs: trip hysteresis
|
||||
* @devdata: private pointer for device private data
|
||||
* @trips: number of trip points the thermal zone supports
|
||||
+ * @trips_disabled; bitmap for disabled trips
|
||||
* @passive_delay: number of milliseconds to wait between polls when
|
||||
* performing passive cooling.
|
||||
* @polling_delay: number of milliseconds to wait between polls when
|
||||
@@ -191,6 +192,7 @@ struct thermal_zone_device {
|
||||
struct thermal_attr *trip_hyst_attrs;
|
||||
void *devdata;
|
||||
int trips;
|
||||
+ unsigned long trips_disabled; /* bitmap for disabled trips */
|
||||
int passive_delay;
|
||||
int polling_delay;
|
||||
int temperature;
|
|
@ -0,0 +1,36 @@
|
|||
From 45e093ae2830cd1264677d47ff9a95a71f5d9f9c Mon Sep 17 00:00:00 2001
|
||||
From: Richard Alpe <richard.alpe@ericsson.com>
|
||||
Date: Mon, 16 May 2016 11:14:54 +0200
|
||||
Subject: [PATCH] tipc: check nl sock before parsing nested attributes
|
||||
|
||||
Make sure the socket for which the user is listing publication exists
|
||||
before parsing the socket netlink attributes.
|
||||
|
||||
Prior to this patch a call without any socket caused a NULL pointer
|
||||
dereference in tipc_nl_publ_dump().
|
||||
|
||||
Tested-and-reported-by: Baozeng Ding <sploving1@gmail.com>
|
||||
Signed-off-by: Richard Alpe <richard.alpe@ericsson.com>
|
||||
Acked-by: Jon Maloy <jon.maloy@ericsson.cm>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/tipc/socket.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
|
||||
index 12628890c219..3b7a79991d55 100644
|
||||
--- a/net/tipc/socket.c
|
||||
+++ b/net/tipc/socket.c
|
||||
@@ -2853,6 +2853,9 @@ int tipc_nl_publ_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
+ if (!attrs[TIPC_NLA_SOCK])
|
||||
+ return -EINVAL;
|
||||
+
|
||||
err = nla_parse_nested(sock, TIPC_NLA_SOCK_MAX,
|
||||
attrs[TIPC_NLA_SOCK],
|
||||
tipc_nl_sock_policy);
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
From patchwork Wed Apr 6 07:54:05 2016
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: usb: phy: tegra: Add 38.4MHz clock table entry
|
||||
From: Hunter Laux <hunterlaux@gmail.com>
|
||||
X-Patchwork-Id: 606877
|
||||
Message-Id: <1459929245-23449-1-git-send-email-hunterlaux@gmail.com>
|
||||
To: Stephen Warren <swarren@wwwdotorg.org>,
|
||||
Thierry Reding <thierry.reding@gmail.com>,
|
||||
Alexandre Courbot <gnurou@gmail.com>, linux-tegra@vger.kernel.org
|
||||
Cc: Hunter Laux <hunterlaux@gmail.com>
|
||||
Date: Wed, 6 Apr 2016 00:54:05 -0700
|
||||
|
||||
The Tegra210 uses a 38.4MHz OSC. This clock table entry is required to
|
||||
use the ehci phy on the Jetson TX1.
|
||||
|
||||
The xtal_freq_count is actually a 12 bit value, so it should be a u16
|
||||
instead of u8.
|
||||
|
||||
Signed-off-by: Hunter Laux <hunterlaux@gmail.com>
|
||||
---
|
||||
drivers/usb/phy/phy-tegra-usb.c | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/phy/phy-tegra-usb.c b/drivers/usb/phy/phy-tegra-usb.c
|
||||
index 5fe4a57..f0431f0 100644
|
||||
--- a/drivers/usb/phy/phy-tegra-usb.c
|
||||
+++ b/drivers/usb/phy/phy-tegra-usb.c
|
||||
@@ -164,7 +164,7 @@ struct tegra_xtal_freq {
|
||||
u8 enable_delay;
|
||||
u8 stable_count;
|
||||
u8 active_delay;
|
||||
- u8 xtal_freq_count;
|
||||
+ u16 xtal_freq_count;
|
||||
u16 debounce;
|
||||
};
|
||||
|
||||
@@ -201,6 +201,14 @@ static const struct tegra_xtal_freq tegra_freq_table[] = {
|
||||
.xtal_freq_count = 0xFE,
|
||||
.debounce = 0xFDE8,
|
||||
},
|
||||
+ {
|
||||
+ .freq = 38400000,
|
||||
+ .enable_delay = 0x00,
|
||||
+ .stable_count = 0x00,
|
||||
+ .active_delay = 0x18,
|
||||
+ .xtal_freq_count = 0x177,
|
||||
+ .debounce = 0xBB80,
|
||||
+ },
|
||||
};
|
||||
|
||||
static void set_pts(struct tegra_usb_phy *phy, u8 pts_val)
|
|
@ -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
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
From 2ea39fc263c6a7589e15edb7d2d1c89fa569be53 Mon Sep 17 00:00:00 2001
|
||||
From: Vladis Dronov <vdronov@redhat.com>
|
||||
Date: Mon, 16 Nov 2015 15:55:11 -0200
|
||||
Subject: [PATCH] usbvision: fix crash on detecting device with invalid
|
||||
configuration
|
||||
|
||||
The usbvision driver crashes when a specially crafted usb device with invalid
|
||||
number of interfaces or endpoints is detected. This fix adds checks that the
|
||||
device has proper configuration expected by the driver.
|
||||
|
||||
Reported-by: Ralf Spenneberg <ralf@spenneberg.net>
|
||||
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
|
||||
---
|
||||
drivers/media/usb/usbvision/usbvision-video.c | 16 +++++++++++++++-
|
||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/media/usb/usbvision/usbvision-video.c
|
||||
index b693206f66dd..d1dc1a198e3e 100644
|
||||
--- a/drivers/media/usb/usbvision/usbvision-video.c
|
||||
+++ b/drivers/media/usb/usbvision/usbvision-video.c
|
||||
@@ -1463,9 +1463,23 @@ static int usbvision_probe(struct usb_interface *intf,
|
||||
|
||||
if (usbvision_device_data[model].interface >= 0)
|
||||
interface = &dev->actconfig->interface[usbvision_device_data[model].interface]->altsetting[0];
|
||||
- else
|
||||
+ else if (ifnum < dev->actconfig->desc.bNumInterfaces)
|
||||
interface = &dev->actconfig->interface[ifnum]->altsetting[0];
|
||||
+ else {
|
||||
+ dev_err(&intf->dev, "interface %d is invalid, max is %d\n",
|
||||
+ ifnum, dev->actconfig->desc.bNumInterfaces - 1);
|
||||
+ ret = -ENODEV;
|
||||
+ goto err_usb;
|
||||
+ }
|
||||
+
|
||||
+ if (interface->desc.bNumEndpoints < 2) {
|
||||
+ dev_err(&intf->dev, "interface %d has %d endpoints, but must"
|
||||
+ " have minimum 2\n", ifnum, interface->desc.bNumEndpoints);
|
||||
+ ret = -ENODEV;
|
||||
+ goto err_usb;
|
||||
+ }
|
||||
endpoint = &interface->endpoint[1].desc;
|
||||
+
|
||||
if (!usb_endpoint_xfer_isoc(endpoint)) {
|
||||
dev_err(&intf->dev, "%s: interface %d. has non-ISO endpoint!\n",
|
||||
__func__, ifnum);
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -25,9 +25,9 @@ index 18f34cf..6aadffe 100644
|
|||
--- a/kernel/watchdog.c
|
||||
+++ b/kernel/watchdog.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <linux/smpboot.h>
|
||||
#include <linux/sched/rt.h>
|
||||
#include <linux/tick.h>
|
||||
#include <linux/workqueue.h>
|
||||
+#include <linux/dmi.h>
|
||||
|
||||
#include <asm/irq_regs.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
From 7a3cdd26e6d38031338a6cb591ec2f3faaa9234b Mon Sep 17 00:00:00 2001
|
||||
From 8010b5eb4680df797575e6306d4d891200e303ab Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Thu, 8 Mar 2012 10:35:59 -0500
|
||||
Subject: [PATCH 03/20] x86: Lock down IO port access when module security is
|
||||
enabled
|
||||
Subject: [PATCH] x86: Lock down IO port access when module security is enabled
|
||||
|
||||
IO port access would permit users to gain access to PCI configuration
|
||||
registers, which in turn (on a lot of hardware) give access to MMIO register
|
||||
|
@ -16,7 +15,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
|
||||
index 37dae792dbbe..1ecc03ca3c15 100644
|
||||
index 589b3193f102..ab8372443efb 100644
|
||||
--- a/arch/x86/kernel/ioport.c
|
||||
+++ b/arch/x86/kernel/ioport.c
|
||||
@@ -15,6 +15,7 @@
|
||||
|
@ -36,7 +35,7 @@ index 37dae792dbbe..1ecc03ca3c15 100644
|
|||
return -EPERM;
|
||||
|
||||
/*
|
||||
@@ -103,7 +104,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
|
||||
@@ -108,7 +109,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
|
||||
return -EINVAL;
|
||||
/* Trying to gain more privileges? */
|
||||
if (level > old) {
|
||||
|
@ -44,9 +43,9 @@ index 37dae792dbbe..1ecc03ca3c15 100644
|
|||
+ if (!capable(CAP_SYS_RAWIO) || secure_modules())
|
||||
return -EPERM;
|
||||
}
|
||||
regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
|
||||
regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
|
||||
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
|
||||
index 6b1721f978c2..53fe675f9bd7 100644
|
||||
index 71025c2f6bbb..86e5bfa91563 100644
|
||||
--- a/drivers/char/mem.c
|
||||
+++ b/drivers/char/mem.c
|
||||
@@ -27,6 +27,7 @@
|
||||
|
@ -68,5 +67,5 @@ index 6b1721f978c2..53fe675f9bd7 100644
|
|||
return -EFAULT;
|
||||
while (count-- > 0 && i < 65536) {
|
||||
--
|
||||
2.4.3
|
||||
2.5.5
|
||||
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
From 6d92bc9d483aa1751755a66fee8fb39dffb088c0 Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Wed, 16 Mar 2016 20:04:35 -0700
|
||||
Subject: [PATCH] x86/build: Build compressed x86 kernels as PIE
|
||||
|
||||
The 32-bit x86 assembler in binutils 2.26 will generate R_386_GOT32X
|
||||
relocation to get the symbol address in PIC. When the compressed x86
|
||||
kernel isn't built as PIC, the linker optimizes R_386_GOT32X relocations
|
||||
to their fixed symbol addresses. However, when the compressed x86
|
||||
kernel is loaded at a different address, it leads to the following
|
||||
load failure:
|
||||
|
||||
Failed to allocate space for phdrs
|
||||
|
||||
during the decompression stage.
|
||||
|
||||
If the compressed x86 kernel is relocatable at run-time, it should be
|
||||
compiled with -fPIE, instead of -fPIC, if possible and should be built as
|
||||
Position Independent Executable (PIE) so that linker won't optimize
|
||||
R_386_GOT32X relocation to its fixed symbol address.
|
||||
|
||||
Older linkers generate R_386_32 relocations against locally defined
|
||||
symbols, _bss, _ebss, _got and _egot, in PIE. It isn't wrong, just less
|
||||
optimal than R_386_RELATIVE. But the x86 kernel fails to properly handle
|
||||
R_386_32 relocations when relocating the kernel. To generate
|
||||
R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as
|
||||
hidden in both 32-bit and 64-bit x86 kernels.
|
||||
|
||||
To build a 64-bit compressed x86 kernel as PIE, we need to disable the
|
||||
relocation overflow check to avoid relocation overflow errors. We do
|
||||
this with a new linker command-line option, -z noreloc-overflow, which
|
||||
got added recently:
|
||||
|
||||
commit 4c10bbaa0912742322f10d9d5bb630ba4e15dfa7
|
||||
Author: H.J. Lu <hjl.tools@gmail.com>
|
||||
Date: Tue Mar 15 11:07:06 2016 -0700
|
||||
|
||||
Add -z noreloc-overflow option to x86-64 ld
|
||||
|
||||
Add -z noreloc-overflow command-line option to the x86-64 ELF linker to
|
||||
disable relocation overflow check. This can be used to avoid relocation
|
||||
overflow check if there will be no dynamic relocation overflow at
|
||||
run-time.
|
||||
|
||||
The 64-bit compressed x86 kernel is built as PIE only if the linker supports
|
||||
-z noreloc-overflow. So far 64-bit relocatable compressed x86 kernel
|
||||
boots fine even when it is built as a normal executable.
|
||||
|
||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||
Cc: Andy Lutomirski <luto@amacapital.net>
|
||||
Cc: Borislav Petkov <bp@alien8.de>
|
||||
Cc: Brian Gerst <brgerst@gmail.com>
|
||||
Cc: Denys Vlasenko <dvlasenk@redhat.com>
|
||||
Cc: H. Peter Anvin <hpa@zytor.com>
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: linux-kernel@vger.kernel.org
|
||||
[ Edited the changelog and comments. ]
|
||||
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
||||
---
|
||||
arch/x86/boot/compressed/Makefile | 14 +++++++++++++-
|
||||
arch/x86/boot/compressed/head_32.S | 28 ++++++++++++++++++++++++++++
|
||||
arch/x86/boot/compressed/head_64.S | 8 ++++++++
|
||||
3 files changed, 49 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
|
||||
index 6915ff2..8774cb2 100644
|
||||
--- a/arch/x86/boot/compressed/Makefile
|
||||
+++ b/arch/x86/boot/compressed/Makefile
|
||||
@@ -26,7 +26,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
|
||||
vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4
|
||||
|
||||
KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
|
||||
-KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
|
||||
+KBUILD_CFLAGS += -fno-strict-aliasing $(call cc-option, -fPIE, -fPIC)
|
||||
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
||||
cflags-$(CONFIG_X86_32) := -march=i386
|
||||
cflags-$(CONFIG_X86_64) := -mcmodel=small
|
||||
@@ -40,6 +40,18 @@ GCOV_PROFILE := n
|
||||
UBSAN_SANITIZE :=n
|
||||
|
||||
LDFLAGS := -m elf_$(UTS_MACHINE)
|
||||
+ifeq ($(CONFIG_RELOCATABLE),y)
|
||||
+# If kernel is relocatable, build compressed kernel as PIE.
|
||||
+ifeq ($(CONFIG_X86_32),y)
|
||||
+LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker)
|
||||
+else
|
||||
+# To build 64-bit compressed kernel as PIE, we disable relocation
|
||||
+# overflow check to avoid relocation overflow error with a new linker
|
||||
+# command-line option, -z noreloc-overflow.
|
||||
+LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \
|
||||
+ && echo "-z noreloc-overflow -pie --no-dynamic-linker")
|
||||
+endif
|
||||
+endif
|
||||
LDFLAGS_vmlinux := -T
|
||||
|
||||
hostprogs-y := mkpiggy
|
||||
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
|
||||
index 8ef964d..0256064 100644
|
||||
--- a/arch/x86/boot/compressed/head_32.S
|
||||
+++ b/arch/x86/boot/compressed/head_32.S
|
||||
@@ -31,6 +31,34 @@
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/bootparam.h>
|
||||
|
||||
+/*
|
||||
+ * The 32-bit x86 assembler in binutils 2.26 will generate R_386_GOT32X
|
||||
+ * relocation to get the symbol address in PIC. When the compressed x86
|
||||
+ * kernel isn't built as PIC, the linker optimizes R_386_GOT32X
|
||||
+ * relocations to their fixed symbol addresses. However, when the
|
||||
+ * compressed x86 kernel is loaded at a different address, it leads
|
||||
+ * to the following load failure:
|
||||
+ *
|
||||
+ * Failed to allocate space for phdrs
|
||||
+ *
|
||||
+ * during the decompression stage.
|
||||
+ *
|
||||
+ * If the compressed x86 kernel is relocatable at run-time, it should be
|
||||
+ * compiled with -fPIE, instead of -fPIC, if possible and should be built as
|
||||
+ * Position Independent Executable (PIE) so that linker won't optimize
|
||||
+ * R_386_GOT32X relocation to its fixed symbol address. Older
|
||||
+ * linkers generate R_386_32 relocations against locally defined symbols,
|
||||
+ * _bss, _ebss, _got and _egot, in PIE. It isn't wrong, just less
|
||||
+ * optimal than R_386_RELATIVE. But the x86 kernel fails to properly handle
|
||||
+ * R_386_32 relocations when relocating the kernel. To generate
|
||||
+ * R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as
|
||||
+ * hidden:
|
||||
+ */
|
||||
+ .hidden _bss
|
||||
+ .hidden _ebss
|
||||
+ .hidden _got
|
||||
+ .hidden _egot
|
||||
+
|
||||
__HEAD
|
||||
ENTRY(startup_32)
|
||||
#ifdef CONFIG_EFI_STUB
|
||||
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
|
||||
index b0c0d16..86558a1 100644
|
||||
--- a/arch/x86/boot/compressed/head_64.S
|
||||
+++ b/arch/x86/boot/compressed/head_64.S
|
||||
@@ -33,6 +33,14 @@
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/bootparam.h>
|
||||
|
||||
+/*
|
||||
+ * Locally defined symbols should be marked hidden:
|
||||
+ */
|
||||
+ .hidden _bss
|
||||
+ .hidden _ebss
|
||||
+ .hidden _got
|
||||
+ .hidden _egot
|
||||
+
|
||||
__HEAD
|
||||
.code32
|
||||
ENTRY(startup_32)
|
||||
--
|
||||
2.7.3
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
From 3e4f68f273ef86e6ed8be24a86f8ef514deaecc0 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Wed, 27 Apr 2016 08:37:41 -0400
|
||||
Subject: [PATCH] x86/efi-bgrt: Switch all pr_err() to pr_debug() for invalid
|
||||
BGRT
|
||||
|
||||
The promise of pretty boot splashes from firmware via BGRT was at
|
||||
best only that; a promise. The kernel diligently checks to make
|
||||
sure the BGRT data firmware gives it is valid, and dutifully warns
|
||||
the user when it isn't. However, it does so via the pr_err log
|
||||
level which seems unnecessary. The user cannot do anything about
|
||||
this and there really isn't an error on the part of Linux to
|
||||
correct.
|
||||
|
||||
This lowers the log level by using pr_debug instead. Users will
|
||||
no longer have their boot process uglified by the kernel reminding
|
||||
us that firmware can and often is broken. Ironic, considering
|
||||
BGRT is supposed to make boot pretty to begin with.
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
arch/x86/platform/efi/efi-bgrt.c | 16 ++++++++--------
|
||||
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c
|
||||
index ea48449b2e63..87da4108785b 100644
|
||||
--- a/arch/x86/platform/efi/efi-bgrt.c
|
||||
+++ b/arch/x86/platform/efi/efi-bgrt.c
|
||||
@@ -41,17 +41,17 @@ void __init efi_bgrt_init(void)
|
||||
return;
|
||||
|
||||
if (bgrt_tab->header.length < sizeof(*bgrt_tab)) {
|
||||
- pr_err("Ignoring BGRT: invalid length %u (expected %zu)\n",
|
||||
+ pr_debug("Ignoring BGRT: invalid length %u (expected %zu)\n",
|
||||
bgrt_tab->header.length, sizeof(*bgrt_tab));
|
||||
return;
|
||||
}
|
||||
if (bgrt_tab->version != 1) {
|
||||
- pr_err("Ignoring BGRT: invalid version %u (expected 1)\n",
|
||||
+ pr_debug("Ignoring BGRT: invalid version %u (expected 1)\n",
|
||||
bgrt_tab->version);
|
||||
return;
|
||||
}
|
||||
if (bgrt_tab->status & 0xfe) {
|
||||
- pr_err("Ignoring BGRT: reserved status bits are non-zero %u\n",
|
||||
+ pr_debug("Ignoring BGRT: reserved status bits are non-zero %u\n",
|
||||
bgrt_tab->status);
|
||||
return;
|
||||
}
|
||||
@@ -61,12 +61,12 @@ void __init efi_bgrt_init(void)
|
||||
return;
|
||||
}
|
||||
if (bgrt_tab->image_type != 0) {
|
||||
- pr_err("Ignoring BGRT: invalid image type %u (expected 0)\n",
|
||||
+ pr_debug("Ignoring BGRT: invalid image type %u (expected 0)\n",
|
||||
bgrt_tab->image_type);
|
||||
return;
|
||||
}
|
||||
if (!bgrt_tab->image_address) {
|
||||
- pr_err("Ignoring BGRT: null image address\n");
|
||||
+ pr_debug("Ignoring BGRT: null image address\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ void __init efi_bgrt_init(void)
|
||||
sizeof(bmp_header));
|
||||
ioremapped = true;
|
||||
if (!image) {
|
||||
- pr_err("Ignoring BGRT: failed to map image header memory\n");
|
||||
+ pr_debug("Ignoring BGRT: failed to map image header memory\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,7 @@ void __init efi_bgrt_init(void)
|
||||
|
||||
bgrt_image = kmalloc(bgrt_image_size, GFP_KERNEL | __GFP_NOWARN);
|
||||
if (!bgrt_image) {
|
||||
- pr_err("Ignoring BGRT: failed to allocate memory for image (wanted %zu bytes)\n",
|
||||
+ pr_debug("Ignoring BGRT: failed to allocate memory for image (wanted %zu bytes)\n",
|
||||
bgrt_image_size);
|
||||
return;
|
||||
}
|
||||
@@ -97,7 +97,7 @@ void __init efi_bgrt_init(void)
|
||||
image = early_ioremap(bgrt_tab->image_address,
|
||||
bmp_header.size);
|
||||
if (!image) {
|
||||
- pr_err("Ignoring BGRT: failed to map image memory\n");
|
||||
+ pr_debug("Ignoring BGRT: failed to map image memory\n");
|
||||
kfree(bgrt_image);
|
||||
bgrt_image = NULL;
|
||||
return;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
From 8b8addf891de8a00e4d39fc32f93f7c5eb8feceb Mon Sep 17 00:00:00 2001
|
||||
From: Hector Marco-Gisbert <hecmargi@upv.es>
|
||||
Date: Thu, 10 Mar 2016 20:51:00 +0100
|
||||
Subject: [PATCH] x86/mm/32: Enable full randomization on i386 and X86_32
|
||||
|
||||
Currently on i386 and on X86_64 when emulating X86_32 in legacy mode, only
|
||||
the stack and the executable are randomized but not other mmapped files
|
||||
(libraries, vDSO, etc.). This patch enables randomization for the
|
||||
libraries, vDSO and mmap requests on i386 and in X86_32 in legacy mode.
|
||||
|
||||
By default on i386 there are 8 bits for the randomization of the libraries,
|
||||
vDSO and mmaps which only uses 1MB of VA.
|
||||
|
||||
This patch preserves the original randomness, using 1MB of VA out of 3GB or
|
||||
4GB. We think that 1MB out of 3GB is not a big cost for having the ASLR.
|
||||
|
||||
The first obvious security benefit is that all objects are randomized (not
|
||||
only the stack and the executable) in legacy mode which highly increases
|
||||
the ASLR effectiveness, otherwise the attackers may use these
|
||||
non-randomized areas. But also sensitive setuid/setgid applications are
|
||||
more secure because currently, attackers can disable the randomization of
|
||||
these applications by setting the ulimit stack to "unlimited". This is a
|
||||
very old and widely known trick to disable the ASLR in i386 which has been
|
||||
allowed for too long.
|
||||
|
||||
Another trick used to disable the ASLR was to set the ADDR_NO_RANDOMIZE
|
||||
personality flag, but fortunately this doesn't work on setuid/setgid
|
||||
applications because there is security checks which clear Security-relevant
|
||||
flags.
|
||||
|
||||
This patch always randomizes the mmap_legacy_base address, removing the
|
||||
possibility to disable the ASLR by setting the stack to "unlimited".
|
||||
|
||||
Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es>
|
||||
Acked-by: Ismael Ripoll Ripoll <iripoll@upv.es>
|
||||
Acked-by: Kees Cook <keescook@chromium.org>
|
||||
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
|
||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: akpm@linux-foundation.org
|
||||
Cc: kees Cook <keescook@chromium.org>
|
||||
Link: http://lkml.kernel.org/r/1457639460-5242-1-git-send-email-hecmargi@upv.es
|
||||
Signed-off-by: Ingo Molnar <mingo@kernel.org>
|
||||
---
|
||||
arch/x86/mm/mmap.c | 14 +-------------
|
||||
1 file changed, 1 insertion(+), 13 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
|
||||
index 96bd1e2..389939f 100644
|
||||
--- a/arch/x86/mm/mmap.c
|
||||
+++ b/arch/x86/mm/mmap.c
|
||||
@@ -94,18 +94,6 @@ static unsigned long mmap_base(unsigned long rnd)
|
||||
}
|
||||
|
||||
/*
|
||||
- * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
|
||||
- * does, but not when emulating X86_32
|
||||
- */
|
||||
-static unsigned long mmap_legacy_base(unsigned long rnd)
|
||||
-{
|
||||
- if (mmap_is_ia32())
|
||||
- return TASK_UNMAPPED_BASE;
|
||||
- else
|
||||
- return TASK_UNMAPPED_BASE + rnd;
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
* This function, called very early during the creation of a new
|
||||
* process VM image, sets up which VM layout function to use:
|
||||
*/
|
||||
@@ -116,7 +104,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
|
||||
if (current->flags & PF_RANDOMIZE)
|
||||
random_factor = arch_mmap_rnd();
|
||||
|
||||
- mm->mmap_legacy_base = mmap_legacy_base(random_factor);
|
||||
+ mm->mmap_legacy_base = TASK_UNMAPPED_BASE + random_factor;
|
||||
|
||||
if (mmap_is_legacy()) {
|
||||
mm->mmap_base = mm->mmap_legacy_base;
|
||||
--
|
||||
2.7.3
|
||||
|
Loading…
Reference in New Issue