mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 6.1 to 6.1.119 (#13185)
This commit is contained in:
parent
fd9b9cc78b
commit
e66ffaf37c
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-6.1 = .118
|
LINUX_VERSION-6.1 = .119
|
||||||
LINUX_KERNEL_HASH-6.1.118 = 010784bd7161c32c4cd68a423d4dcb14e4587677d238b2825a31fe012869224c
|
LINUX_KERNEL_HASH-6.1.119 = aecdaf39d0a844a81ce4c67d9daff8979e938bb690df4f679fbbb494fe423278
|
||||||
|
@ -361,7 +361,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
|
|||||||
static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
|
static void mem_cgroup_css_free(struct cgroup_subsys_state *css)
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -7956,6 +7956,7 @@ static void __init free_area_init_node(i
|
@@ -7988,6 +7988,7 @@ static void __init free_area_init_node(i
|
||||||
pgdat_set_deferred_range(pgdat);
|
pgdat_set_deferred_range(pgdat);
|
||||||
|
|
||||||
free_area_init_core(pgdat);
|
free_area_init_core(pgdat);
|
||||||
|
@ -202,7 +202,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
.mac_link_up = am65_cpsw_nuss_mac_link_up,
|
.mac_link_up = am65_cpsw_nuss_mac_link_up,
|
||||||
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||||
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||||
@@ -1741,7 +1741,6 @@ static void axienet_mac_link_up(struct p
|
@@ -1750,7 +1750,6 @@ static void axienet_mac_link_up(struct p
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct phylink_mac_ops axienet_phylink_ops = {
|
static const struct phylink_mac_ops axienet_phylink_ops = {
|
||||||
|
@ -53,7 +53,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
supported = mac_dev->phylink_config.supported_interfaces;
|
supported = mac_dev->phylink_config.supported_interfaces;
|
||||||
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||||
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
|
||||||
@@ -1636,7 +1636,7 @@ static void axienet_pcs_an_restart(struc
|
@@ -1645,7 +1645,7 @@ static void axienet_pcs_an_restart(struc
|
||||||
phylink_mii_c22_pcs_an_restart(pcs_phy);
|
phylink_mii_c22_pcs_an_restart(pcs_phy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
phy_interface_t interface,
|
phy_interface_t interface,
|
||||||
const unsigned long *advertising,
|
const unsigned long *advertising,
|
||||||
bool permit_pause_to_mac)
|
bool permit_pause_to_mac)
|
||||||
@@ -1658,7 +1658,8 @@ static int axienet_pcs_config(struct phy
|
@@ -1667,7 +1667,8 @@ static int axienet_pcs_config(struct phy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
netdev_warn(ndev, "Failed to configure PCS: %d\n", ret);
|
netdev_warn(ndev, "Failed to configure PCS: %d\n", ret);
|
||||||
|
|
||||||
@@ -2138,6 +2139,7 @@ static int axienet_probe(struct platform
|
@@ -2147,6 +2148,7 @@ static int axienet_probe(struct platform
|
||||||
}
|
}
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
lp->pcs.ops = &axienet_pcs_ops;
|
lp->pcs.ops = &axienet_pcs_ops;
|
||||||
|
@ -85,7 +85,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|||||||
/**
|
/**
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -6533,7 +6533,7 @@ static int __napi_poll(struct napi_struc
|
@@ -6541,7 +6541,7 @@ static int __napi_poll(struct napi_struc
|
||||||
* accidentally calling ->poll() when NAPI is not scheduled.
|
* accidentally calling ->poll() when NAPI is not scheduled.
|
||||||
*/
|
*/
|
||||||
work = 0;
|
work = 0;
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|||||||
|
|
||||||
__netif_tx_unlock_bh(netdev_get_tx_queue(priv->dev, queue));
|
__netif_tx_unlock_bh(netdev_get_tx_queue(priv->dev, queue));
|
||||||
|
|
||||||
@@ -5490,12 +5494,13 @@ static int stmmac_napi_poll_tx(struct na
|
@@ -5503,12 +5507,13 @@ static int stmmac_napi_poll_tx(struct na
|
||||||
struct stmmac_channel *ch =
|
struct stmmac_channel *ch =
|
||||||
container_of(napi, struct stmmac_channel, tx_napi);
|
container_of(napi, struct stmmac_channel, tx_napi);
|
||||||
struct stmmac_priv *priv = ch->priv_data;
|
struct stmmac_priv *priv = ch->priv_data;
|
||||||
@ -57,7 +57,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|||||||
work_done = min(work_done, budget);
|
work_done = min(work_done, budget);
|
||||||
|
|
||||||
if (work_done < budget && napi_complete_done(napi, work_done)) {
|
if (work_done < budget && napi_complete_done(napi, work_done)) {
|
||||||
@@ -5506,6 +5511,10 @@ static int stmmac_napi_poll_tx(struct na
|
@@ -5519,6 +5524,10 @@ static int stmmac_napi_poll_tx(struct na
|
||||||
spin_unlock_irqrestore(&ch->lock, flags);
|
spin_unlock_irqrestore(&ch->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|||||||
return work_done;
|
return work_done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5514,12 +5523,13 @@ static int stmmac_napi_poll_rxtx(struct
|
@@ -5527,12 +5536,13 @@ static int stmmac_napi_poll_rxtx(struct
|
||||||
struct stmmac_channel *ch =
|
struct stmmac_channel *ch =
|
||||||
container_of(napi, struct stmmac_channel, rxtx_napi);
|
container_of(napi, struct stmmac_channel, rxtx_napi);
|
||||||
struct stmmac_priv *priv = ch->priv_data;
|
struct stmmac_priv *priv = ch->priv_data;
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|||||||
tx_done = min(tx_done, budget);
|
tx_done = min(tx_done, budget);
|
||||||
|
|
||||||
rx_done = stmmac_rx_zc(priv, budget, chan);
|
rx_done = stmmac_rx_zc(priv, budget, chan);
|
||||||
@@ -5544,6 +5554,10 @@ static int stmmac_napi_poll_rxtx(struct
|
@@ -5557,6 +5567,10 @@ static int stmmac_napi_poll_rxtx(struct
|
||||||
spin_unlock_irqrestore(&ch->lock, flags);
|
spin_unlock_irqrestore(&ch->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
--- a/drivers/bus/mhi/host/pci_generic.c
|
--- a/drivers/bus/mhi/host/pci_generic.c
|
||||||
+++ b/drivers/bus/mhi/host/pci_generic.c
|
+++ b/drivers/bus/mhi/host/pci_generic.c
|
||||||
@@ -542,6 +542,8 @@ static const struct mhi_pci_dev_info mhi
|
@@ -551,6 +551,8 @@ static const struct mhi_pci_dev_info mhi
|
||||||
static const struct pci_device_id mhi_pci_id_table[] = {
|
static const struct pci_device_id mhi_pci_id_table[] = {
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0304),
|
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0304),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx24_info },
|
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx24_info },
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
--- a/drivers/bus/mhi/host/pci_generic.c
|
--- a/drivers/bus/mhi/host/pci_generic.c
|
||||||
+++ b/drivers/bus/mhi/host/pci_generic.c
|
+++ b/drivers/bus/mhi/host/pci_generic.c
|
||||||
@@ -599,6 +599,9 @@ static const struct pci_device_id mhi_pc
|
@@ -608,6 +608,9 @@ static const struct pci_device_id mhi_pc
|
||||||
/* MV32-WB (Cinterion) */
|
/* MV32-WB (Cinterion) */
|
||||||
{ PCI_DEVICE(0x1269, 0x00bb),
|
{ PCI_DEVICE(0x1269, 0x00bb),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_mv32_info },
|
.driver_data = (kernel_ulong_t) &mhi_mv32_info },
|
||||||
|
@ -28,8 +28,8 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
/**
|
/**
|
||||||
* struct mhi_pci_dev_info - MHI PCI device specific information
|
* struct mhi_pci_dev_info - MHI PCI device specific information
|
||||||
* @config: MHI controller configuration
|
* @config: MHI controller configuration
|
||||||
@@ -560,11 +564,11 @@ static const struct pci_device_id mhi_pc
|
@@ -569,11 +573,11 @@ static const struct pci_device_id mhi_pc
|
||||||
.driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
|
.driver_data = (kernel_ulong_t) &mhi_telit_fe990a_info },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
|
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
|
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
|
||||||
- { PCI_DEVICE(0x1eac, 0x1001), /* EM120R-GL (sdx24) */
|
- { PCI_DEVICE(0x1eac, 0x1001), /* EM120R-GL (sdx24) */
|
||||||
@ -43,7 +43,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
||||||
/* T99W175 (sdx55), Both for eSIM and Non-eSIM */
|
/* T99W175 (sdx55), Both for eSIM and Non-eSIM */
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0ab),
|
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0ab),
|
||||||
@@ -588,16 +592,16 @@ static const struct pci_device_id mhi_pc
|
@@ -597,16 +601,16 @@ static const struct pci_device_id mhi_pc
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9),
|
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info },
|
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info },
|
||||||
/* MV31-W (Cinterion) */
|
/* MV31-W (Cinterion) */
|
||||||
|
@ -36,7 +36,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/mhi.h>
|
#include <linux/mhi.h>
|
||||||
@@ -904,11 +903,9 @@ static int mhi_pci_probe(struct pci_dev
|
@@ -913,11 +912,9 @@ static int mhi_pci_probe(struct pci_dev
|
||||||
mhi_pdev->pci_state = pci_store_saved_state(pdev);
|
mhi_pdev->pci_state = pci_store_saved_state(pdev);
|
||||||
pci_load_saved_state(pdev, NULL);
|
pci_load_saved_state(pdev, NULL);
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
/* MHI bus does not power up the controller by default */
|
/* MHI bus does not power up the controller by default */
|
||||||
err = mhi_prepare_for_power_up(mhi_cntrl);
|
err = mhi_prepare_for_power_up(mhi_cntrl);
|
||||||
@@ -942,8 +939,6 @@ err_unprepare:
|
@@ -951,8 +948,6 @@ err_unprepare:
|
||||||
mhi_unprepare_after_power_down(mhi_cntrl);
|
mhi_unprepare_after_power_down(mhi_cntrl);
|
||||||
err_unregister:
|
err_unregister:
|
||||||
mhi_unregister_controller(mhi_cntrl);
|
mhi_unregister_controller(mhi_cntrl);
|
||||||
@ -58,7 +58,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -966,7 +961,6 @@ static void mhi_pci_remove(struct pci_de
|
@@ -975,7 +970,6 @@ static void mhi_pci_remove(struct pci_de
|
||||||
pm_runtime_get_noresume(&pdev->dev);
|
pm_runtime_get_noresume(&pdev->dev);
|
||||||
|
|
||||||
mhi_unregister_controller(mhi_cntrl);
|
mhi_unregister_controller(mhi_cntrl);
|
||||||
|
@ -31,7 +31,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
|
static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
|
||||||
.name = "foxconn-sdx55",
|
.name = "foxconn-sdx55",
|
||||||
.fw = "qcom/sdx55m/sbl1.mbn",
|
.fw = "qcom/sdx55m/sbl1.mbn",
|
||||||
@@ -590,6 +599,15 @@ static const struct pci_device_id mhi_pc
|
@@ -599,6 +608,15 @@ static const struct pci_device_id mhi_pc
|
||||||
/* T99W373 (sdx62) */
|
/* T99W373 (sdx62) */
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9),
|
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0d9),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info },
|
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx65_info },
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
--- a/drivers/bus/mhi/host/pci_generic.c
|
--- a/drivers/bus/mhi/host/pci_generic.c
|
||||||
+++ b/drivers/bus/mhi/host/pci_generic.c
|
+++ b/drivers/bus/mhi/host/pci_generic.c
|
||||||
@@ -594,6 +594,8 @@ static const struct pci_device_id mhi_pc
|
@@ -603,6 +603,8 @@ static const struct pci_device_id mhi_pc
|
||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */
|
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */
|
||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = {
|
static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = {
|
||||||
MHI_CHANNEL_CONFIG_UL(0, "LOOPBACK", 32, 0),
|
MHI_CHANNEL_CONFIG_UL(0, "LOOPBACK", 32, 0),
|
||||||
MHI_CHANNEL_CONFIG_DL(1, "LOOPBACK", 32, 0),
|
MHI_CHANNEL_CONFIG_DL(1, "LOOPBACK", 32, 0),
|
||||||
@@ -594,6 +604,9 @@ static const struct pci_device_id mhi_pc
|
@@ -603,6 +613,9 @@ static const struct pci_device_id mhi_pc
|
||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */
|
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */
|
||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
--- a/drivers/bus/mhi/host/pci_generic.c
|
--- a/drivers/bus/mhi/host/pci_generic.c
|
||||||
+++ b/drivers/bus/mhi/host/pci_generic.c
|
+++ b/drivers/bus/mhi/host/pci_generic.c
|
||||||
@@ -641,6 +641,12 @@ static const struct pci_device_id mhi_pc
|
@@ -650,6 +650,12 @@ static const struct pci_device_id mhi_pc
|
||||||
/* T99W510 (sdx24), variant 3 */
|
/* T99W510 (sdx24), variant 3 */
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f2),
|
{ PCI_DEVICE(PCI_VENDOR_ID_FOXCONN, 0xe0f2),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info },
|
.driver_data = (kernel_ulong_t) &mhi_foxconn_sdx24_info },
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
|
|
||||||
--- a/drivers/bus/mhi/host/pci_generic.c
|
--- a/drivers/bus/mhi/host/pci_generic.c
|
||||||
+++ b/drivers/bus/mhi/host/pci_generic.c
|
+++ b/drivers/bus/mhi/host/pci_generic.c
|
||||||
@@ -607,6 +607,9 @@ static const struct pci_device_id mhi_pc
|
@@ -616,6 +616,9 @@ static const struct pci_device_id mhi_pc
|
||||||
/* RM520N-GL (sdx6x), eSIM */
|
/* RM520N-GL (sdx6x), eSIM */
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1004),
|
{ PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1004),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_quectel_rm5xx_info },
|
.driver_data = (kernel_ulong_t) &mhi_quectel_rm5xx_info },
|
||||||
|
@ -51,8 +51,8 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
|||||||
static const struct mhi_pci_dev_info mhi_qcom_sdx65_info = {
|
static const struct mhi_pci_dev_info mhi_qcom_sdx65_info = {
|
||||||
.name = "qcom-sdx65m",
|
.name = "qcom-sdx65m",
|
||||||
.fw = "qcom/sdx65m/xbl.elf",
|
.fw = "qcom/sdx65m/xbl.elf",
|
||||||
@@ -600,6 +620,8 @@ static const struct pci_device_id mhi_pc
|
@@ -609,6 +629,8 @@ static const struct pci_device_id mhi_pc
|
||||||
.driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
|
.driver_data = (kernel_ulong_t) &mhi_telit_fe990a_info },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
|
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
|
||||||
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
|
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
|
||||||
+ { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
|
+ { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
|
||||||
|
@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
|||||||
|
|
||||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||||
/* These Quectel products use Quectel's vendor ID */
|
/* These Quectel products use Quectel's vendor ID */
|
||||||
@@ -1158,6 +1163,11 @@ static const struct usb_device_id option
|
@@ -1160,6 +1165,11 @@ static const struct usb_device_id option
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
||||||
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
||||||
@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
|||||||
/* Quectel products using Qualcomm vendor ID */
|
/* Quectel products using Qualcomm vendor ID */
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
||||||
@@ -1199,6 +1209,11 @@ static const struct usb_device_id option
|
@@ -1201,6 +1211,11 @@ static const struct usb_device_id option
|
||||||
.driver_info = ZLP },
|
.driver_info = ZLP },
|
||||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||||
.driver_info = RSVD(4) },
|
.driver_info = RSVD(4) },
|
||||||
|
@ -385,7 +385,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/net/ipv4/proc.c
|
--- a/net/ipv4/proc.c
|
||||||
+++ b/net/ipv4/proc.c
|
+++ b/net/ipv4/proc.c
|
||||||
@@ -553,5 +553,8 @@ static __net_initdata struct pernet_oper
|
@@ -555,5 +555,8 @@ static __net_initdata struct pernet_oper
|
||||||
|
|
||||||
int __init ip_misc_proc_init(void)
|
int __init ip_misc_proc_init(void)
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
|||||||
|
|
||||||
--- a/drivers/base/core.c
|
--- a/drivers/base/core.c
|
||||||
+++ b/drivers/base/core.c
|
+++ b/drivers/base/core.c
|
||||||
@@ -1718,7 +1718,7 @@ static void device_links_purge(struct de
|
@@ -1717,7 +1717,7 @@ static void device_links_purge(struct de
|
||||||
#define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \
|
#define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \
|
||||||
DL_FLAG_PM_RUNTIME)
|
DL_FLAG_PM_RUNTIME)
|
||||||
|
|
||||||
|
@ -299,7 +299,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
|||||||
void nf_conntrack_ecache_work(struct net *net, enum nf_ct_ecache_state state)
|
void nf_conntrack_ecache_work(struct net *net, enum nf_ct_ecache_state state)
|
||||||
--- a/net/netfilter/nf_conntrack_netlink.c
|
--- a/net/netfilter/nf_conntrack_netlink.c
|
||||||
+++ b/net/netfilter/nf_conntrack_netlink.c
|
+++ b/net/netfilter/nf_conntrack_netlink.c
|
||||||
@@ -723,12 +723,19 @@ static size_t ctnetlink_nlmsg_size(const
|
@@ -720,12 +720,19 @@ static size_t ctnetlink_nlmsg_size(const
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -319,7 +319,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
|||||||
struct nf_conn *ct = item->ct;
|
struct nf_conn *ct = item->ct;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
@@ -3755,11 +3762,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
@@ -3752,11 +3759,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||||
@ -337,7 +337,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
|||||||
|
|
||||||
static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = {
|
static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = {
|
||||||
[IPCTNL_MSG_CT_NEW] = {
|
[IPCTNL_MSG_CT_NEW] = {
|
||||||
@@ -3858,8 +3871,12 @@ static int __net_init ctnetlink_net_init
|
@@ -3855,8 +3868,12 @@ static int __net_init ctnetlink_net_init
|
||||||
static void ctnetlink_net_pre_exit(struct net *net)
|
static void ctnetlink_net_pre_exit(struct net *net)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||||
|
@ -111,7 +111,7 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
||||||
if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
||||||
@@ -5266,6 +5274,11 @@ void netdev_rx_handler_unregister(struct
|
@@ -5274,6 +5282,11 @@ void netdev_rx_handler_unregister(struct
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
|
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
|
||||||
|
|
||||||
@ -123,7 +123,7 @@
|
|||||||
/*
|
/*
|
||||||
* Limit the use of PFMEMALLOC reserves to those protocols that implement
|
* Limit the use of PFMEMALLOC reserves to those protocols that implement
|
||||||
* the special handling of PFMEMALLOC skbs.
|
* the special handling of PFMEMALLOC skbs.
|
||||||
@@ -5314,6 +5327,10 @@ static int __netif_receive_skb_core(stru
|
@@ -5322,6 +5335,10 @@ static int __netif_receive_skb_core(stru
|
||||||
int ret = NET_RX_DROP;
|
int ret = NET_RX_DROP;
|
||||||
__be16 type;
|
__be16 type;
|
||||||
|
|
||||||
@ -134,7 +134,7 @@
|
|||||||
net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb);
|
net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb);
|
||||||
|
|
||||||
trace_netif_receive_skb(skb);
|
trace_netif_receive_skb(skb);
|
||||||
@@ -5351,6 +5368,15 @@ another_round:
|
@@ -5359,6 +5376,15 @@ another_round:
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
|||||||
|
|
||||||
--- a/mm/page_alloc.c
|
--- a/mm/page_alloc.c
|
||||||
+++ b/mm/page_alloc.c
|
+++ b/mm/page_alloc.c
|
||||||
@@ -7910,7 +7910,7 @@ static void __init alloc_node_mem_map(st
|
@@ -7942,7 +7942,7 @@ static void __init alloc_node_mem_map(st
|
||||||
if (pgdat == NODE_DATA(0)) {
|
if (pgdat == NODE_DATA(0)) {
|
||||||
mem_map = NODE_DATA(0)->node_mem_map;
|
mem_map = NODE_DATA(0)->node_mem_map;
|
||||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
|||||||
|
|
||||||
--- a/arch/powerpc/Kconfig
|
--- a/arch/powerpc/Kconfig
|
||||||
+++ b/arch/powerpc/Kconfig
|
+++ b/arch/powerpc/Kconfig
|
||||||
@@ -229,7 +229,7 @@ config PPC
|
@@ -235,7 +235,7 @@ config PPC
|
||||||
select HAVE_KERNEL_GZIP
|
select HAVE_KERNEL_GZIP
|
||||||
select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE
|
select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE
|
||||||
select HAVE_KERNEL_LZO if DEFAULT_UIMAGE
|
select HAVE_KERNEL_LZO if DEFAULT_UIMAGE
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/net/netfilter/nf_tables_api.c
|
--- a/net/netfilter/nf_tables_api.c
|
||||||
+++ b/net/netfilter/nf_tables_api.c
|
+++ b/net/netfilter/nf_tables_api.c
|
||||||
@@ -8017,7 +8017,7 @@ static int nft_register_flowtable_net_ho
|
@@ -8023,7 +8023,7 @@ static int nft_register_flowtable_net_ho
|
||||||
err = flowtable->data.type->setup(&flowtable->data,
|
err = flowtable->data.type->setup(&flowtable->data,
|
||||||
hook->ops.dev,
|
hook->ops.dev,
|
||||||
FLOW_BLOCK_BIND);
|
FLOW_BLOCK_BIND);
|
||||||
|
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
struct rtnl_link {
|
struct rtnl_link {
|
||||||
rtnl_doit_func doit;
|
rtnl_doit_func doit;
|
||||||
@@ -4840,7 +4840,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
|
@@ -4869,7 +4869,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
|
||||||
brport_nla_put_flag(skb, flags, mask,
|
brport_nla_put_flag(skb, flags, mask,
|
||||||
IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
|
IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
|
||||||
brport_nla_put_flag(skb, flags, mask,
|
brport_nla_put_flag(skb, flags, mask,
|
||||||
|
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -4625,7 +4625,7 @@ static int napi_schedule_rps(struct soft
|
@@ -4633,7 +4633,7 @@ static int napi_schedule_rps(struct soft
|
||||||
struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
|
struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
|
||||||
|
|
||||||
#ifdef CONFIG_RPS
|
#ifdef CONFIG_RPS
|
||||||
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
sd->rps_ipi_next = mysd->rps_ipi_list;
|
sd->rps_ipi_next = mysd->rps_ipi_list;
|
||||||
mysd->rps_ipi_list = sd;
|
mysd->rps_ipi_list = sd;
|
||||||
|
|
||||||
@@ -5806,6 +5806,8 @@ static DEFINE_PER_CPU(struct work_struct
|
@@ -5814,6 +5814,8 @@ static DEFINE_PER_CPU(struct work_struct
|
||||||
/* Network device is going away, flush any packets still pending */
|
/* Network device is going away, flush any packets still pending */
|
||||||
static void flush_backlog(struct work_struct *work)
|
static void flush_backlog(struct work_struct *work)
|
||||||
{
|
{
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
struct sk_buff *skb, *tmp;
|
struct sk_buff *skb, *tmp;
|
||||||
struct softnet_data *sd;
|
struct softnet_data *sd;
|
||||||
|
|
||||||
@@ -5820,8 +5822,17 @@ static void flush_backlog(struct work_st
|
@@ -5828,8 +5830,17 @@ static void flush_backlog(struct work_st
|
||||||
input_queue_head_incr(sd);
|
input_queue_head_incr(sd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
|
skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
|
||||||
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
|
if (skb->dev->reg_state == NETREG_UNREGISTERING) {
|
||||||
__skb_unlink(skb, &sd->process_queue);
|
__skb_unlink(skb, &sd->process_queue);
|
||||||
@@ -5829,7 +5840,16 @@ static void flush_backlog(struct work_st
|
@@ -5837,7 +5848,16 @@ static void flush_backlog(struct work_st
|
||||||
input_queue_head_incr(sd);
|
input_queue_head_incr(sd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool flush_required(int cpu)
|
static bool flush_required(int cpu)
|
||||||
@@ -5961,6 +5981,7 @@ static int process_backlog(struct napi_s
|
@@ -5969,6 +5989,7 @@ static int process_backlog(struct napi_s
|
||||||
}
|
}
|
||||||
|
|
||||||
rps_lock_irq_disable(sd);
|
rps_lock_irq_disable(sd);
|
||||||
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (skb_queue_empty(&sd->input_pkt_queue)) {
|
if (skb_queue_empty(&sd->input_pkt_queue)) {
|
||||||
/*
|
/*
|
||||||
* Inline a custom version of __napi_complete().
|
* Inline a custom version of __napi_complete().
|
||||||
@@ -5970,7 +5991,8 @@ static int process_backlog(struct napi_s
|
@@ -5978,7 +5999,8 @@ static int process_backlog(struct napi_s
|
||||||
* We can use a plain write instead of clear_bit(),
|
* We can use a plain write instead of clear_bit(),
|
||||||
* and we dont need an smp_mb() memory barrier.
|
* and we dont need an smp_mb() memory barrier.
|
||||||
*/
|
*/
|
||||||
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
again = false;
|
again = false;
|
||||||
} else {
|
} else {
|
||||||
skb_queue_splice_tail_init(&sd->input_pkt_queue,
|
skb_queue_splice_tail_init(&sd->input_pkt_queue,
|
||||||
@@ -6386,6 +6408,55 @@ int dev_set_threaded(struct net_device *
|
@@ -6394,6 +6416,55 @@ int dev_set_threaded(struct net_device *
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(dev_set_threaded);
|
EXPORT_SYMBOL(dev_set_threaded);
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
|
void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
|
||||||
int (*poll)(struct napi_struct *, int), int weight)
|
int (*poll)(struct napi_struct *, int), int weight)
|
||||||
{
|
{
|
||||||
@@ -11127,6 +11198,9 @@ static int dev_cpu_dead(unsigned int old
|
@@ -11135,6 +11206,9 @@ static int dev_cpu_dead(unsigned int old
|
||||||
raise_softirq_irqoff(NET_TX_SOFTIRQ);
|
raise_softirq_irqoff(NET_TX_SOFTIRQ);
|
||||||
local_irq_enable();
|
local_irq_enable();
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#ifdef CONFIG_RPS
|
#ifdef CONFIG_RPS
|
||||||
remsd = oldsd->rps_ipi_list;
|
remsd = oldsd->rps_ipi_list;
|
||||||
oldsd->rps_ipi_list = NULL;
|
oldsd->rps_ipi_list = NULL;
|
||||||
@@ -11439,6 +11513,7 @@ static int __init net_dev_init(void)
|
@@ -11447,6 +11521,7 @@ static int __init net_dev_init(void)
|
||||||
INIT_CSD(&sd->defer_csd, trigger_rx_softirq, sd);
|
INIT_CSD(&sd->defer_csd, trigger_rx_softirq, sd);
|
||||||
spin_lock_init(&sd->defer_lock);
|
spin_lock_init(&sd->defer_lock);
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -1209,6 +1209,46 @@ static void b53_force_port_config(struct
|
@@ -1213,6 +1213,46 @@ static void b53_force_port_config(struct
|
||||||
b53_write8(dev, B53_CTRL_PAGE, off, reg);
|
b53_write8(dev, B53_CTRL_PAGE, off, reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|||||||
static void b53_adjust_link(struct dsa_switch *ds, int port,
|
static void b53_adjust_link(struct dsa_switch *ds, int port,
|
||||||
struct phy_device *phydev)
|
struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
@@ -1235,6 +1275,9 @@ static void b53_adjust_link(struct dsa_s
|
@@ -1239,6 +1279,9 @@ static void b53_adjust_link(struct dsa_s
|
||||||
tx_pause, rx_pause);
|
tx_pause, rx_pause);
|
||||||
b53_force_link(dev, port, phydev->link);
|
b53_force_link(dev, port, phydev->link);
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|||||||
if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
|
if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
|
||||||
if (port == dev->imp_port)
|
if (port == dev->imp_port)
|
||||||
off = B53_RGMII_CTRL_IMP;
|
off = B53_RGMII_CTRL_IMP;
|
||||||
@@ -1402,6 +1445,9 @@ void b53_phylink_mac_link_up(struct dsa_
|
@@ -1406,6 +1449,9 @@ void b53_phylink_mac_link_up(struct dsa_
|
||||||
{
|
{
|
||||||
struct b53_device *dev = ds->priv;
|
struct b53_device *dev = ds->priv;
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2469,6 +2469,19 @@ static const struct b53_chip_data b53_sw
|
@@ -2478,6 +2478,19 @@ static const struct b53_chip_data b53_sw
|
||||||
.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
|
.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -97,7 +97,7 @@ Reviewed-by: Simon Horman <simon.horman@corigine.com>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -1240,8 +1240,12 @@ static void b53_adjust_63xx_rgmii(struct
|
@@ -1244,8 +1244,12 @@ static void b53_adjust_63xx_rgmii(struct
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/b53/b53_common.c
|
--- a/drivers/net/dsa/b53/b53_common.c
|
||||||
+++ b/drivers/net/dsa/b53/b53_common.c
|
+++ b/drivers/net/dsa/b53/b53_common.c
|
||||||
@@ -2616,6 +2616,20 @@ static const struct b53_chip_data b53_sw
|
@@ -2625,6 +2625,20 @@ static const struct b53_chip_data b53_sw
|
||||||
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
.jumbo_pm_reg = B53_JUMBO_PORT_MASK,
|
||||||
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
|
.jumbo_size_reg = B53_JUMBO_MAX_SIZE,
|
||||||
},
|
},
|
||||||
@ -121,7 +121,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int b53_switch_init(struct b53_device *dev)
|
static int b53_switch_init(struct b53_device *dev)
|
||||||
@@ -2793,6 +2807,7 @@ int b53_switch_detect(struct b53_device
|
@@ -2802,6 +2816,7 @@ int b53_switch_detect(struct b53_device
|
||||||
case BCM53012_DEVICE_ID:
|
case BCM53012_DEVICE_ID:
|
||||||
case BCM53018_DEVICE_ID:
|
case BCM53018_DEVICE_ID:
|
||||||
case BCM53019_DEVICE_ID:
|
case BCM53019_DEVICE_ID:
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
|||||||
|
|
||||||
--- a/drivers/char/hw_random/bcm2835-rng.c
|
--- a/drivers/char/hw_random/bcm2835-rng.c
|
||||||
+++ b/drivers/char/hw_random/bcm2835-rng.c
|
+++ b/drivers/char/hw_random/bcm2835-rng.c
|
||||||
@@ -170,6 +170,7 @@ static int bcm2835_rng_probe(struct plat
|
@@ -172,6 +172,7 @@ static int bcm2835_rng_probe(struct plat
|
||||||
priv->rng.init = bcm2835_rng_init;
|
priv->rng.init = bcm2835_rng_init;
|
||||||
priv->rng.read = bcm2835_rng_read;
|
priv->rng.read = bcm2835_rng_read;
|
||||||
priv->rng.cleanup = bcm2835_rng_cleanup;
|
priv->rng.cleanup = bcm2835_rng_cleanup;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/usb/qmi_wwan.c
|
--- a/drivers/net/usb/qmi_wwan.c
|
||||||
+++ b/drivers/net/usb/qmi_wwan.c
|
+++ b/drivers/net/usb/qmi_wwan.c
|
||||||
@@ -1437,6 +1437,9 @@ static const struct usb_device_id produc
|
@@ -1438,6 +1438,9 @@ static const struct usb_device_id produc
|
||||||
{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
|
{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
|
||||||
{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
|
{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
|
||||||
{QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
|
{QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
|
||||||
@ -12,7 +12,7 @@
|
|||||||
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
|
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
|
||||||
--- a/drivers/usb/serial/option.c
|
--- a/drivers/usb/serial/option.c
|
||||||
+++ b/drivers/usb/serial/option.c
|
+++ b/drivers/usb/serial/option.c
|
||||||
@@ -2324,9 +2324,13 @@ static const struct usb_device_id option
|
@@ -2338,9 +2338,13 @@ static const struct usb_device_id option
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff) }, /* Fibocom FM650-CN (RNDIS mode) */
|
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff) }, /* Fibocom FM650-CN (RNDIS mode) */
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a07, 0xff) }, /* Fibocom FM650-CN (MBIM mode) */
|
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a07, 0xff) }, /* Fibocom FM650-CN (MBIM mode) */
|
||||||
{ USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */
|
{ USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */
|
||||||
|
@ -57,7 +57,7 @@ Link: https://lore.kernel.org/r/20230307062232.4889-2-quic_kathirav@quicinc.com
|
|||||||
#define PLL_HUAYRA_M_WIDTH 8
|
#define PLL_HUAYRA_M_WIDTH 8
|
||||||
#define PLL_HUAYRA_M_SHIFT 8
|
#define PLL_HUAYRA_M_SHIFT 8
|
||||||
#define PLL_HUAYRA_M_MASK 0xff
|
#define PLL_HUAYRA_M_MASK 0xff
|
||||||
@@ -2308,3 +2322,115 @@ const struct clk_ops clk_alpha_pll_rivia
|
@@ -2360,3 +2374,115 @@ const struct clk_ops clk_alpha_pll_rivia
|
||||||
.round_rate = clk_rivian_evo_pll_round_rate,
|
.round_rate = clk_rivian_evo_pll_round_rate,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL_GPL(clk_alpha_pll_rivian_evo_ops);
|
EXPORT_SYMBOL_GPL(clk_alpha_pll_rivian_evo_ops);
|
||||||
@ -212,7 +212,7 @@ Link: https://lore.kernel.org/r/20230307062232.4889-2-quic_kathirav@quicinc.com
|
|||||||
|
|
||||||
extern const struct clk_ops clk_alpha_pll_fabia_ops;
|
extern const struct clk_ops clk_alpha_pll_fabia_ops;
|
||||||
extern const struct clk_ops clk_alpha_pll_fixed_fabia_ops;
|
extern const struct clk_ops clk_alpha_pll_fixed_fabia_ops;
|
||||||
@@ -182,5 +191,7 @@ void clk_lucid_evo_pll_configure(struct
|
@@ -184,5 +193,7 @@ void clk_lucid_evo_pll_configure(struct
|
||||||
const struct alpha_pll_config *config);
|
const struct alpha_pll_config *config);
|
||||||
void clk_rivian_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
|
void clk_rivian_evo_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
|
||||||
const struct alpha_pll_config *config);
|
const struct alpha_pll_config *config);
|
||||||
|
@ -20,7 +20,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
|||||||
|
|
||||||
--- a/drivers/clk/qcom/clk-alpha-pll.c
|
--- a/drivers/clk/qcom/clk-alpha-pll.c
|
||||||
+++ b/drivers/clk/qcom/clk-alpha-pll.c
|
+++ b/drivers/clk/qcom/clk-alpha-pll.c
|
||||||
@@ -2434,3 +2434,66 @@ const struct clk_ops clk_alpha_pll_strom
|
@@ -2486,3 +2486,66 @@ const struct clk_ops clk_alpha_pll_strom
|
||||||
.set_rate = clk_alpha_pll_stromer_set_rate,
|
.set_rate = clk_alpha_pll_stromer_set_rate,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL_GPL(clk_alpha_pll_stromer_ops);
|
EXPORT_SYMBOL_GPL(clk_alpha_pll_stromer_ops);
|
||||||
|
@ -19,7 +19,7 @@ Subject: [PATCH] kernel: add block fit partition parser
|
|||||||
|
|
||||||
--- a/block/blk.h
|
--- a/block/blk.h
|
||||||
+++ b/block/blk.h
|
+++ b/block/blk.h
|
||||||
@@ -415,6 +415,8 @@ void blk_free_ext_minor(unsigned int min
|
@@ -407,6 +407,8 @@ void blk_free_ext_minor(unsigned int min
|
||||||
#define ADDPART_FLAG_NONE 0
|
#define ADDPART_FLAG_NONE 0
|
||||||
#define ADDPART_FLAG_RAID 1
|
#define ADDPART_FLAG_RAID 1
|
||||||
#define ADDPART_FLAG_WHOLEDISK 2
|
#define ADDPART_FLAG_WHOLEDISK 2
|
||||||
@ -104,7 +104,7 @@ Subject: [PATCH] kernel: add block fit partition parser
|
|||||||
/* everything is up and running, commence */
|
/* everything is up and running, commence */
|
||||||
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
|
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
|
||||||
if (err)
|
if (err)
|
||||||
@@ -631,6 +642,11 @@ static bool blk_add_partition(struct gen
|
@@ -633,6 +644,11 @@ static bool blk_add_partition(struct gen
|
||||||
(state->parts[p].flags & ADDPART_FLAG_RAID))
|
(state->parts[p].flags & ADDPART_FLAG_RAID))
|
||||||
md_autodetect_dev(part->bd_dev);
|
md_autodetect_dev(part->bd_dev);
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
* CONFIG_CMDLINE is meant to be a default in case nothing else
|
* CONFIG_CMDLINE is meant to be a default in case nothing else
|
||||||
--- a/arch/arm64/Kconfig
|
--- a/arch/arm64/Kconfig
|
||||||
+++ b/arch/arm64/Kconfig
|
+++ b/arch/arm64/Kconfig
|
||||||
@@ -2277,6 +2277,14 @@ config CMDLINE_FORCE
|
@@ -2280,6 +2280,14 @@ config CMDLINE_FORCE
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
static struct flow_dissector flow_keys_bonding __read_mostly;
|
static struct flow_dissector flow_keys_bonding __read_mostly;
|
||||||
|
|
||||||
/*-------------------------- Forward declarations ---------------------------*/
|
/*-------------------------- Forward declarations ---------------------------*/
|
||||||
@@ -4411,6 +4413,24 @@ static int bond_get_lowest_level_rcu(str
|
@@ -4425,6 +4427,24 @@ static int bond_get_lowest_level_rcu(str
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -34,7 +34,7 @@
|
|||||||
static void bond_get_stats(struct net_device *bond_dev,
|
static void bond_get_stats(struct net_device *bond_dev,
|
||||||
struct rtnl_link_stats64 *stats)
|
struct rtnl_link_stats64 *stats)
|
||||||
{
|
{
|
||||||
@@ -5823,6 +5843,11 @@ static void bond_destructor(struct net_d
|
@@ -5837,6 +5857,11 @@ static void bond_destructor(struct net_d
|
||||||
|
|
||||||
if (bond->rr_tx_counter)
|
if (bond->rr_tx_counter)
|
||||||
free_percpu(bond->rr_tx_counter);
|
free_percpu(bond->rr_tx_counter);
|
||||||
@ -46,7 +46,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
void bond_setup(struct net_device *bond_dev)
|
void bond_setup(struct net_device *bond_dev)
|
||||||
@@ -6386,6 +6411,14 @@ int bond_create(struct net *net, const c
|
@@ -6400,6 +6425,14 @@ int bond_create(struct net *net, const c
|
||||||
|
|
||||||
bond_work_init_all(bond);
|
bond_work_init_all(bond);
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@
|
|||||||
{
|
{
|
||||||
--- a/drivers/net/bonding/bond_main.c
|
--- a/drivers/net/bonding/bond_main.c
|
||||||
+++ b/drivers/net/bonding/bond_main.c
|
+++ b/drivers/net/bonding/bond_main.c
|
||||||
@@ -1214,6 +1214,23 @@ void bond_change_active_slave(struct bon
|
@@ -1218,6 +1218,23 @@ void bond_change_active_slave(struct bon
|
||||||
if (BOND_MODE(bond) == BOND_MODE_8023AD)
|
if (BOND_MODE(bond) == BOND_MODE_8023AD)
|
||||||
bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
|
bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
|
||||||
|
|
||||||
@ -237,7 +237,7 @@
|
|||||||
if (bond_is_lb(bond))
|
if (bond_is_lb(bond))
|
||||||
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
||||||
} else {
|
} else {
|
||||||
@@ -1837,6 +1854,7 @@ int bond_enslave(struct net_device *bond
|
@@ -1841,6 +1858,7 @@ int bond_enslave(struct net_device *bond
|
||||||
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
||||||
struct slave *new_slave = NULL, *prev_slave;
|
struct slave *new_slave = NULL, *prev_slave;
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
@ -245,7 +245,7 @@
|
|||||||
int link_reporting;
|
int link_reporting;
|
||||||
int res = 0, i;
|
int res = 0, i;
|
||||||
|
|
||||||
@@ -2280,6 +2298,15 @@ int bond_enslave(struct net_device *bond
|
@@ -2288,6 +2306,15 @@ int bond_enslave(struct net_device *bond
|
||||||
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
||||||
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
||||||
|
|
||||||
@ -261,7 +261,7 @@
|
|||||||
/* enslave is successful */
|
/* enslave is successful */
|
||||||
bond_queue_slave_event(new_slave);
|
bond_queue_slave_event(new_slave);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2345,6 +2372,15 @@ err_undo_flags:
|
@@ -2353,6 +2380,15 @@ err_undo_flags:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,7 +277,7 @@
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2367,6 +2403,7 @@ static int __bond_release_one(struct net
|
@@ -2375,6 +2411,7 @@ static int __bond_release_one(struct net
|
||||||
struct slave *slave, *oldcurrent;
|
struct slave *slave, *oldcurrent;
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
int old_flags = bond_dev->flags;
|
int old_flags = bond_dev->flags;
|
||||||
@ -285,7 +285,7 @@
|
|||||||
netdev_features_t old_features = bond_dev->features;
|
netdev_features_t old_features = bond_dev->features;
|
||||||
|
|
||||||
/* slave is not a slave or master is not master of this slave */
|
/* slave is not a slave or master is not master of this slave */
|
||||||
@@ -2388,6 +2425,15 @@ static int __bond_release_one(struct net
|
@@ -2396,6 +2433,15 @@ static int __bond_release_one(struct net
|
||||||
|
|
||||||
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
||||||
|
|
||||||
@ -301,7 +301,7 @@
|
|||||||
bond_sysfs_slave_del(slave);
|
bond_sysfs_slave_del(slave);
|
||||||
|
|
||||||
/* recompute stats just before removing the slave */
|
/* recompute stats just before removing the slave */
|
||||||
@@ -2707,6 +2753,8 @@ static void bond_miimon_commit(struct bo
|
@@ -2721,6 +2767,8 @@ static void bond_miimon_commit(struct bo
|
||||||
struct slave *slave, *primary, *active;
|
struct slave *slave, *primary, *active;
|
||||||
bool do_failover = false;
|
bool do_failover = false;
|
||||||
struct list_head *iter;
|
struct list_head *iter;
|
||||||
@ -310,7 +310,7 @@
|
|||||||
|
|
||||||
ASSERT_RTNL();
|
ASSERT_RTNL();
|
||||||
|
|
||||||
@@ -2746,6 +2794,12 @@ static void bond_miimon_commit(struct bo
|
@@ -2760,6 +2808,12 @@ static void bond_miimon_commit(struct bo
|
||||||
bond_set_active_slave(slave);
|
bond_set_active_slave(slave);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,7 +323,7 @@
|
|||||||
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
||||||
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
||||||
slave->duplex ? "full" : "half");
|
slave->duplex ? "full" : "half");
|
||||||
@@ -2794,6 +2848,16 @@ static void bond_miimon_commit(struct bo
|
@@ -2808,6 +2862,16 @@ static void bond_miimon_commit(struct bo
|
||||||
unblock_netpoll_tx();
|
unblock_netpoll_tx();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,7 +340,7 @@
|
|||||||
bond_set_carrier(bond);
|
bond_set_carrier(bond);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4041,9 +4105,220 @@ static inline u32 bond_eth_hash(struct s
|
@@ -4055,9 +4119,220 @@ static inline u32 bond_eth_hash(struct s
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ep = (struct ethhdr *)(data + mhoff);
|
ep = (struct ethhdr *)(data + mhoff);
|
||||||
@ -562,7 +562,7 @@
|
|||||||
static bool bond_flow_ip(struct sk_buff *skb, struct flow_keys *fk, const void *data,
|
static bool bond_flow_ip(struct sk_buff *skb, struct flow_keys *fk, const void *data,
|
||||||
int hlen, __be16 l2_proto, int *nhoff, int *ip_proto, bool l34)
|
int hlen, __be16 l2_proto, int *nhoff, int *ip_proto, bool l34)
|
||||||
{
|
{
|
||||||
@@ -5239,15 +5514,23 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
@@ -5253,15 +5528,23 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
||||||
struct net_device *dev)
|
struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct bonding *bond = netdev_priv(dev);
|
struct bonding *bond = netdev_priv(dev);
|
||||||
@ -593,7 +593,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* in broadcast mode, we send everything to all usable interfaces. */
|
/* in broadcast mode, we send everything to all usable interfaces. */
|
||||||
@@ -5497,8 +5780,9 @@ static netdev_tx_t __bond_start_xmit(str
|
@@ -5511,8 +5794,9 @@ static netdev_tx_t __bond_start_xmit(str
|
||||||
return bond_xmit_roundrobin(skb, dev);
|
return bond_xmit_roundrobin(skb, dev);
|
||||||
case BOND_MODE_ACTIVEBACKUP:
|
case BOND_MODE_ACTIVEBACKUP:
|
||||||
return bond_xmit_activebackup(skb, dev);
|
return bond_xmit_activebackup(skb, dev);
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
|
|
||||||
--- a/drivers/net/bonding/bond_main.c
|
--- a/drivers/net/bonding/bond_main.c
|
||||||
+++ b/drivers/net/bonding/bond_main.c
|
+++ b/drivers/net/bonding/bond_main.c
|
||||||
@@ -1467,6 +1467,10 @@ static netdev_features_t bond_fix_featur
|
@@ -1471,6 +1471,10 @@ static netdev_features_t bond_fix_featur
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,7 +28,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
#define BOND_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
|
#define BOND_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
|
||||||
NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
|
NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
|
||||||
NETIF_F_HIGHDMA | NETIF_F_LRO)
|
NETIF_F_HIGHDMA | NETIF_F_LRO)
|
||||||
@@ -1497,13 +1501,25 @@ static void bond_compute_features(struct
|
@@ -1501,13 +1505,25 @@ static void bond_compute_features(struct
|
||||||
|
|
||||||
if (!bond_has_slaves(bond))
|
if (!bond_has_slaves(bond))
|
||||||
goto done;
|
goto done;
|
||||||
@ -57,7 +57,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
enc_features = netdev_increment_features(enc_features,
|
enc_features = netdev_increment_features(enc_features,
|
||||||
slave->dev->hw_enc_features,
|
slave->dev->hw_enc_features,
|
||||||
BOND_ENC_FEATURES);
|
BOND_ENC_FEATURES);
|
||||||
@@ -1648,6 +1664,16 @@ static rx_handler_result_t bond_handle_f
|
@@ -1652,6 +1668,16 @@ static rx_handler_result_t bond_handle_f
|
||||||
bond->dev->addr_len);
|
bond->dev->addr_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1865,6 +1891,8 @@ int bond_enslave(struct net_device *bond
|
@@ -1869,6 +1895,8 @@ int bond_enslave(struct net_device *bond
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
if (!bond->params.use_carrier &&
|
if (!bond->params.use_carrier &&
|
||||||
slave_dev->ethtool_ops->get_link == NULL &&
|
slave_dev->ethtool_ops->get_link == NULL &&
|
||||||
slave_ops->ndo_eth_ioctl == NULL) {
|
slave_ops->ndo_eth_ioctl == NULL) {
|
||||||
@@ -1978,13 +2006,17 @@ int bond_enslave(struct net_device *bond
|
@@ -1982,13 +2010,17 @@ int bond_enslave(struct net_device *bond
|
||||||
call_netdevice_notifiers(NETDEV_JOIN, slave_dev);
|
call_netdevice_notifiers(NETDEV_JOIN, slave_dev);
|
||||||
|
|
||||||
/* If this is the first slave, then we need to set the master's hardware
|
/* If this is the first slave, then we need to set the master's hardware
|
||||||
@ -107,7 +107,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
new_slave = bond_alloc_slave(bond, slave_dev);
|
new_slave = bond_alloc_slave(bond, slave_dev);
|
||||||
@@ -2013,18 +2045,21 @@ int bond_enslave(struct net_device *bond
|
@@ -2017,18 +2049,21 @@ int bond_enslave(struct net_device *bond
|
||||||
bond_hw_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr,
|
bond_hw_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr,
|
||||||
slave_dev->addr_len);
|
slave_dev->addr_len);
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2383,6 +2418,7 @@ err_undo_flags:
|
@@ -2391,6 +2426,7 @@ err_undo_flags:
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
|
|
||||||
/* Try to release the slave device <slave> from the bond device <master>
|
/* Try to release the slave device <slave> from the bond device <master>
|
||||||
* It is legal to access curr_active_slave without a lock because all the function
|
* It is legal to access curr_active_slave without a lock because all the function
|
||||||
@@ -2504,13 +2540,23 @@ static int __bond_release_one(struct net
|
@@ -2518,13 +2554,23 @@ static int __bond_release_one(struct net
|
||||||
}
|
}
|
||||||
|
|
||||||
bond_set_carrier(bond);
|
bond_set_carrier(bond);
|
||||||
@ -175,7 +175,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
if (!bond_has_slaves(bond)) {
|
if (!bond_has_slaves(bond)) {
|
||||||
call_netdevice_notifiers(NETDEV_CHANGEADDR, bond->dev);
|
call_netdevice_notifiers(NETDEV_CHANGEADDR, bond->dev);
|
||||||
call_netdevice_notifiers(NETDEV_RELEASE, bond->dev);
|
call_netdevice_notifiers(NETDEV_RELEASE, bond->dev);
|
||||||
@@ -2577,6 +2623,7 @@ int bond_release(struct net_device *bond
|
@@ -2591,6 +2637,7 @@ int bond_release(struct net_device *bond
|
||||||
{
|
{
|
||||||
return __bond_release_one(bond_dev, slave_dev, false, false);
|
return __bond_release_one(bond_dev, slave_dev, false, false);
|
||||||
}
|
}
|
||||||
@ -183,7 +183,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
|
|
||||||
/* First release a slave and then destroy the bond if no more slaves are left.
|
/* First release a slave and then destroy the bond if no more slaves are left.
|
||||||
* Must be under rtnl_lock when this function is called.
|
* Must be under rtnl_lock when this function is called.
|
||||||
@@ -2598,6 +2645,29 @@ static int bond_release_and_destroy(stru
|
@@ -2612,6 +2659,29 @@ static int bond_release_and_destroy(stru
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
static void bond_info_query(struct net_device *bond_dev, struct ifbond *info)
|
static void bond_info_query(struct net_device *bond_dev, struct ifbond *info)
|
||||||
{
|
{
|
||||||
struct bonding *bond = netdev_priv(bond_dev);
|
struct bonding *bond = netdev_priv(bond_dev);
|
||||||
@@ -4249,6 +4319,24 @@ static struct net_device *bond_xor_get_t
|
@@ -4263,6 +4333,24 @@ static struct net_device *bond_xor_get_t
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
/* bond_get_tx_dev - Calculate egress interface for a given packet.
|
/* bond_get_tx_dev - Calculate egress interface for a given packet.
|
||||||
*
|
*
|
||||||
* Supports 802.3AD and balance-xor modes
|
* Supports 802.3AD and balance-xor modes
|
||||||
@@ -4289,6 +4377,9 @@ struct net_device *bond_get_tx_dev(struc
|
@@ -4303,6 +4391,9 @@ struct net_device *bond_get_tx_dev(struc
|
||||||
return bond_3ad_get_tx_dev(skb, src_mac, dst_mac,
|
return bond_3ad_get_tx_dev(skb, src_mac, dst_mac,
|
||||||
src, dst, protocol,
|
src, dst, protocol,
|
||||||
bond_dev, layer4hdr);
|
bond_dev, layer4hdr);
|
||||||
@ -248,7 +248,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -5085,20 +5176,26 @@ static int bond_set_mac_address(struct n
|
@@ -5099,20 +5190,26 @@ static int bond_set_mac_address(struct n
|
||||||
if (!is_valid_ether_addr(ss->__data))
|
if (!is_valid_ether_addr(ss->__data))
|
||||||
return -EADDRNOTAVAIL;
|
return -EADDRNOTAVAIL;
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5762,6 +5859,27 @@ static netdev_tx_t bond_tls_device_xmit(
|
@@ -5776,6 +5873,27 @@ static netdev_tx_t bond_tls_device_xmit(
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -317,7 +317,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct bonding *bond = netdev_priv(dev);
|
struct bonding *bond = netdev_priv(dev);
|
||||||
@@ -5790,6 +5908,8 @@ static netdev_tx_t __bond_start_xmit(str
|
@@ -5804,6 +5922,8 @@ static netdev_tx_t __bond_start_xmit(str
|
||||||
return bond_alb_xmit(skb, dev);
|
return bond_alb_xmit(skb, dev);
|
||||||
case BOND_MODE_TLB:
|
case BOND_MODE_TLB:
|
||||||
return bond_tlb_xmit(skb, dev);
|
return bond_tlb_xmit(skb, dev);
|
||||||
@ -326,7 +326,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
default:
|
default:
|
||||||
/* Should never happen, mode already checked */
|
/* Should never happen, mode already checked */
|
||||||
netdev_err(dev, "Unknown bonding mode %d\n", BOND_MODE(bond));
|
netdev_err(dev, "Unknown bonding mode %d\n", BOND_MODE(bond));
|
||||||
@@ -6132,6 +6252,15 @@ static void bond_destructor(struct net_d
|
@@ -6146,6 +6266,15 @@ static void bond_destructor(struct net_d
|
||||||
if (bond->id != (~0U))
|
if (bond->id != (~0U))
|
||||||
clear_bit(bond->id, &bond_id_mask);
|
clear_bit(bond->id, &bond_id_mask);
|
||||||
/* QCA NSS ECM bonding support */
|
/* QCA NSS ECM bonding support */
|
||||||
@ -342,7 +342,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
void bond_setup(struct net_device *bond_dev)
|
void bond_setup(struct net_device *bond_dev)
|
||||||
@@ -6708,6 +6837,76 @@ out:
|
@@ -6722,6 +6851,76 @@ out:
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,7 +421,7 @@ Signed-off-by: Shivani Soni <quic_soni@quicinc.com>
|
|||||||
struct bond_net *bn = net_generic(net, bond_net_id);
|
struct bond_net *bn = net_generic(net, bond_net_id);
|
||||||
--- a/drivers/net/bonding/bond_options.c
|
--- a/drivers/net/bonding/bond_options.c
|
||||||
+++ b/drivers/net/bonding/bond_options.c
|
+++ b/drivers/net/bonding/bond_options.c
|
||||||
@@ -94,6 +94,7 @@ static const struct bond_opt_value bond_
|
@@ -95,6 +95,7 @@ static const struct bond_opt_value bond_
|
||||||
{ "802.3ad", BOND_MODE_8023AD, 0},
|
{ "802.3ad", BOND_MODE_8023AD, 0},
|
||||||
{ "balance-tlb", BOND_MODE_TLB, 0},
|
{ "balance-tlb", BOND_MODE_TLB, 0},
|
||||||
{ "balance-alb", BOND_MODE_ALB, 0},
|
{ "balance-alb", BOND_MODE_ALB, 0},
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
dev->needs_free_netdev = true;
|
dev->needs_free_netdev = true;
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -4612,6 +4612,15 @@ void dev_uc_flush(struct net_device *dev
|
@@ -4625,6 +4625,15 @@ void dev_uc_flush(struct net_device *dev
|
||||||
void dev_uc_init(struct net_device *dev);
|
void dev_uc_init(struct net_device *dev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,7 +71,7 @@
|
|||||||
* __dev_uc_sync - Synchonize device's unicast list
|
* __dev_uc_sync - Synchonize device's unicast list
|
||||||
* @dev: device to sync
|
* @dev: device to sync
|
||||||
* @sync: function to call if address should be added
|
* @sync: function to call if address should be added
|
||||||
@@ -5157,6 +5166,11 @@ static inline bool netif_is_failover_sla
|
@@ -5170,6 +5179,11 @@ static inline bool netif_is_failover_sla
|
||||||
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,7 +344,7 @@
|
|||||||
|
|
||||||
struct Qdisc *qdisc_lookup_rcu(struct net_device *dev, u32 handle)
|
struct Qdisc *qdisc_lookup_rcu(struct net_device *dev, u32 handle)
|
||||||
{
|
{
|
||||||
@@ -2387,4 +2388,26 @@ static int __init pktsched_init(void)
|
@@ -2392,4 +2393,26 @@ static int __init pktsched_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,7 +373,7 @@
|
|||||||
subsys_initcall(pktsched_init);
|
subsys_initcall(pktsched_init);
|
||||||
--- a/net/sched/sch_generic.c
|
--- a/net/sched/sch_generic.c
|
||||||
+++ b/net/sched/sch_generic.c
|
+++ b/net/sched/sch_generic.c
|
||||||
@@ -1074,6 +1074,7 @@ static void __qdisc_destroy(struct Qdisc
|
@@ -1083,6 +1083,7 @@ static void __qdisc_destroy(struct Qdisc
|
||||||
|
|
||||||
call_rcu(&qdisc->rcu, qdisc_free_cb);
|
call_rcu(&qdisc->rcu, qdisc_free_cb);
|
||||||
}
|
}
|
||||||
@ -432,7 +432,7 @@
|
|||||||
/* Reset all TX qdiscs greater than index of a device. */
|
/* Reset all TX qdiscs greater than index of a device. */
|
||||||
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
|
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
|
||||||
{
|
{
|
||||||
@@ -1306,4 +1341,9 @@ static inline void qdisc_synchronize(con
|
@@ -1305,4 +1340,9 @@ static inline void qdisc_synchronize(con
|
||||||
msleep(1);
|
msleep(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ Subject: [PATCH] r8169: add LED configuration from OF
|
|||||||
TxDescStartAddrLow = 0x20,
|
TxDescStartAddrLow = 0x20,
|
||||||
TxDescStartAddrHigh = 0x24,
|
TxDescStartAddrHigh = 0x24,
|
||||||
TxHDescStartAddrLow = 0x28,
|
TxHDescStartAddrLow = 0x28,
|
||||||
@@ -5260,6 +5262,22 @@ static bool rtl_aspm_is_safe(struct rtl8
|
@@ -5289,6 +5291,22 @@ static bool rtl_aspm_is_safe(struct rtl8
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Subject: [PATCH] r8169: add LED configuration from OF
|
|||||||
static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||||
{
|
{
|
||||||
struct rtl8169_private *tp;
|
struct rtl8169_private *tp;
|
||||||
@@ -5431,6 +5449,7 @@ static int rtl_init_one(struct pci_dev *
|
@@ -5460,6 +5478,7 @@ static int rtl_init_one(struct pci_dev *
|
||||||
if (!tp->counters)
|
if (!tp->counters)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ Subject: [PATCH] net: phy: realtek: add LED configuration from OF for 8211f
|
|||||||
#define RTL8211F_PHYCR1 0x18
|
#define RTL8211F_PHYCR1 0x18
|
||||||
#define RTL8211F_PHYCR2 0x19
|
#define RTL8211F_PHYCR2 0x19
|
||||||
#define RTL8211F_INSR 0x1d
|
#define RTL8211F_INSR 0x1d
|
||||||
@@ -354,6 +356,7 @@ static int rtl8211f_config_init(struct p
|
@@ -356,6 +358,7 @@ static int rtl8211f_config_init(struct p
|
||||||
struct rtl821x_priv *priv = phydev->priv;
|
struct rtl821x_priv *priv = phydev->priv;
|
||||||
struct device *dev = &phydev->mdio.dev;
|
struct device *dev = &phydev->mdio.dev;
|
||||||
u16 val_txdly, val_rxdly;
|
u16 val_txdly, val_rxdly;
|
||||||
@ -26,7 +26,7 @@ Subject: [PATCH] net: phy: realtek: add LED configuration from OF for 8211f
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = phy_modify_paged_changed(phydev, 0xa43, RTL8211F_PHYCR1,
|
ret = phy_modify_paged_changed(phydev, 0xa43, RTL8211F_PHYCR1,
|
||||||
@@ -420,6 +423,15 @@ static int rtl8211f_config_init(struct p
|
@@ -422,6 +425,15 @@ static int rtl8211f_config_init(struct p
|
||||||
val_rxdly ? "enabled" : "disabled");
|
val_rxdly ? "enabled" : "disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/arch/arm64/Kconfig
|
--- a/arch/arm64/Kconfig
|
||||||
+++ b/arch/arm64/Kconfig
|
+++ b/arch/arm64/Kconfig
|
||||||
@@ -1207,6 +1207,14 @@ config SOCIONEXT_SYNQUACER_PREITS
|
@@ -1209,6 +1209,14 @@ config SOCIONEXT_SYNQUACER_PREITS
|
||||||
|
|
||||||
If unsure, say Y.
|
If unsure, say Y.
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
#define RD_LOCAL_LPI_ENABLED BIT(0)
|
#define RD_LOCAL_LPI_ENABLED BIT(0)
|
||||||
#define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1)
|
#define RD_LOCAL_PENDTABLE_PREALLOCATED BIT(1)
|
||||||
@@ -2183,6 +2184,11 @@ static struct page *its_allocate_prop_ta
|
@@ -2189,6 +2190,11 @@ static struct page *its_allocate_prop_ta
|
||||||
{
|
{
|
||||||
struct page *prop_page;
|
struct page *prop_page;
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
|
prop_page = alloc_pages(gfp_flags, get_order(LPI_PROPBASE_SZ));
|
||||||
if (!prop_page)
|
if (!prop_page)
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -2306,6 +2312,7 @@ static int its_setup_baser(struct its_no
|
@@ -2312,6 +2318,7 @@ static int its_setup_baser(struct its_no
|
||||||
u32 alloc_pages, psz;
|
u32 alloc_pages, psz;
|
||||||
struct page *page;
|
struct page *page;
|
||||||
void *base;
|
void *base;
|
||||||
@ -37,7 +37,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
psz = baser->psz;
|
psz = baser->psz;
|
||||||
alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz);
|
alloc_pages = (PAGE_ORDER_TO_SIZE(order) / psz);
|
||||||
@@ -2317,7 +2324,10 @@ static int its_setup_baser(struct its_no
|
@@ -2323,7 +2330,10 @@ static int its_setup_baser(struct its_no
|
||||||
order = get_order(GITS_BASER_PAGES_MAX * psz);
|
order = get_order(GITS_BASER_PAGES_MAX * psz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (!page)
|
if (!page)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@@ -2364,6 +2374,13 @@ retry_baser:
|
@@ -2370,6 +2380,13 @@ retry_baser:
|
||||||
its_write_baser(its, baser, val);
|
its_write_baser(its, baser, val);
|
||||||
tmp = baser->val;
|
tmp = baser->val;
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
|
if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
|
||||||
/*
|
/*
|
||||||
* Shareability didn't stick. Just use
|
* Shareability didn't stick. Just use
|
||||||
@@ -2946,6 +2963,10 @@ static struct page *its_allocate_pending
|
@@ -2952,6 +2969,10 @@ static struct page *its_allocate_pending
|
||||||
{
|
{
|
||||||
struct page *pend_page;
|
struct page *pend_page;
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
|
pend_page = alloc_pages(gfp_flags | __GFP_ZERO,
|
||||||
get_order(LPI_PENDBASE_SZ));
|
get_order(LPI_PENDBASE_SZ));
|
||||||
if (!pend_page)
|
if (!pend_page)
|
||||||
@@ -3101,6 +3122,9 @@ static void its_cpu_init_lpis(void)
|
@@ -3107,6 +3128,9 @@ static void its_cpu_init_lpis(void)
|
||||||
gicr_write_propbaser(val, rbase + GICR_PROPBASER);
|
gicr_write_propbaser(val, rbase + GICR_PROPBASER);
|
||||||
tmp = gicr_read_propbaser(rbase + GICR_PROPBASER);
|
tmp = gicr_read_propbaser(rbase + GICR_PROPBASER);
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
|
if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
|
||||||
if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) {
|
if (!(tmp & GICR_PROPBASER_SHAREABILITY_MASK)) {
|
||||||
/*
|
/*
|
||||||
@@ -3125,6 +3149,9 @@ static void its_cpu_init_lpis(void)
|
@@ -3131,6 +3155,9 @@ static void its_cpu_init_lpis(void)
|
||||||
gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
|
gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
|
||||||
tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER);
|
tmp = gicr_read_pendbaser(rbase + GICR_PENDBASER);
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) {
|
if (!(tmp & GICR_PENDBASER_SHAREABILITY_MASK)) {
|
||||||
/*
|
/*
|
||||||
* The HW reports non-shareable, we must remove the
|
* The HW reports non-shareable, we must remove the
|
||||||
@@ -3288,7 +3315,12 @@ static bool its_alloc_table_entry(struct
|
@@ -3294,7 +3321,12 @@ static bool its_alloc_table_entry(struct
|
||||||
|
|
||||||
/* Allocate memory for 2nd level table */
|
/* Allocate memory for 2nd level table */
|
||||||
if (!table[idx]) {
|
if (!table[idx]) {
|
||||||
@ -108,7 +108,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
get_order(baser->psz));
|
get_order(baser->psz));
|
||||||
if (!page)
|
if (!page)
|
||||||
return false;
|
return false;
|
||||||
@@ -3377,6 +3409,7 @@ static struct its_device *its_create_dev
|
@@ -3383,6 +3415,7 @@ static struct its_device *its_create_dev
|
||||||
int nr_lpis;
|
int nr_lpis;
|
||||||
int nr_ites;
|
int nr_ites;
|
||||||
int sz;
|
int sz;
|
||||||
@ -116,7 +116,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
if (!its_alloc_device_table(its, dev_id))
|
if (!its_alloc_device_table(its, dev_id))
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -3384,7 +3417,11 @@ static struct its_device *its_create_dev
|
@@ -3390,7 +3423,11 @@ static struct its_device *its_create_dev
|
||||||
if (WARN_ON(!is_power_of_2(nvecs)))
|
if (WARN_ON(!is_power_of_2(nvecs)))
|
||||||
nvecs = roundup_pow_of_two(nvecs);
|
nvecs = roundup_pow_of_two(nvecs);
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
/*
|
/*
|
||||||
* Even if the device wants a single LPI, the ITT must be
|
* Even if the device wants a single LPI, the ITT must be
|
||||||
* sized as a power of two (and you need at least one bit...).
|
* sized as a power of two (and you need at least one bit...).
|
||||||
@@ -3392,7 +3429,7 @@ static struct its_device *its_create_dev
|
@@ -3398,7 +3435,7 @@ static struct its_device *its_create_dev
|
||||||
nr_ites = max(2, nvecs);
|
nr_ites = max(2, nvecs);
|
||||||
sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
|
sz = nr_ites * (FIELD_GET(GITS_TYPER_ITT_ENTRY_SIZE, its->typer) + 1);
|
||||||
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
|
sz = max(sz, ITS_ITT_ALIGN) + ITS_ITT_ALIGN - 1;
|
||||||
@ -138,7 +138,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
if (alloc_lpis) {
|
if (alloc_lpis) {
|
||||||
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
||||||
if (lpi_map)
|
if (lpi_map)
|
||||||
@@ -4704,6 +4741,13 @@ static bool __maybe_unused its_enable_qu
|
@@ -4716,6 +4753,13 @@ static bool __maybe_unused its_enable_qu
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
static const struct gic_quirk its_quirks[] = {
|
static const struct gic_quirk its_quirks[] = {
|
||||||
#ifdef CONFIG_CAVIUM_ERRATUM_22375
|
#ifdef CONFIG_CAVIUM_ERRATUM_22375
|
||||||
{
|
{
|
||||||
@@ -4750,6 +4794,14 @@ static const struct gic_quirk its_quirks
|
@@ -4762,6 +4806,14 @@ static const struct gic_quirk its_quirks
|
||||||
.init = its_enable_quirk_hip07_161600802,
|
.init = its_enable_quirk_hip07_161600802,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
@ -167,7 +167,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -5005,6 +5057,7 @@ static int __init its_probe_one(struct r
|
@@ -5017,6 +5069,7 @@ static int __init its_probe_one(struct r
|
||||||
struct page *page;
|
struct page *page;
|
||||||
u32 ctlr;
|
u32 ctlr;
|
||||||
int err;
|
int err;
|
||||||
@ -175,7 +175,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
|
|
||||||
its_base = its_map_one(res, &err);
|
its_base = its_map_one(res, &err);
|
||||||
if (!its_base)
|
if (!its_base)
|
||||||
@@ -5058,7 +5111,9 @@ static int __init its_probe_one(struct r
|
@@ -5070,7 +5123,9 @@ static int __init its_probe_one(struct r
|
||||||
|
|
||||||
its->numa_node = numa_node;
|
its->numa_node = numa_node;
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ Subject: [PATCH] irqchip: gic-v3: add hackaround for rk3568 its
|
|||||||
get_order(ITS_CMD_QUEUE_SZ));
|
get_order(ITS_CMD_QUEUE_SZ));
|
||||||
if (!page) {
|
if (!page) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@@ -5089,6 +5144,9 @@ static int __init its_probe_one(struct r
|
@@ -5101,6 +5156,9 @@ static int __init its_probe_one(struct r
|
||||||
gits_write_cbaser(baser, its->base + GITS_CBASER);
|
gits_write_cbaser(baser, its->base + GITS_CBASER);
|
||||||
tmp = gits_read_cbaser(its->base + GITS_CBASER);
|
tmp = gits_read_cbaser(its->base + GITS_CBASER);
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ Change-Id: I09745b6a31484d6a27f04e608268d9738c1fe224
|
|||||||
obj-$(CONFIG_CLK_RK3568) += clk-rk3568.o
|
obj-$(CONFIG_CLK_RK3568) += clk-rk3568.o
|
||||||
--- a/drivers/clk/rockchip/clk.c
|
--- a/drivers/clk/rockchip/clk.c
|
||||||
+++ b/drivers/clk/rockchip/clk.c
|
+++ b/drivers/clk/rockchip/clk.c
|
||||||
@@ -514,6 +514,14 @@ void rockchip_clk_register_branches(stru
|
@@ -515,6 +515,14 @@ void rockchip_clk_register_branches(stru
|
||||||
ctx->reg_base + list->gate_offset,
|
ctx->reg_base + list->gate_offset,
|
||||||
list->gate_shift, list->gate_flags, &ctx->lock);
|
list->gate_shift, list->gate_flags, &ctx->lock);
|
||||||
break;
|
break;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
@@ -7099,6 +7099,7 @@ int stmmac_dvr_probe(struct device *devi
|
@@ -7112,6 +7112,7 @@ int stmmac_dvr_probe(struct device *devi
|
||||||
{
|
{
|
||||||
struct net_device *ndev = NULL;
|
struct net_device *ndev = NULL;
|
||||||
struct stmmac_priv *priv;
|
struct stmmac_priv *priv;
|
||||||
@ -8,7 +8,7 @@
|
|||||||
u32 rxq;
|
u32 rxq;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
@@ -7107,6 +7108,9 @@ int stmmac_dvr_probe(struct device *devi
|
@@ -7120,6 +7121,9 @@ int stmmac_dvr_probe(struct device *devi
|
||||||
if (!ndev)
|
if (!ndev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ Signed-off-by: hmz007 <hmz007@gmail.com>
|
|||||||
|
|
||||||
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
|
||||||
@@ -1032,6 +1032,13 @@
|
@@ -1031,6 +1031,13 @@
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ and performance for all other cases.
|
|||||||
|
|
||||||
--- a/net/ipv4/tcp_input.c
|
--- a/net/ipv4/tcp_input.c
|
||||||
+++ b/net/ipv4/tcp_input.c
|
+++ b/net/ipv4/tcp_input.c
|
||||||
@@ -5443,6 +5443,7 @@ static bool tcp_prune_ofo_queue(struct s
|
@@ -5470,6 +5470,7 @@ static bool tcp_prune_ofo_queue(struct s
|
||||||
static int tcp_prune_queue(struct sock *sk)
|
static int tcp_prune_queue(struct sock *sk)
|
||||||
{
|
{
|
||||||
struct tcp_sock *tp = tcp_sk(sk);
|
struct tcp_sock *tp = tcp_sk(sk);
|
||||||
@ -89,7 +89,7 @@ and performance for all other cases.
|
|||||||
|
|
||||||
NET_INC_STATS(sock_net(sk), LINUX_MIB_PRUNECALLED);
|
NET_INC_STATS(sock_net(sk), LINUX_MIB_PRUNECALLED);
|
||||||
|
|
||||||
@@ -5454,6 +5455,39 @@ static int tcp_prune_queue(struct sock *
|
@@ -5481,6 +5482,39 @@ static int tcp_prune_queue(struct sock *
|
||||||
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ and performance for all other cases.
|
|||||||
tcp_collapse_ofo_queue(sk);
|
tcp_collapse_ofo_queue(sk);
|
||||||
if (!skb_queue_empty(&sk->sk_receive_queue))
|
if (!skb_queue_empty(&sk->sk_receive_queue))
|
||||||
tcp_collapse(sk, &sk->sk_receive_queue, NULL,
|
tcp_collapse(sk, &sk->sk_receive_queue, NULL,
|
||||||
@@ -5472,6 +5506,8 @@ static int tcp_prune_queue(struct sock *
|
@@ -5499,6 +5533,8 @@ static int tcp_prune_queue(struct sock *
|
||||||
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ and performance for all other cases.
|
|||||||
* and hopefully then we'll have sufficient space.
|
* and hopefully then we'll have sufficient space.
|
||||||
--- a/net/ipv4/tcp_ipv4.c
|
--- a/net/ipv4/tcp_ipv4.c
|
||||||
+++ b/net/ipv4/tcp_ipv4.c
|
+++ b/net/ipv4/tcp_ipv4.c
|
||||||
@@ -3237,6 +3237,8 @@ static int __net_init tcp_sk_init(struct
|
@@ -3240,6 +3240,8 @@ static int __net_init tcp_sk_init(struct
|
||||||
|
|
||||||
net->ipv4.sysctl_tcp_shrink_window = 0;
|
net->ipv4.sysctl_tcp_shrink_window = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user