mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-14 08:16:40 +00:00
kernel: bump 5.4 to 5.4.158
Removed upstreamed: generic/backport-5.4/790-v5.7-net-switchdev-do-not-propagate-bridge-updates-across.patch All others updated automatically. Compile-tested on: lantiq/xrx200, armvirt/64 Runtime-tested on: lantiq/xrx200, armvirt/64 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
2f04012b20
commit
0b7311300b
@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
|
|||||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LINUX_VERSION-5.4 = .154
|
LINUX_VERSION-5.4 = .158
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-5.4.154 = 058994f4666b6b0474a4d5228583e394594e406783b7e93d487c2a66c35f3c06
|
LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
@ -48,7 +48,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
|
|
||||||
#include "xhci.h"
|
#include "xhci.h"
|
||||||
#include "xhci-trace.h"
|
#include "xhci-trace.h"
|
||||||
@@ -64,6 +66,44 @@
|
@@ -65,6 +67,44 @@
|
||||||
#define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142
|
#define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142
|
||||||
#define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242
|
#define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
static const char hcd_name[] = "xhci_hcd";
|
static const char hcd_name[] = "xhci_hcd";
|
||||||
|
|
||||||
static struct hc_driver __read_mostly xhci_pci_hc_driver;
|
static struct hc_driver __read_mostly xhci_pci_hc_driver;
|
||||||
@@ -309,6 +349,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
@@ -311,6 +351,873 @@ static void xhci_pme_acpi_rtd3_enable(st
|
||||||
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
|
||||||
#endif /* CONFIG_ACPI */
|
#endif /* CONFIG_ACPI */
|
||||||
|
|
||||||
@ -967,7 +967,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
/* called during probe() after chip reset completes */
|
/* called during probe() after chip reset completes */
|
||||||
static int xhci_pci_setup(struct usb_hcd *hcd)
|
static int xhci_pci_setup(struct usb_hcd *hcd)
|
||||||
{
|
{
|
||||||
@@ -350,6 +1257,27 @@ static int xhci_pci_probe(struct pci_dev
|
@@ -352,6 +1259,27 @@ static int xhci_pci_probe(struct pci_dev
|
||||||
struct hc_driver *driver;
|
struct hc_driver *driver;
|
||||||
struct usb_hcd *hcd;
|
struct usb_hcd *hcd;
|
||||||
|
|
||||||
@ -995,7 +995,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
driver = (struct hc_driver *)id->driver_data;
|
driver = (struct hc_driver *)id->driver_data;
|
||||||
|
|
||||||
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
|
||||||
@@ -411,6 +1339,16 @@ static void xhci_pci_remove(struct pci_d
|
@@ -413,6 +1341,16 @@ static void xhci_pci_remove(struct pci_d
|
||||||
{
|
{
|
||||||
struct xhci_hcd *xhci;
|
struct xhci_hcd *xhci;
|
||||||
|
|
||||||
@ -1012,7 +1012,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
|
|||||||
xhci = hcd_to_xhci(pci_get_drvdata(dev));
|
xhci = hcd_to_xhci(pci_get_drvdata(dev));
|
||||||
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
xhci->xhc_state |= XHCI_STATE_REMOVING;
|
||||||
|
|
||||||
@@ -550,6 +1488,11 @@ static int xhci_pci_resume(struct usb_hc
|
@@ -552,6 +1490,11 @@ static int xhci_pci_resume(struct usb_hc
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
|
||||||
usb_enable_intel_xhci_ports(pdev);
|
usb_enable_intel_xhci_ports(pdev);
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ produce a noisy warning.
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -288,6 +288,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -290,6 +290,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x0015) {
|
pdev->device == 0x0015) {
|
||||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||||
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
xhci->quirks |= XHCI_ZERO_64B_REGS;
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -257,6 +257,10 @@ static void xhci_pci_quirks(struct devic
|
@@ -259,6 +259,10 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x3432)
|
pdev->device == 0x3432)
|
||||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
|
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
|
||||||
--- a/include/linux/usb/hcd.h
|
--- a/include/linux/usb/hcd.h
|
||||||
+++ b/include/linux/usb/hcd.h
|
+++ b/include/linux/usb/hcd.h
|
||||||
@@ -384,6 +384,11 @@ struct hc_driver {
|
@@ -382,6 +382,11 @@ struct hc_driver {
|
||||||
* or bandwidth constraints.
|
* or bandwidth constraints.
|
||||||
*/
|
*/
|
||||||
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
||||||
@ -93,7 +93,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
/* Returns the hardware-chosen device address */
|
/* Returns the hardware-chosen device address */
|
||||||
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
|
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
|
||||||
/* prepares the hardware to send commands to the device */
|
/* prepares the hardware to send commands to the device */
|
||||||
@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
@@ -443,6 +448,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
||||||
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
|
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
|
||||||
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
|
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
|
||||||
struct usb_host_endpoint *ep);
|
struct usb_host_endpoint *ep);
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -1469,6 +1469,103 @@ command_cleanup:
|
@@ -1468,6 +1468,103 @@ command_cleanup:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
* non-error returns are a promise to giveback() the urb later
|
* non-error returns are a promise to giveback() the urb later
|
||||||
* we drop ownership so next owner (or urb unlink) can get it
|
* we drop ownership so next owner (or urb unlink) can get it
|
||||||
*/
|
*/
|
||||||
@@ -5358,6 +5455,7 @@ static const struct hc_driver xhci_hc_dr
|
@@ -5362,6 +5459,7 @@ static const struct hc_driver xhci_hc_dr
|
||||||
.endpoint_reset = xhci_endpoint_reset,
|
.endpoint_reset = xhci_endpoint_reset,
|
||||||
.check_bandwidth = xhci_check_bandwidth,
|
.check_bandwidth = xhci_check_bandwidth,
|
||||||
.reset_bandwidth = xhci_reset_bandwidth,
|
.reset_bandwidth = xhci_reset_bandwidth,
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -258,8 +258,10 @@ static void xhci_pci_quirks(struct devic
|
@@ -260,8 +260,10 @@ static void xhci_pci_quirks(struct devic
|
||||||
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||||
|
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
||||||
@ -37,7 +37,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
|
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI)
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -550,7 +550,10 @@ void xhci_find_new_dequeue_state(struct
|
@@ -556,7 +556,10 @@ void xhci_find_new_dequeue_state(struct
|
||||||
struct xhci_virt_ep *ep = &dev->eps[ep_index];
|
struct xhci_virt_ep *ep = &dev->eps[ep_index];
|
||||||
struct xhci_ring *ep_ring;
|
struct xhci_ring *ep_ring;
|
||||||
struct xhci_segment *new_seg;
|
struct xhci_segment *new_seg;
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
dma_addr_t addr;
|
dma_addr_t addr;
|
||||||
u64 hw_dequeue;
|
u64 hw_dequeue;
|
||||||
bool cycle_found = false;
|
bool cycle_found = false;
|
||||||
@@ -588,7 +591,28 @@ void xhci_find_new_dequeue_state(struct
|
@@ -594,7 +597,28 @@ void xhci_find_new_dequeue_state(struct
|
||||||
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
|
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
|
||||||
new_seg = ep_ring->deq_seg;
|
new_seg = ep_ring->deq_seg;
|
||||||
new_deq = ep_ring->dequeue;
|
new_deq = ep_ring->dequeue;
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
|
|
||||||
#define MAX_TUNING_LOOP 40
|
#define MAX_TUNING_LOOP 40
|
||||||
|
|
||||||
@@ -2762,7 +2762,7 @@ static void sdhci_timeout_timer(struct t
|
@@ -2768,7 +2768,7 @@ static void sdhci_timeout_timer(struct t
|
||||||
spin_lock_irqsave(&host->lock, flags);
|
spin_lock_irqsave(&host->lock, flags);
|
||||||
|
|
||||||
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
|
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
|
||||||
@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|||||||
mmc_hostname(host->mmc));
|
mmc_hostname(host->mmc));
|
||||||
sdhci_dumpregs(host);
|
sdhci_dumpregs(host);
|
||||||
|
|
||||||
@@ -2784,7 +2784,7 @@ static void sdhci_timeout_data_timer(str
|
@@ -2790,7 +2790,7 @@ static void sdhci_timeout_data_timer(str
|
||||||
|
|
||||||
if (host->data || host->data_cmd ||
|
if (host->data || host->data_cmd ||
|
||||||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
|
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -261,6 +261,7 @@ static void xhci_pci_quirks(struct devic
|
@@ -263,6 +263,7 @@ static void xhci_pci_quirks(struct devic
|
||||||
pdev->device == 0x3483) {
|
pdev->device == 0x3483) {
|
||||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||||
@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -647,6 +647,16 @@ void xhci_find_new_dequeue_state(struct
|
@@ -653,6 +653,16 @@ void xhci_find_new_dequeue_state(struct
|
||||||
|
|
||||||
} while (!cycle_found || !td_last_trb_found);
|
} while (!cycle_found || !td_last_trb_found);
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -5423,8 +5423,7 @@ static inline void skb_gro_reset_offset(
|
@@ -5429,8 +5429,7 @@ static inline void skb_gro_reset_offset(
|
||||||
NAPI_GRO_CB(skb)->frag0 = NULL;
|
NAPI_GRO_CB(skb)->frag0 = NULL;
|
||||||
NAPI_GRO_CB(skb)->frag0_len = 0;
|
NAPI_GRO_CB(skb)->frag0_len = 0;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
#include <linux/workqueue.h>
|
#include <linux/workqueue.h>
|
||||||
#include <linux/mdio.h>
|
#include <linux/mdio.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
@@ -843,6 +844,9 @@ void phy_stop(struct phy_device *phydev)
|
@@ -863,6 +864,9 @@ void phy_stop(struct phy_device *phydev)
|
||||||
|
|
||||||
mutex_lock(&phydev->lock);
|
mutex_lock(&phydev->lock);
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||||||
phydev->state = PHY_HALTED;
|
phydev->state = PHY_HALTED;
|
||||||
|
|
||||||
mutex_unlock(&phydev->lock);
|
mutex_unlock(&phydev->lock);
|
||||||
@@ -905,6 +909,9 @@ void phy_state_machine(struct work_struc
|
@@ -925,6 +929,9 @@ void phy_state_machine(struct work_struc
|
||||||
|
|
||||||
old_state = phydev->state;
|
old_state = phydev->state;
|
||||||
|
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
From 07c6f9805f12f1bb538ef165a092b300350384aa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Russell King <rmk+kernel@armlinux.org.uk>
|
|
||||||
Date: Wed, 26 Feb 2020 17:14:21 +0000
|
|
||||||
Subject: [PATCH] net: switchdev: do not propagate bridge updates across
|
|
||||||
bridges
|
|
||||||
|
|
||||||
When configuring a tree of independent bridges, propagating changes
|
|
||||||
from the upper bridge across a bridge master to the lower bridge
|
|
||||||
ports brings surprises.
|
|
||||||
|
|
||||||
For example, a lower bridge may have vlan filtering enabled. It
|
|
||||||
may have a vlan interface attached to the bridge master, which may
|
|
||||||
then be incorporated into another bridge. As soon as the lower
|
|
||||||
bridge vlan interface is attached to the upper bridge, the lower
|
|
||||||
bridge has vlan filtering disabled.
|
|
||||||
|
|
||||||
This occurs because switchdev recursively applies its changes to
|
|
||||||
all lower devices no matter what.
|
|
||||||
|
|
||||||
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
|
|
||||||
Tested-by: Ido Schimmel <idosch@mellanox.com>
|
|
||||||
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
||||||
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
||||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
||||||
---
|
|
||||||
net/switchdev/switchdev.c | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
--- a/net/switchdev/switchdev.c
|
|
||||||
+++ b/net/switchdev/switchdev.c
|
|
||||||
@@ -476,6 +476,9 @@ static int __switchdev_handle_port_obj_a
|
|
||||||
* necessary to go through this helper.
|
|
||||||
*/
|
|
||||||
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
|
||||||
+ if (netif_is_bridge_master(lower_dev))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
err = __switchdev_handle_port_obj_add(lower_dev, port_obj_info,
|
|
||||||
check_cb, add_cb);
|
|
||||||
if (err && err != -EOPNOTSUPP)
|
|
||||||
@@ -528,6 +531,9 @@ static int __switchdev_handle_port_obj_d
|
|
||||||
* necessary to go through this helper.
|
|
||||||
*/
|
|
||||||
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
|
||||||
+ if (netif_is_bridge_master(lower_dev))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
err = __switchdev_handle_port_obj_del(lower_dev, port_obj_info,
|
|
||||||
check_cb, del_cb);
|
|
||||||
if (err && err != -EOPNOTSUPP)
|
|
||||||
@@ -579,6 +585,9 @@ static int __switchdev_handle_port_attr_
|
|
||||||
* necessary to go through this helper.
|
|
||||||
*/
|
|
||||||
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
|
||||||
+ if (netif_is_bridge_master(lower_dev))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
err = __switchdev_handle_port_attr_set(lower_dev, port_attr_info,
|
|
||||||
check_cb, set_cb);
|
|
||||||
if (err && err != -EOPNOTSUPP)
|
|
@ -41,9 +41,9 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|||||||
struct scsi_vpd *vpd_pg80 = NULL, *vpd_pg83 = NULL;
|
struct scsi_vpd *vpd_pg80 = NULL, *vpd_pg83 = NULL;
|
||||||
+ struct scsi_vpd *vpd_pg0 = NULL, *vpd_pg89 = NULL;
|
+ struct scsi_vpd *vpd_pg0 = NULL, *vpd_pg89 = NULL;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
struct module *mod;
|
||||||
|
|
||||||
sdev = container_of(work, struct scsi_device, ew.work);
|
@@ -469,16 +470,24 @@ static void scsi_device_dev_release_user
|
||||||
@@ -466,16 +467,24 @@ static void scsi_device_dev_release_user
|
|
||||||
sdev->request_queue = NULL;
|
sdev->request_queue = NULL;
|
||||||
|
|
||||||
mutex_lock(&sdev->inquiry_mutex);
|
mutex_lock(&sdev->inquiry_mutex);
|
||||||
@ -68,7 +68,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|||||||
kfree(sdev->inquiry);
|
kfree(sdev->inquiry);
|
||||||
kfree(sdev);
|
kfree(sdev);
|
||||||
|
|
||||||
@@ -874,6 +883,8 @@ static struct bin_attribute dev_attr_vpd
|
@@ -883,6 +892,8 @@ static struct bin_attribute dev_attr_vpd
|
||||||
|
|
||||||
sdev_vpd_pg_attr(pg83);
|
sdev_vpd_pg_attr(pg83);
|
||||||
sdev_vpd_pg_attr(pg80);
|
sdev_vpd_pg_attr(pg80);
|
||||||
@ -77,7 +77,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|||||||
|
|
||||||
static ssize_t show_inquiry(struct file *filep, struct kobject *kobj,
|
static ssize_t show_inquiry(struct file *filep, struct kobject *kobj,
|
||||||
struct bin_attribute *bin_attr,
|
struct bin_attribute *bin_attr,
|
||||||
@@ -1206,12 +1217,18 @@ static umode_t scsi_sdev_bin_attr_is_vis
|
@@ -1215,12 +1226,18 @@ static umode_t scsi_sdev_bin_attr_is_vis
|
||||||
struct scsi_device *sdev = to_scsi_device(dev);
|
struct scsi_device *sdev = to_scsi_device(dev);
|
||||||
|
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|||||||
return S_IRUGO;
|
return S_IRUGO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1254,8 +1271,10 @@ static struct attribute *scsi_sdev_attrs
|
@@ -1263,8 +1280,10 @@ static struct attribute *scsi_sdev_attrs
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct bin_attribute *scsi_sdev_bin_attrs[] = {
|
static struct bin_attribute *scsi_sdev_bin_attrs[] = {
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -111,6 +111,7 @@ config ARM
|
@@ -112,6 +112,7 @@ config ARM
|
||||||
select HAVE_UID16
|
select HAVE_UID16
|
||||||
select HAVE_VIRT_CPU_ACCOUNTING_GEN
|
select HAVE_VIRT_CPU_ACCOUNTING_GEN
|
||||||
select IRQ_FORCED_THREADING
|
select IRQ_FORCED_THREADING
|
||||||
|
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
help
|
help
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -3192,10 +3192,20 @@ static int xmit_one(struct sk_buff *skb,
|
@@ -3198,10 +3198,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||||
if (dev_nit_active(dev))
|
if (dev_nit_active(dev))
|
||||||
dev_queue_xmit_nit(skb, dev);
|
dev_queue_xmit_nit(skb, dev);
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
--- a/net/ipv6/route.c
|
--- a/net/ipv6/route.c
|
||||||
+++ b/net/ipv6/route.c
|
+++ b/net/ipv6/route.c
|
||||||
@@ -93,6 +93,8 @@ static int ip6_pkt_discard(struct sk_bu
|
@@ -94,6 +94,8 @@ static int ip6_pkt_discard(struct sk_bu
|
||||||
static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||||
static int ip6_pkt_prohibit(struct sk_buff *skb);
|
static int ip6_pkt_prohibit(struct sk_buff *skb);
|
||||||
static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
static void ip6_link_failure(struct sk_buff *skb);
|
static void ip6_link_failure(struct sk_buff *skb);
|
||||||
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
|
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
|
||||||
struct sk_buff *skb, u32 mtu,
|
struct sk_buff *skb, u32 mtu,
|
||||||
@@ -326,6 +328,18 @@ static const struct rt6_info ip6_prohibi
|
@@ -327,6 +329,18 @@ static const struct rt6_info ip6_prohibi
|
||||||
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||||
.dst = {
|
.dst = {
|
||||||
.__refcnt = ATOMIC_INIT(1),
|
.__refcnt = ATOMIC_INIT(1),
|
||||||
@@ -1047,6 +1061,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
@@ -1048,6 +1062,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||||
[RTN_BLACKHOLE] = -EINVAL,
|
[RTN_BLACKHOLE] = -EINVAL,
|
||||||
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
||||||
[RTN_PROHIBIT] = -EACCES,
|
[RTN_PROHIBIT] = -EACCES,
|
||||||
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
[RTN_THROW] = -EAGAIN,
|
[RTN_THROW] = -EAGAIN,
|
||||||
[RTN_NAT] = -EINVAL,
|
[RTN_NAT] = -EINVAL,
|
||||||
[RTN_XRESOLVE] = -EINVAL,
|
[RTN_XRESOLVE] = -EINVAL,
|
||||||
@@ -1084,6 +1099,10 @@ static void ip6_rt_init_dst_reject(struc
|
@@ -1085,6 +1100,10 @@ static void ip6_rt_init_dst_reject(struc
|
||||||
rt->dst.output = ip6_pkt_prohibit_out;
|
rt->dst.output = ip6_pkt_prohibit_out;
|
||||||
rt->dst.input = ip6_pkt_prohibit;
|
rt->dst.input = ip6_pkt_prohibit;
|
||||||
break;
|
break;
|
||||||
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
default:
|
||||||
@@ -4426,6 +4445,17 @@ static int ip6_pkt_prohibit_out(struct n
|
@@ -4434,6 +4453,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
/*
|
/*
|
||||||
* Allocate a dst for local (unicast / anycast) address.
|
* Allocate a dst for local (unicast / anycast) address.
|
||||||
*/
|
*/
|
||||||
@@ -4906,7 +4936,8 @@ static int rtm_to_fib6_config(struct sk_
|
@@ -4914,7 +4944,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
if (rtm->rtm_type == RTN_LOCAL)
|
||||||
@@ -6029,6 +6060,8 @@ static int ip6_route_dev_notify(struct n
|
@@ -6037,6 +6068,8 @@ static int ip6_route_dev_notify(struct n
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#endif
|
||||||
@@ -6040,6 +6073,7 @@ static int ip6_route_dev_notify(struct n
|
@@ -6048,6 +6081,7 @@ static int ip6_route_dev_notify(struct n
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -6232,6 +6266,8 @@ static int __net_init ip6_route_net_init
|
@@ -6240,6 +6274,8 @@ static int __net_init ip6_route_net_init
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.fib6_has_custom_rules = false;
|
net->ipv6.fib6_has_custom_rules = false;
|
||||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
@@ -6242,11 +6278,21 @@ static int __net_init ip6_route_net_init
|
@@ -6250,11 +6286,21 @@ static int __net_init ip6_route_net_init
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
@@ -6270,6 +6316,8 @@ out:
|
@@ -6278,6 +6324,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_entry:
|
out_ip6_null_entry:
|
||||||
@@ -6289,6 +6337,7 @@ static void __net_exit ip6_route_net_exi
|
@@ -6297,6 +6345,7 @@ static void __net_exit ip6_route_net_exi
|
||||||
kfree(net->ipv6.ip6_null_entry);
|
kfree(net->ipv6.ip6_null_entry);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||||
@@ -6366,6 +6415,9 @@ void __init ip6_route_init_special_entri
|
@@ -6374,6 +6423,9 @@ void __init ip6_route_init_special_entri
|
||||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||||
|
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
__u16 tc_index; /* traffic control index */
|
__u16 tc_index; /* traffic control index */
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -5489,6 +5489,9 @@ static enum gro_result dev_gro_receive(s
|
@@ -5495,6 +5495,9 @@ static enum gro_result dev_gro_receive(s
|
||||||
int same_flow;
|
int same_flow;
|
||||||
int grow;
|
int grow;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (netif_elide_gro(skb->dev))
|
if (netif_elide_gro(skb->dev))
|
||||||
goto normal;
|
goto normal;
|
||||||
|
|
||||||
@@ -7291,6 +7294,48 @@ static void __netdev_adjacent_dev_unlink
|
@@ -7297,6 +7300,48 @@ static void __netdev_adjacent_dev_unlink
|
||||||
&upper_dev->adj_list.lower);
|
&upper_dev->adj_list.lower);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||||
struct net_device *upper_dev, bool master,
|
struct net_device *upper_dev, bool master,
|
||||||
void *upper_priv, void *upper_info,
|
void *upper_priv, void *upper_info,
|
||||||
@@ -7341,6 +7386,7 @@ static int __netdev_upper_dev_link(struc
|
@@ -7347,6 +7392,7 @@ static int __netdev_upper_dev_link(struc
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
ret = notifier_to_errno(ret);
|
ret = notifier_to_errno(ret);
|
||||||
@@ -7434,6 +7480,7 @@ void netdev_upper_dev_unlink(struct net_
|
@@ -7440,6 +7486,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||||
|
|
||||||
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||||
&changeupper_info.info);
|
&changeupper_info.info);
|
||||||
|
|
||||||
@@ -8164,6 +8211,7 @@ int dev_set_mac_address(struct net_devic
|
@@ -8170,6 +8217,7 @@ int dev_set_mac_address(struct net_devic
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
dev->addr_assign_type = NET_ADDR_SET;
|
dev->addr_assign_type = NET_ADDR_SET;
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
static int netif_rx_internal(struct sk_buff *skb);
|
static int netif_rx_internal(struct sk_buff *skb);
|
||||||
static int call_netdevice_notifiers_info(unsigned long val,
|
static int call_netdevice_notifiers_info(unsigned long val,
|
||||||
@@ -5931,6 +5932,11 @@ void __napi_schedule(struct napi_struct
|
@@ -5937,6 +5938,11 @@ void __napi_schedule(struct napi_struct
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
@@ -5982,6 +5988,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
@@ -5988,6 +5994,11 @@ EXPORT_SYMBOL(napi_schedule_prep);
|
||||||
*/
|
*/
|
||||||
void __napi_schedule_irqoff(struct napi_struct *n)
|
void __napi_schedule_irqoff(struct napi_struct *n)
|
||||||
{
|
{
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||||
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
____napi_schedule(this_cpu_ptr(&softnet_data), n);
|
||||||
else
|
else
|
||||||
@@ -6246,9 +6257,89 @@ static void init_gro_hash(struct napi_st
|
@@ -6252,9 +6263,89 @@ static void init_gro_hash(struct napi_st
|
||||||
napi->gro_bitmask = 0;
|
napi->gro_bitmask = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
INIT_LIST_HEAD(&napi->poll_list);
|
INIT_LIST_HEAD(&napi->poll_list);
|
||||||
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
|
hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
|
||||||
napi->timer.function = napi_watchdog;
|
napi->timer.function = napi_watchdog;
|
||||||
@@ -6265,6 +6356,7 @@ void netif_napi_add(struct net_device *d
|
@@ -6271,6 +6362,7 @@ void netif_napi_add(struct net_device *d
|
||||||
#ifdef CONFIG_NETPOLL
|
#ifdef CONFIG_NETPOLL
|
||||||
napi->poll_owner = -1;
|
napi->poll_owner = -1;
|
||||||
#endif
|
#endif
|
||||||
@ -217,7 +217,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
set_bit(NAPI_STATE_SCHED, &napi->state);
|
set_bit(NAPI_STATE_SCHED, &napi->state);
|
||||||
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
||||||
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
||||||
@@ -6305,6 +6397,7 @@ static void flush_gro_hash(struct napi_s
|
@@ -6311,6 +6403,7 @@ static void flush_gro_hash(struct napi_s
|
||||||
void netif_napi_del(struct napi_struct *napi)
|
void netif_napi_del(struct napi_struct *napi)
|
||||||
{
|
{
|
||||||
might_sleep();
|
might_sleep();
|
||||||
@ -225,7 +225,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (napi_hash_del(napi))
|
if (napi_hash_del(napi))
|
||||||
synchronize_net();
|
synchronize_net();
|
||||||
list_del_init(&napi->dev_list);
|
list_del_init(&napi->dev_list);
|
||||||
@@ -6317,50 +6410,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
@@ -6323,50 +6416,18 @@ EXPORT_SYMBOL(netif_napi_del);
|
||||||
|
|
||||||
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
|
static int napi_poll(struct napi_struct *n, struct list_head *repoll)
|
||||||
{
|
{
|
||||||
@ -280,7 +280,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
/* Some drivers may have called napi_schedule
|
/* Some drivers may have called napi_schedule
|
||||||
* prior to exhausting their budget.
|
* prior to exhausting their budget.
|
||||||
@@ -10340,6 +10401,10 @@ static int __init net_dev_init(void)
|
@@ -10346,6 +10407,10 @@ static int __init net_dev_init(void)
|
||||||
sd->backlog.weight = weight_p;
|
sd->backlog.weight = weight_p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|
||||||
--- a/include/linux/usb/hcd.h
|
--- a/include/linux/usb/hcd.h
|
||||||
+++ b/include/linux/usb/hcd.h
|
+++ b/include/linux/usb/hcd.h
|
||||||
@@ -485,7 +485,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
@@ -483,7 +483,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
||||||
extern void usb_hcd_pci_remove(struct pci_dev *dev);
|
extern void usb_hcd_pci_remove(struct pci_dev *dev);
|
||||||
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
|
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -318,7 +318,7 @@ config ARCH_MULTIPLATFORM
|
@@ -319,7 +319,7 @@ config ARCH_MULTIPLATFORM
|
||||||
depends on MMU
|
depends on MMU
|
||||||
select ARM_HAS_SG_CHAIN
|
select ARM_HAS_SG_CHAIN
|
||||||
select ARM_PATCH_PHYS_VIRT
|
select ARM_PATCH_PHYS_VIRT
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -1827,6 +1827,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
@@ -1828,6 +1828,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||||
The command-line arguments provided by the boot loader will be
|
The command-line arguments provided by the boot loader will be
|
||||||
appended to the the device tree bootargs property.
|
appended to the the device tree bootargs property.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -1840,6 +1840,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
|
@@ -1841,6 +1841,14 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGL
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/Kconfig
|
--- a/drivers/net/ethernet/Kconfig
|
||||||
+++ b/drivers/net/ethernet/Kconfig
|
+++ b/drivers/net/ethernet/Kconfig
|
||||||
@@ -108,7 +108,13 @@ config LANTIQ_ETOP
|
@@ -109,7 +109,13 @@ config LANTIQ_ETOP
|
||||||
tristate "Lantiq SoC ETOP driver"
|
tristate "Lantiq SoC ETOP driver"
|
||||||
depends on SOC_TYPE_XWAY
|
depends on SOC_TYPE_XWAY
|
||||||
---help---
|
---help---
|
||||||
|
@ -335,7 +335,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
int is_setup
|
int is_setup
|
||||||
--- a/include/linux/usb/hcd.h
|
--- a/include/linux/usb/hcd.h
|
||||||
+++ b/include/linux/usb/hcd.h
|
+++ b/include/linux/usb/hcd.h
|
||||||
@@ -411,7 +411,10 @@ struct hc_driver {
|
@@ -409,7 +409,10 @@ struct hc_driver {
|
||||||
int (*find_raw_port_number)(struct usb_hcd *, int);
|
int (*find_raw_port_number)(struct usb_hcd *, int);
|
||||||
/* Call for power on/off the port if necessary */
|
/* Call for power on/off the port if necessary */
|
||||||
int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
|
int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
|
||||||
@ -347,7 +347,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
|
static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
|
||||||
@@ -476,6 +479,14 @@ int usb_hcd_setup_local_mem(struct usb_h
|
@@ -474,6 +477,14 @@ int usb_hcd_setup_local_mem(struct usb_h
|
||||||
|
|
||||||
struct platform_device;
|
struct platform_device;
|
||||||
extern void usb_hcd_platform_shutdown(struct platform_device *dev);
|
extern void usb_hcd_platform_shutdown(struct platform_device *dev);
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
|
retval = xhci_enter_test_mode(xhci, test_mode, wIndex,
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -3624,6 +3624,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
@@ -3630,6 +3630,129 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
* bursts that are required to move all packets in this TD. Only SuperSpeed
|
* bursts that are required to move all packets in this TD. Only SuperSpeed
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -5385,6 +5385,7 @@ static const struct hc_driver xhci_hc_dr
|
@@ -5389,6 +5389,7 @@ static const struct hc_driver xhci_hc_dr
|
||||||
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
|
.disable_usb3_lpm_timeout = xhci_disable_usb3_lpm_timeout,
|
||||||
.find_raw_port_number = xhci_find_raw_port_number,
|
.find_raw_port_number = xhci_find_raw_port_number,
|
||||||
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
|
.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete,
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci-ring.c
|
--- a/drivers/usb/host/xhci-ring.c
|
||||||
+++ b/drivers/usb/host/xhci-ring.c
|
+++ b/drivers/usb/host/xhci-ring.c
|
||||||
@@ -2091,12 +2091,9 @@ static int process_ctrl_td(struct xhci_h
|
@@ -2097,12 +2097,9 @@ static int process_ctrl_td(struct xhci_h
|
||||||
|
|
||||||
switch (trb_comp_code) {
|
switch (trb_comp_code) {
|
||||||
case COMP_SUCCESS:
|
case COMP_SUCCESS:
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com>
|
|||||||
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -5406,6 +5406,8 @@ void xhci_init_driver(struct hc_driver *
|
@@ -5410,6 +5410,8 @@ void xhci_init_driver(struct hc_driver *
|
||||||
drv->check_bandwidth = over->check_bandwidth;
|
drv->check_bandwidth = over->check_bandwidth;
|
||||||
if (over->reset_bandwidth)
|
if (over->reset_bandwidth)
|
||||||
drv->reset_bandwidth = over->reset_bandwidth;
|
drv->reset_bandwidth = over->reset_bandwidth;
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/gpio/gpio-pca953x.c
|
--- a/drivers/gpio/gpio-pca953x.c
|
||||||
+++ b/drivers/gpio/gpio-pca953x.c
|
+++ b/drivers/gpio/gpio-pca953x.c
|
||||||
@@ -879,10 +879,12 @@ static int pca953x_irq_setup(struct pca9
|
@@ -881,10 +881,12 @@ static int pca953x_irq_setup(struct pca9
|
||||||
for (i = 0; i < NBANK(chip); i++)
|
for (i = 0; i < NBANK(chip); i++)
|
||||||
chip->irq_stat[i] &= reg_direction[i];
|
chip->irq_stat[i] &= reg_direction[i];
|
||||||
mutex_init(&chip->irq_lock);
|
mutex_init(&chip->irq_lock);
|
||||||
|
@ -28,7 +28,7 @@ Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -1827,6 +1827,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
@@ -1828,6 +1828,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||||
The command-line arguments provided by the boot loader will be
|
The command-line arguments provided by the boot loader will be
|
||||||
appended to the the device tree bootargs property.
|
appended to the the device tree bootargs property.
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
|
|||||||
|
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -1827,6 +1827,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
@@ -1828,6 +1828,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
|
||||||
The command-line arguments provided by the boot loader will be
|
The command-line arguments provided by the boot loader will be
|
||||||
appended to the the device tree bootargs property.
|
appended to the the device tree bootargs property.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/ethernet/Kconfig
|
--- a/drivers/net/ethernet/Kconfig
|
||||||
+++ b/drivers/net/ethernet/Kconfig
|
+++ b/drivers/net/ethernet/Kconfig
|
||||||
@@ -159,6 +159,7 @@ source "drivers/net/ethernet/pasemi/Kcon
|
@@ -160,6 +160,7 @@ source "drivers/net/ethernet/pasemi/Kcon
|
||||||
source "drivers/net/ethernet/pensando/Kconfig"
|
source "drivers/net/ethernet/pensando/Kconfig"
|
||||||
source "drivers/net/ethernet/qlogic/Kconfig"
|
source "drivers/net/ethernet/qlogic/Kconfig"
|
||||||
source "drivers/net/ethernet/qualcomm/Kconfig"
|
source "drivers/net/ethernet/qualcomm/Kconfig"
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
|
|
||||||
--- a/drivers/net/phy/phy.c
|
--- a/drivers/net/phy/phy.c
|
||||||
+++ b/drivers/net/phy/phy.c
|
+++ b/drivers/net/phy/phy.c
|
||||||
@@ -547,7 +547,10 @@ static int phy_check_link_status(struct
|
@@ -549,7 +549,10 @@ static int phy_check_link_status(struct
|
||||||
phy_link_up(phydev);
|
phy_link_up(phydev);
|
||||||
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
||||||
phydev->state = PHY_NOLINK;
|
phydev->state = PHY_NOLINK;
|
||||||
@ -23,7 +23,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -927,7 +930,10 @@ void phy_state_machine(struct work_struc
|
@@ -947,7 +950,10 @@ void phy_state_machine(struct work_struc
|
||||||
case PHY_HALTED:
|
case PHY_HALTED:
|
||||||
if (phydev->link) {
|
if (phydev->link) {
|
||||||
phydev->link = 0;
|
phydev->link = 0;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/ethernet/Kconfig
|
--- a/drivers/net/ethernet/Kconfig
|
||||||
+++ b/drivers/net/ethernet/Kconfig
|
+++ b/drivers/net/ethernet/Kconfig
|
||||||
@@ -163,6 +163,13 @@ source "drivers/net/ethernet/rdc/Kconfig
|
@@ -164,6 +164,13 @@ source "drivers/net/ethernet/rdc/Kconfig
|
||||||
source "drivers/net/ethernet/realtek/Kconfig"
|
source "drivers/net/ethernet/realtek/Kconfig"
|
||||||
source "drivers/net/ethernet/renesas/Kconfig"
|
source "drivers/net/ethernet/renesas/Kconfig"
|
||||||
source "drivers/net/ethernet/rocker/Kconfig"
|
source "drivers/net/ethernet/rocker/Kconfig"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user