Hi Sasha,
On Wed, May 29, 2019 at 07:52:27PM -0400, Sasha Levin wrote:
> brcmfmac: fix Oops when bringing up interface during USB disconnect
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable(a)vger.kernel.org> know about it.
I see you taken the brcmfmac fixes to stable, if I recall correctly the
following commit was also pretty relevant and I don't think it was picked-up.
It's in the upstream:
commit 5cdb0ef6144f47440850553579aa923c20a63f23
Author: Piotr Figiel <p.figiel(a)camlintechnologies.com>
Date: Mon Mar 4 15:42:52 2019 +0000
brcmfmac: fix NULL pointer derefence during USB disconnect
Maybe you could consider also taking this.
Best regards,
--
Piotr Figiel
Changes since v7 [1]:
- Make subsection helpers pfn based rather than physical-address based
(Oscar and Pavel)
- Make subsection bitmap definition scalable for different section and
sub-section sizes across architectures. As a result:
unsigned long map_active
...is converted to:
DECLARE_BITMAP(subsection_map, SUBSECTIONS_PER_SECTION)
...and the helpers are renamed with a 'subsection' prefix. (Pavel)
- New in this version is a touch of arch/powerpc/include/asm/sparsemem.h
in "[PATCH v8 01/12] mm/sparsemem: Introduce struct mem_section_usage"
to define ARCH_SUBSECTION_SHIFT.
- Drop "mm/sparsemem: Introduce common definitions for the size and mask
of a section" in favor of Robin's "mm/memremap: Rename and consolidate
SECTION_SIZE" (Pavel)
- Collect some more Reviewed-by tags. Patches that still lack review
tags: 1, 3, 9 - 12
[1]: https://lore.kernel.org/lkml/155677652226.2336373.8700273400832001094.stgit…
---
[merge logistics]
Hi Andrew,
These are too late for v5.2, I'm posting this v8 during the merge window
to maintain the review momentum.
---
[cover letter]
The memory hotplug section is an arbitrary / convenient unit for memory
hotplug. 'Section-size' units have bled into the user interface
('memblock' sysfs) and can not be changed without breaking existing
userspace. The section-size constraint, while mostly benign for typical
memory hotplug, has and continues to wreak havoc with 'device-memory'
use cases, persistent memory (pmem) in particular. Recall that pmem uses
devm_memremap_pages(), and subsequently arch_add_memory(), to allocate a
'struct page' memmap for pmem. However, it does not use the 'bottom
half' of memory hotplug, i.e. never marks pmem pages online and never
exposes the userspace memblock interface for pmem. This leaves an
opening to redress the section-size constraint.
To date, the libnvdimm subsystem has attempted to inject padding to
satisfy the internal constraints of arch_add_memory(). Beyond
complicating the code, leading to bugs [2], wasting memory, and limiting
configuration flexibility, the padding hack is broken when the platform
changes this physical memory alignment of pmem from one boot to the
next. Device failure (intermittent or permanent) and physical
reconfiguration are events that can cause the platform firmware to
change the physical placement of pmem on a subsequent boot, and device
failure is an everyday event in a data-center.
It turns out that sections are only a hard requirement of the
user-facing interface for memory hotplug and with a bit more
infrastructure sub-section arch_add_memory() support can be added for
kernel internal usages like devm_memremap_pages(). Here is an analysis
of the current design assumptions in the current code and how they are
addressed in the new implementation:
Current design assumptions:
- Sections that describe boot memory (early sections) are never
unplugged / removed.
- pfn_valid(), in the CONFIG_SPARSEMEM_VMEMMAP=y, case devolves to a
valid_section() check
- __add_pages() and helper routines assume all operations occur in
PAGES_PER_SECTION units.
- The memblock sysfs interface only comprehends full sections
New design assumptions:
- Sections are instrumented with a sub-section bitmask to track (on x86)
individual 2MB sub-divisions of a 128MB section.
- Partially populated early sections can be extended with additional
sub-sections, and those sub-sections can be removed with
arch_remove_memory(). With this in place we no longer lose usable memory
capacity to padding.
- pfn_valid() is updated to look deeper than valid_section() to also check the
active-sub-section mask. This indication is in the same cacheline as
the valid_section() so the performance impact is expected to be
negligible. So far the lkp robot has not reported any regressions.
- Outside of the core vmemmap population routines which are replaced,
other helper routines like shrink_{zone,pgdat}_span() are updated to
handle the smaller granularity. Core memory hotplug routines that deal
with online memory are not touched.
- The existing memblock sysfs user api guarantees / assumptions are
not touched since this capability is limited to !online
!memblock-sysfs-accessible sections.
Meanwhile the issue reports continue to roll in from users that do not
understand when and how the 128MB constraint will bite them. The current
implementation relied on being able to support at least one misaligned
namespace, but that immediately falls over on any moderately complex
namespace creation attempt. Beyond the initial problem of 'System RAM'
colliding with pmem, and the unsolvable problem of physical alignment
changes, Linux is now being exposed to platforms that collide pmem
ranges with other pmem ranges by default [3]. In short,
devm_memremap_pages() has pushed the venerable section-size constraint
past the breaking point, and the simplicity of section-aligned
arch_add_memory() is no longer tenable.
These patches are exposed to the kbuild robot on my libnvdimm-pending
branch [4], and a preview of the unit test for this functionality is
available on the 'subsection-pending' branch of ndctl [5].
[2]: https://lore.kernel.org/r/155000671719.348031.2347363160141119237.stgit@dwi…
[3]: https://github.com/pmem/ndctl/issues/76
[4]: https://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm.git/log/?h=libn…
[5]: https://github.com/pmem/ndctl/commit/7c59b4867e1c
---
Dan Williams (11):
mm/sparsemem: Introduce struct mem_section_usage
mm/sparsemem: Add helpers track active portions of a section at boot
mm/hotplug: Prepare shrink_{zone,pgdat}_span for sub-section removal
mm/sparsemem: Convert kmalloc_section_memmap() to populate_section_memmap()
mm/hotplug: Kill is_dev_zone() usage in __remove_pages()
mm: Kill is_dev_zone() helper
mm/sparsemem: Prepare for sub-section ranges
mm/sparsemem: Support sub-section hotplug
mm/devm_memremap_pages: Enable sub-section remap
libnvdimm/pfn: Fix fsdax-mode namespace info-block zero-fields
libnvdimm/pfn: Stop padding pmem namespaces to section alignment
Robin Murphy (1):
mm/memremap: Rename and consolidate SECTION_SIZE
arch/powerpc/include/asm/sparsemem.h | 3
arch/x86/mm/init_64.c | 4
drivers/nvdimm/dax_devs.c | 2
drivers/nvdimm/pfn.h | 15 -
drivers/nvdimm/pfn_devs.c | 95 +++------
include/linux/memory_hotplug.h | 7 -
include/linux/mm.h | 4
include/linux/mmzone.h | 93 +++++++--
kernel/memremap.c | 63 ++----
mm/hmm.c | 2
mm/memory_hotplug.c | 172 +++++++++-------
mm/page_alloc.c | 8 -
mm/sparse-vmemmap.c | 21 +-
mm/sparse.c | 369 +++++++++++++++++++++++-----------
14 files changed, 511 insertions(+), 347 deletions(-)
Processing SDIO interrupts while dw_mmc is suspended (or partly
suspended) seems like a bad idea. We really don't want to be
processing them until we've gotten ourselves fully powered up.
You might be wondering how it's even possible to become suspended when
an SDIO interrupt is active. As can be seen in
dw_mci_enable_sdio_irq(), we explicitly keep dw_mmc out of runtime
suspend when the SDIO interrupt is enabled. ...but even though we
stop normal runtime suspend transitions when SDIO interrupts are
enabled, the dw_mci_runtime_suspend() can still get called for a full
system suspend.
Let's handle all this by explicitly masking SDIO interrupts in the
suspend call and unmasking them later in the resume call. To do this
cleanly I'll keep track of whether the client requested that SDIO
interrupts be enabled so that we can reliably restore them regardless
of whether we're masking them for one reason or another.
It should be noted that if dw_mci_enable_sdio_irq() is never called
(for instance, if we don't have an SDIO card plugged in) that
"client_sdio_enb" will always be false. In those cases this patch
adds a tiny bit of overhead to suspend/resume (a spinlock and a
read/write of INTMASK) but other than that is a no-op. The
SDMMC_INT_SDIO bit should always be clear and clearing it again won't
hurt.
Without this fix it can be seen that rk3288-veyron Chromebooks with
Marvell WiFi would sometimes fail to resume WiFi even after picking my
recent mwifiex patch [1]. Specifically you'd see messages like this:
mwifiex_sdio mmc1:0001:1: Firmware wakeup failed
mwifiex_sdio mmc1:0001:1: PREP_CMD: FW in reset state
...and tracing through the resume code in the failing cases showed
that we were processing a SDIO interrupt really early in the resume
call.
NOTE: downstream in Chrome OS 3.14 and 3.18 kernels (both of which
support the Marvell SDIO WiFi card) we had a patch ("CHROMIUM: sdio:
Defer SDIO interrupt handling until after resume") [2]. Presumably
this is the same problem that was solved by that patch.
[1] https://lkml.kernel.org/r/20190404040106.40519-1-dianders@chromium.org
[2] https://crrev.com/c/230765
Cc: <stable(a)vger.kernel.org> # 4.14.x
Signed-off-by: Douglas Anderson <dianders(a)chromium.org>
---
I didn't put any "Fixes" tag here, but presumably this could be
backported to whichever kernels folks found it useful for. I have at
least confirmed that kernels v4.14 and v4.19 (as well as v5.1-rc2)
show the problem. It is very easy to pick this to v4.19 and it
definitely fixes the problem there.
I haven't spent the time to pick this to 4.14 myself, but presumably
it wouldn't be too hard to backport this as far as v4.13 since that
contains commit 32dba73772f8 ("mmc: dw_mmc: Convert to use
MMC_CAP2_SDIO_IRQ_NOTHREAD for SDIO IRQs"). Prior to that it might
make sense for anyone experiencing this problem to just pick the old
CHROMIUM patch to fix them.
Changes in v2:
- Suggested 4.14+ in the stable tag (Sasha-bot)
- Extra note that this is a noop on non-SDIO (Shawn / Emil)
- Make boolean logic cleaner as per https://crrev.com/c/1586207/1
- Hopefully clear comments as per https://crrev.com/c/1586207/1
drivers/mmc/host/dw_mmc.c | 27 +++++++++++++++++++++++----
drivers/mmc/host/dw_mmc.h | 3 +++
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 80dc2fd6576c..480067b87a94 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1664,7 +1664,8 @@ static void dw_mci_init_card(struct mmc_host *mmc, struct mmc_card *card)
}
}
-static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, int enb)
+static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, bool enb,
+ bool client_requested)
{
struct dw_mci *host = slot->host;
unsigned long irqflags;
@@ -1672,6 +1673,20 @@ static void __dw_mci_enable_sdio_irq(struct dw_mci_slot *slot, int enb)
spin_lock_irqsave(&host->irq_lock, irqflags);
+ /*
+ * If we're being called directly from dw_mci_enable_sdio_irq()
+ * (which means that the client driver actually wants to enable or
+ * disable interrupts) then save the request. Otherwise this
+ * wasn't directly requested by the client and we should logically
+ * AND it with the client request since we want to disable if
+ * _either_ the client disabled OR we have some other reason to
+ * disable temporarily.
+ */
+ if (client_requested)
+ host->client_sdio_enb = enb;
+ else
+ enb &= host->client_sdio_enb;
+
/* Enable/disable Slot Specific SDIO interrupt */
int_mask = mci_readl(host, INTMASK);
if (enb)
@@ -1688,7 +1703,7 @@ static void dw_mci_enable_sdio_irq(struct mmc_host *mmc, int enb)
struct dw_mci_slot *slot = mmc_priv(mmc);
struct dw_mci *host = slot->host;
- __dw_mci_enable_sdio_irq(slot, enb);
+ __dw_mci_enable_sdio_irq(slot, enb, true);
/* Avoid runtime suspending the device when SDIO IRQ is enabled */
if (enb)
@@ -1701,7 +1716,7 @@ static void dw_mci_ack_sdio_irq(struct mmc_host *mmc)
{
struct dw_mci_slot *slot = mmc_priv(mmc);
- __dw_mci_enable_sdio_irq(slot, 1);
+ __dw_mci_enable_sdio_irq(slot, true, false);
}
static int dw_mci_execute_tuning(struct mmc_host *mmc, u32 opcode)
@@ -2734,7 +2749,7 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
if (pending & SDMMC_INT_SDIO(slot->sdio_id)) {
mci_writel(host, RINTSTS,
SDMMC_INT_SDIO(slot->sdio_id));
- __dw_mci_enable_sdio_irq(slot, 0);
+ __dw_mci_enable_sdio_irq(slot, false, false);
sdio_signal_irq(slot->mmc);
}
@@ -3424,6 +3439,8 @@ int dw_mci_runtime_suspend(struct device *dev)
{
struct dw_mci *host = dev_get_drvdata(dev);
+ __dw_mci_enable_sdio_irq(host->slot, false, false);
+
if (host->use_dma && host->dma_ops->exit)
host->dma_ops->exit(host);
@@ -3490,6 +3507,8 @@ int dw_mci_runtime_resume(struct device *dev)
/* Now that slots are all setup, we can enable card detect */
dw_mci_enable_cd(host);
+ __dw_mci_enable_sdio_irq(host->slot, true, false);
+
return 0;
err:
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 46e9f8ec5398..dfbace0f5043 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -127,6 +127,7 @@ struct dw_mci_dma_slave {
* @cmd11_timer: Timer for SD3.0 voltage switch over scheme.
* @cto_timer: Timer for broken command transfer over scheme.
* @dto_timer: Timer for broken data transfer over scheme.
+ * @client_sdio_enb: The value last passed to enable_sdio_irq.
*
* Locking
* =======
@@ -234,6 +235,8 @@ struct dw_mci {
struct timer_list cmd11_timer;
struct timer_list cto_timer;
struct timer_list dto_timer;
+
+ bool client_sdio_enb;
};
/* DMA ops for Internal/External DMAC interface */
--
2.21.0.593.g511ec345e18-goog
Hi Sasha,
i have (back)ported the patch to the older kernels mentioned below
where the original patch failed.
The patch appended to this mail applies to v4.14.121, v4.9.178, v4.4.180 and v3.18.140.
Some changes within the xhci driver prevented git from finding the correct position.
Hope this helps :-)
Best regards
Carsten
________________________________________
Von: Sasha Levin <sashal(a)kernel.org>
Gesendet: Mittwoch, 29. Mai 2019 15:14
An: Sasha Levin; Mathias Nyman; Schmid, Carsten; gregkh(a)linuxfoundation.org
Cc: linux-usb(a)vger.kernel.org; Stable; stable(a)vger.kernel.org
Betreff: Re: [PATCH 3/5] usb: xhci: avoid null pointer deref when bos field is NULL
Hi,
[This is an automated email]
This commit has been processed because it contains a -stable tag.
The stable tag indicates that it's relevant for the following trees: all
The bot has tested the following trees: v5.1.4, v5.0.18, v4.19.45, v4.14.121, v4.9.178, v4.4.180, v3.18.140.
v5.1.4: Build OK!
v5.0.18: Build OK!
v4.19.45: Build OK!
v4.14.121: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
b1fc2839d2f92 ("drm/msm: Implement preemption for A5XX targets")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
cd414f3d93168 ("drm/msm: Move memptrs to msm_gpu")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
eec874ce5ff1f ("drm/msm/adreno: load gpu at probe/bind time")
f7de15450e906 ("drm/msm: Add per-instance submit queues")
f97decac5f4c2 ("drm/msm: Support multiple ringbuffers")
v4.9.178: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
cf43e6be865a5 ("block: add scalable completion tracking of requests")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e806402130c9c ("block: split out request-only flags into a new namespace")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
v4.4.180: Failed to apply! Possible dependencies:
01451ad47e272 ("powerpc/powermac: Use setup_timer() helper")
37f895d7e85e7 ("NFC: pn533: Fix socket deadlock")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
80c1bce9aa315 ("[media] au0828: Refactoring for start_urb_transfer()")
83ad1e6a1dc04 ("powerpc/oprofile: Use setup_timer() helper")
8d6b1bf20f61c ("powerpc/6xx: Use setup_timer() helper")
9815c7cf22dac ("NFC: pn533: Separate physical layer from the core implementation")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
e629cfa36ea08 ("MIPS: Lasat: Use setup_timer() helper")
e997ebbe46fe4 ("NFC: pn533: Send ATR_REQ only if NFC_PROTO_NFC_DEP bit is set")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
v3.18.140: Failed to apply! Possible dependencies:
0a5942c8e1480 ("NFC: Add ACPI support for NXP PN544")
34ac49664149d ("NFC: nci: remove current SLEEP mode management")
3590ebc040c9e ("NFC: logging neatening")
3682f49f32051 ("NFC: netlink: Add new netlink command NFC_CMD_ACTIVATE_TARGET")
37f895d7e85e7 ("NFC: pn533: Fix socket deadlock")
38986ffa6a748 ("xhci: use port structures instead of port arrays in xhci.c functions")
53460c53b7619 ("[media] au0828: Add timer to restart TS stream if no data arrives on bulk endpoint")
5df848f37b1d2 ("NFC: pn533: fix error return code")
7c96f59e0cafe ("[media] s5p-mfc: Fix initialization of internal structures")
80c1bce9aa315 ("[media] au0828: Refactoring for start_urb_transfer()")
9295b5b569fc4 ("NFC: nci: Add support for different NCI_DEACTIVATE_TYPE")
96d4581f0b371 ("NFC: netlink: Add mode parameter to deactivate_target functions")
9815c7cf22dac ("NFC: pn533: Separate physical layer from the core implementation")
b9eaf18722221 ("treewide: init_timer() -> setup_timer()")
d7979e130ebb0 ("NFC: NCI: Signal deactivation in Target mode")
e997ebbe46fe4 ("NFC: pn533: Send ATR_REQ only if NFC_PROTO_NFC_DEP bit is set")
e99e88a9d2b06 ("treewide: setup_timer() -> timer_setup()")
How should we proceed with this patch?
--
Thanks,
Sasha
This is the start of the stable review cycle for the 5.1.7 release.
There are 40 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed 05 Jun 2019 09:04:46 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.1.7-rc1.…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.1.7-rc1
Junwei Hu <hujunwei4(a)huawei.com>
tipc: fix modprobe tipc failed after switch order of device registration
David S. Miller <davem(a)davemloft.net>
Revert "tipc: fix modprobe tipc failed after switch order of device registration"
Daniel Axtens <dja(a)axtens.net>
crypto: vmx - ghash: do nosimd fallback manually
Willem de Bruijn <willemb(a)google.com>
net: correct zerocopy refcnt with udp MSG_MORE
Vishal Kulkarni <vishal(a)chelsio.com>
cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size"
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: don't ignore netdev notifications if no TLS features
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix state removal with feature flags off
Jakub Kicinski <jakub.kicinski(a)netronome.com>
selftests/tls: add test for sleeping even though there is data
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix no wakeup on partial reads
Jakub Kicinski <jakub.kicinski(a)netronome.com>
selftests/tls: test for lowat overshoot with multiple records
Jakub Kicinski <jakub.kicinski(a)netronome.com>
net/tls: fix lowat calculation if some data came from previous record
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Reduce memory usage when running in kdump kernel.
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix aggregation buffer leak under OOM condition.
Weifeng Voon <weifeng.voon(a)intel.com>
net: stmmac: dma channel control register need to be init first
Tan, Tee Min <tee.min.tan(a)intel.com>
net: stmmac: fix ethtool flow control not able to get/set
Saeed Mahameed <saeedm(a)mellanox.com>
net/mlx5e: Disable rxhash when CQE compress is enabled
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Allocate root ns memory using kzalloc to match kfree
Chris Packham <chris.packham(a)alliedtelesis.co.nz>
tipc: Avoid copying bytes beyond the supplied data
Parav Pandit <parav(a)mellanox.com>
net/mlx5: Avoid double free in fs init error unwinding path
Kloetzke Jan <Jan.Kloetzke(a)preh.de>
usbnet: fix kernel crash after disconnect
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: fix MAC address being lost in PCI D3
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: stmmac: fix reset gpio free missing
Vlad Buslov <vladbu(a)mellanox.com>
net: sched: don't use tc_action->order during action dump
Russell King <rmk+kernel(a)armlinux.org.uk>
net: phy: marvell10g: report if the PHY fails to boot firmware
Antoine Tenart <antoine.tenart(a)bootlin.com>
net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value
Jisheng Zhang <Jisheng.Zhang(a)synaptics.com>
net: mvneta: Fix err code path of probe
Eric Dumazet <edumazet(a)google.com>
net-gro: fix use-after-free read in napi_gro_frags()
Andy Duan <fugang.duan(a)nxp.com>
net: fec: fix the clk mismatch in failed_reset path
Rasmus Villemoes <rasmus.villemoes(a)prevas.dk>
net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT
Jiri Pirko <jiri(a)mellanox.com>
mlxsw: spectrum_acl: Avoid warning after identical rules insertion
Eric Dumazet <edumazet(a)google.com>
llc: fix skb leak in llc_build_and_send_ui_pkt()
David Ahern <dsahern(a)gmail.com>
ipv6: Fix redirect with VRF
Mike Manning <mmanning(a)vyatta.att-mail.com>
ipv6: Consider sk_bound_dev_if when binding a raw socket to an address
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST
Eric Dumazet <edumazet(a)google.com>
ipv4/igmp: fix another memory leak in igmpv3_del_delrec()
Eric Dumazet <edumazet(a)google.com>
inet: switch IP ID generator to siphash
Maxime Chevallier <maxime.chevallier(a)bootlin.com>
ethtool: Check for vlan etype or vlan tci when parsing flow_rule
Raju Rangoju <rajur(a)chelsio.com>
cxgb4: offload VLAN flows regardless of VLAN ethtype
Jarod Wilson <jarod(a)redhat.com>
bonding/802.3ad: fix slave link initialization transition states
-------------
Diffstat:
Makefile | 4 +-
drivers/crypto/vmx/ghash.c | 212 +++++++++------------
drivers/net/bonding/bond_main.c | 15 +-
drivers/net/dsa/mv88e6xxx/chip.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 19 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 +-
.../net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c | 5 +-
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 11 ++
drivers/net/ethernet/freescale/fec_main.c | 2 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 13 ++
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 6 +-
.../net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11 +-
drivers/net/ethernet/realtek/r8169.c | 3 +
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3 +-
drivers/net/phy/marvell10g.c | 13 ++
drivers/net/usb/usbnet.c | 6 +
include/linux/siphash.h | 5 +
include/net/netns/ipv4.h | 2 +
include/uapi/linux/tipc_config.h | 10 +-
net/core/dev.c | 2 +-
net/core/ethtool.c | 8 +-
net/core/skbuff.c | 6 +-
net/ipv4/igmp.c | 47 +++--
net/ipv4/ip_output.c | 4 +-
net/ipv4/route.c | 12 +-
net/ipv6/ip6_output.c | 4 +-
net/ipv6/output_core.c | 30 +--
net/ipv6/raw.c | 2 +
net/ipv6/route.c | 6 +
net/llc/llc_output.c | 2 +
net/sched/act_api.c | 3 +-
net/tipc/core.c | 32 ++--
net/tipc/subscr.h | 5 +-
net/tipc/topsrv.c | 14 +-
net/tls/tls_device.c | 9 +-
net/tls/tls_sw.c | 19 +-
tools/testing/selftests/net/tls.c | 34 ++++
43 files changed, 360 insertions(+), 257 deletions(-)