mirror of
https://github.com/Heleguo/lede.git
synced 2025-12-16 19:01:32 +00:00
kernel: refresh ipq 6.12 patches
This commit is contained in:
parent
50b8c522d4
commit
25f55a3a5b
@ -82,7 +82,7 @@ Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
static void blk_report_disk_dead(struct gendisk *disk, bool surprise)
|
||||
--- a/include/linux/blkdev.h
|
||||
+++ b/include/linux/blkdev.h
|
||||
@@ -734,6 +734,9 @@ static inline unsigned int blk_queue_dep
|
||||
@@ -789,6 +789,9 @@ static inline unsigned int blk_queue_dep
|
||||
#define for_each_bio(_bio) \
|
||||
for (; _bio; _bio = _bio->bi_next)
|
||||
|
||||
|
||||
@ -815,7 +815,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
read_reg_dma(nandc, NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL);
|
||||
|
||||
ret = submit_descs(nandc);
|
||||
@@ -2864,7 +2815,7 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -2869,7 +2820,7 @@ static int qcom_param_page_type_exec(str
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -824,7 +824,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
nandc->buf_count = 0;
|
||||
nandc->buf_start = 0;
|
||||
@@ -2872,38 +2823,38 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -2877,38 +2828,38 @@ static int qcom_param_page_type_exec(str
|
||||
clear_read_regs(nandc);
|
||||
clear_bam_transaction(nandc);
|
||||
|
||||
@ -890,9 +890,9 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
}
|
||||
|
||||
instr = q_op.data_instr;
|
||||
@@ -2912,9 +2863,9 @@ static int qcom_param_page_type_exec(str
|
||||
|
||||
nandc_set_read_loc(chip, 0, 0, 0, len, 1);
|
||||
@@ -2920,9 +2871,9 @@ static int qcom_param_page_type_exec(str
|
||||
else
|
||||
nandc_set_read_loc_first(chip, reg_base, 0, len, 1);
|
||||
|
||||
- if (!nandc->props->qpic_v2) {
|
||||
- write_reg_dma(nandc, NAND_DEV_CMD_VLD, 1, 0);
|
||||
@ -903,7 +903,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
}
|
||||
|
||||
nandc->buf_count = 512;
|
||||
@@ -2926,9 +2877,10 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -2934,9 +2885,10 @@ static int qcom_param_page_type_exec(str
|
||||
nandc->buf_count, 0);
|
||||
|
||||
/* restore CMD1 and VLD regs */
|
||||
@ -917,7 +917,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
}
|
||||
|
||||
ret = submit_descs(nandc);
|
||||
@@ -3017,7 +2969,7 @@ static const struct nand_controller_ops
|
||||
@@ -3025,7 +2977,7 @@ static const struct nand_controller_ops
|
||||
|
||||
static void qcom_nandc_unalloc(struct qcom_nand_controller *nandc)
|
||||
{
|
||||
@ -926,7 +926,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
if (!dma_mapping_error(nandc->dev, nandc->reg_read_dma))
|
||||
dma_unmap_single(nandc->dev, nandc->reg_read_dma,
|
||||
MAX_REG_RD *
|
||||
@@ -3070,7 +3022,7 @@ static int qcom_nandc_alloc(struct qcom_
|
||||
@@ -3078,7 +3030,7 @@ static int qcom_nandc_alloc(struct qcom_
|
||||
if (!nandc->reg_read_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -935,7 +935,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
nandc->reg_read_dma =
|
||||
dma_map_single(nandc->dev, nandc->reg_read_buf,
|
||||
MAX_REG_RD *
|
||||
@@ -3151,15 +3103,15 @@ static int qcom_nandc_setup(struct qcom_
|
||||
@@ -3159,15 +3111,15 @@ static int qcom_nandc_setup(struct qcom_
|
||||
u32 nand_ctrl;
|
||||
|
||||
/* kill onenand */
|
||||
@ -954,7 +954,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
nand_ctrl = nandc_read(nandc, NAND_CTRL);
|
||||
|
||||
/*
|
||||
@@ -3176,7 +3128,7 @@ static int qcom_nandc_setup(struct qcom_
|
||||
@@ -3184,7 +3136,7 @@ static int qcom_nandc_setup(struct qcom_
|
||||
}
|
||||
|
||||
/* save the original values of these registers */
|
||||
@ -963,7 +963,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
nandc->cmd1 = nandc_read(nandc, dev_cmd_reg_addr(nandc, NAND_DEV_CMD1));
|
||||
nandc->vld = NAND_DEV_CMD_VLD_VAL;
|
||||
}
|
||||
@@ -3349,7 +3301,7 @@ static int qcom_nandc_parse_dt(struct pl
|
||||
@@ -3357,7 +3309,7 @@ static int qcom_nandc_parse_dt(struct pl
|
||||
struct device_node *np = nandc->dev->of_node;
|
||||
int ret;
|
||||
|
||||
@ -972,7 +972,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
ret = of_property_read_u32(np, "qcom,cmd-crci",
|
||||
&nandc->cmd_crci);
|
||||
if (ret) {
|
||||
@@ -3474,30 +3426,30 @@ static void qcom_nandc_remove(struct pla
|
||||
@@ -3482,30 +3434,30 @@ static void qcom_nandc_remove(struct pla
|
||||
|
||||
static const struct qcom_nandc_props ipq806x_nandc_props = {
|
||||
.ecc_modes = (ECC_RS_4BIT | ECC_BCH_8BIT),
|
||||
|
||||
@ -823,7 +823,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
if (ret) {
|
||||
dev_err(nandc->dev, "failure in submitting misc descriptor\n");
|
||||
goto err_out;
|
||||
@@ -2820,8 +2820,8 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -2825,8 +2825,8 @@ static int qcom_param_page_type_exec(str
|
||||
nandc->buf_count = 0;
|
||||
nandc->buf_start = 0;
|
||||
host->use_ecc = false;
|
||||
@ -834,8 +834,8 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
nandc->regs->cmd = q_op.cmd_reg;
|
||||
nandc->regs->addr0 = 0;
|
||||
@@ -2864,8 +2864,8 @@ static int qcom_param_page_type_exec(str
|
||||
nandc_set_read_loc(chip, 0, 0, 0, len, 1);
|
||||
@@ -2872,8 +2872,8 @@ static int qcom_param_page_type_exec(str
|
||||
nandc_set_read_loc_first(chip, reg_base, 0, len, 1);
|
||||
|
||||
if (!nandc->props->qpic_version2) {
|
||||
- write_reg_dma(nandc, &nandc->regs->vld, NAND_DEV_CMD_VLD, 1, 0);
|
||||
@ -845,7 +845,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
}
|
||||
|
||||
nandc->buf_count = 512;
|
||||
@@ -2873,17 +2873,17 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -2881,17 +2881,17 @@ static int qcom_param_page_type_exec(str
|
||||
|
||||
config_nand_single_cw_page_read(chip, false, 0);
|
||||
|
||||
@ -869,7 +869,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
if (ret) {
|
||||
dev_err(nandc->dev, "failure in submitting param page descriptor\n");
|
||||
goto err_out;
|
||||
@@ -3067,7 +3067,7 @@ static int qcom_nandc_alloc(struct qcom_
|
||||
@@ -3075,7 +3075,7 @@ static int qcom_nandc_alloc(struct qcom_
|
||||
* maximum codeword size
|
||||
*/
|
||||
nandc->max_cwperpage = 1;
|
||||
|
||||
@ -1786,7 +1786,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
/*
|
||||
* when using BCH ECC, the HW flags an error in NAND_FLASH_STATUS if it read
|
||||
* an erased CW, and reports an erased CW in NAND_ERASED_CW_DETECT_STATUS.
|
||||
@@ -2967,141 +2022,14 @@ static const struct nand_controller_ops
|
||||
@@ -2975,141 +2030,14 @@ static const struct nand_controller_ops
|
||||
.exec_op = qcom_nand_exec_op,
|
||||
};
|
||||
|
||||
@ -1931,7 +1931,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
/* kill onenand */
|
||||
if (!nandc->props->nandc_part_of_qpic)
|
||||
nandc_write(nandc, SFLASHC_BURST_CFG, 0);
|
||||
@@ -3240,7 +2168,7 @@ static int qcom_nand_host_init_and_regis
|
||||
@@ -3248,7 +2176,7 @@ static int qcom_nand_host_init_and_regis
|
||||
chip->legacy.block_bad = qcom_nandc_block_bad;
|
||||
chip->legacy.block_markbad = qcom_nandc_block_markbad;
|
||||
|
||||
@ -1940,7 +1940,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
chip->options |= NAND_NO_SUBPAGE_WRITE | NAND_USES_DMA |
|
||||
NAND_SKIP_BBTSCAN;
|
||||
|
||||
@@ -3323,17 +2251,21 @@ static int qcom_nandc_parse_dt(struct pl
|
||||
@@ -3331,17 +2259,21 @@ static int qcom_nandc_parse_dt(struct pl
|
||||
static int qcom_nandc_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct qcom_nand_controller *nandc;
|
||||
|
||||
@ -104,7 +104,7 @@ Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
if (!nandc->props->qpic_version2)
|
||||
host->ecc_buf_cfg = 0x203 << NUM_STEPS;
|
||||
@@ -1882,21 +1881,21 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -1887,21 +1886,21 @@ static int qcom_param_page_type_exec(str
|
||||
nandc->regs->addr0 = 0;
|
||||
nandc->regs->addr1 = 0;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
@@ -1867,7 +1867,7 @@
|
||||
@@ -1867,7 +1867,7 @@ static int qcom_param_page_type_exec(str
|
||||
|
||||
reg_base = NAND_READ_LOCATION_0;
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
reg_base = NAND_READ_LOCATION_LAST_CW_0;
|
||||
|
||||
ret = qcom_parse_instructions(chip, subop, &q_op);
|
||||
@@ -1920,7 +1920,7 @@
|
||||
@@ -1920,7 +1920,7 @@ static int qcom_param_page_type_exec(str
|
||||
op_id = q_op.data_instr_idx;
|
||||
len = nand_subop_get_data_len(subop, op_id);
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
--- a/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
|
||||
@@ -1881,18 +1881,18 @@ static int qcom_param_page_type_exec(str
|
||||
@@ -1886,18 +1886,18 @@ static int qcom_param_page_type_exec(str
|
||||
nandc->regs->addr0 = 0;
|
||||
nandc->regs->addr1 = 0;
|
||||
|
||||
|
||||
@ -205,7 +205,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
};
|
||||
--- a/drivers/net/phy/broadcom.c
|
||||
+++ b/drivers/net/phy/broadcom.c
|
||||
@@ -1717,7 +1717,7 @@ static struct phy_driver broadcom_driver
|
||||
@@ -1734,7 +1734,7 @@ static struct phy_driver broadcom_driver
|
||||
|
||||
module_phy_driver(broadcom_drivers);
|
||||
|
||||
@ -458,7 +458,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{ }
|
||||
--- a/drivers/net/phy/micrel.c
|
||||
+++ b/drivers/net/phy/micrel.c
|
||||
@@ -5691,7 +5691,7 @@ MODULE_DESCRIPTION("Micrel PHY driver");
|
||||
@@ -5701,7 +5701,7 @@ MODULE_DESCRIPTION("Micrel PHY driver");
|
||||
MODULE_AUTHOR("David J. Choi");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
@ -469,7 +469,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{ PHY_ID_KSZ9131, MICREL_PHY_ID_MASK },
|
||||
--- a/drivers/net/phy/microchip.c
|
||||
+++ b/drivers/net/phy/microchip.c
|
||||
@@ -508,7 +508,7 @@ static struct phy_driver microchip_phy_d
|
||||
@@ -509,7 +509,7 @@ static struct phy_driver microchip_phy_d
|
||||
|
||||
module_phy_driver(microchip_phy_driver);
|
||||
|
||||
@ -502,7 +502,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{ }
|
||||
--- a/drivers/net/phy/mscc/mscc_main.c
|
||||
+++ b/drivers/net/phy/mscc/mscc_main.c
|
||||
@@ -2700,7 +2700,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
@@ -2712,7 +2712,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
|
||||
module_phy_driver(vsc85xx_driver);
|
||||
|
||||
@ -579,7 +579,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{ PHY_ID_MATCH_MODEL(PHY_ID_TJA1102) },
|
||||
--- a/drivers/net/phy/qcom/at803x.c
|
||||
+++ b/drivers/net/phy/qcom/at803x.c
|
||||
@@ -1098,7 +1098,7 @@ static struct phy_driver at803x_driver[]
|
||||
@@ -1071,7 +1071,7 @@ static struct phy_driver at803x_driver[]
|
||||
|
||||
module_phy_driver(at803x_driver);
|
||||
|
||||
@ -645,7 +645,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
};
|
||||
--- a/drivers/net/phy/smsc.c
|
||||
+++ b/drivers/net/phy/smsc.c
|
||||
@@ -837,7 +837,7 @@ MODULE_DESCRIPTION("SMSC PHY driver");
|
||||
@@ -885,7 +885,7 @@ MODULE_DESCRIPTION("SMSC PHY driver");
|
||||
MODULE_AUTHOR("Herbert Valerio Riedel");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -3385,11 +3385,17 @@ static int of_phy_led(struct phy_device
|
||||
@@ -3387,11 +3387,17 @@ static int of_phy_led(struct phy_device
|
||||
if (index > U8_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
if (!phydev->drv->led_polarity_set)
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -877,8 +877,9 @@ struct phy_plca_status {
|
||||
@@ -874,8 +874,9 @@ struct phy_plca_status {
|
||||
|
||||
/* Modes for PHY LED configuration */
|
||||
enum phy_led_modes {
|
||||
|
||||
@ -123,7 +123,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
depends on NETFILTER_ADVANCED
|
||||
--- a/net/netfilter/nf_conntrack_core.c
|
||||
+++ b/net/netfilter/nf_conntrack_core.c
|
||||
@@ -2753,6 +2753,10 @@ int nf_conntrack_init_net(struct net *ne
|
||||
@@ -2767,6 +2767,10 @@ int nf_conntrack_init_net(struct net *ne
|
||||
nf_conntrack_ecache_pernet_init(net);
|
||||
nf_conntrack_proto_pernet_init(net);
|
||||
|
||||
@ -319,7 +319,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
struct nf_conn *ct = item->ct;
|
||||
struct sk_buff *skb;
|
||||
unsigned int type;
|
||||
@@ -3754,11 +3761,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||
@@ -3756,11 +3763,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||
}
|
||||
|
||||
#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] = {
|
||||
[IPCTNL_MSG_CT_NEW] = {
|
||||
@@ -3857,8 +3870,12 @@ static int __net_init ctnetlink_net_init
|
||||
@@ -3859,8 +3872,12 @@ static int __net_init ctnetlink_net_init
|
||||
static void ctnetlink_net_pre_exit(struct net *net)
|
||||
{
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
|
||||
@ -78,7 +78,7 @@
|
||||
struct net_bridge_port *p;
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -3642,9 +3642,17 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -3654,9 +3654,17 @@ static int xmit_one(struct sk_buff *skb,
|
||||
{
|
||||
unsigned int len;
|
||||
int rc;
|
||||
@ -97,7 +97,7 @@
|
||||
|
||||
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
|
||||
if (dev->eth_mangle_tx && !(skb = dev->eth_mangle_tx(dev, skb)))
|
||||
@@ -5493,6 +5501,11 @@ void netdev_rx_handler_unregister(struct
|
||||
@@ -5505,6 +5513,11 @@ void netdev_rx_handler_unregister(struct
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);
|
||||
|
||||
@ -109,7 +109,7 @@
|
||||
/*
|
||||
* Limit the use of PFMEMALLOC reserves to those protocols that implement
|
||||
* the special handling of PFMEMALLOC skbs.
|
||||
@@ -5541,6 +5554,10 @@ static int __netif_receive_skb_core(stru
|
||||
@@ -5553,6 +5566,10 @@ static int __netif_receive_skb_core(stru
|
||||
int ret = NET_RX_DROP;
|
||||
__be16 type;
|
||||
|
||||
@ -120,7 +120,7 @@
|
||||
net_timestamp_check(!READ_ONCE(net_hotdata.tstamp_prequeue), skb);
|
||||
|
||||
trace_netif_receive_skb(skb);
|
||||
@@ -5579,6 +5596,15 @@ another_round:
|
||||
@@ -5591,6 +5608,15 @@ another_round:
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/8021q/vlan.h
|
||||
+++ b/net/8021q/vlan.h
|
||||
@@ -108,7 +108,7 @@ static inline netdev_features_t vlan_tnl
|
||||
@@ -109,7 +109,7 @@ static inline netdev_features_t vlan_tnl
|
||||
netdev_features_t ret;
|
||||
|
||||
ret = real_dev->hw_enc_features &
|
||||
|
||||
@ -319,7 +319,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
compatible = "cache";
|
||||
cache-level = <2>;
|
||||
cache-unified;
|
||||
@@ -863,10 +863,10 @@
|
||||
@@ -865,10 +865,10 @@
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu0_alert>;
|
||||
@ -334,7 +334,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -891,10 +891,10 @@
|
||||
@@ -893,10 +893,10 @@
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu1_alert>;
|
||||
@ -349,7 +349,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -919,10 +919,10 @@
|
||||
@@ -921,10 +921,10 @@
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu2_alert>;
|
||||
@ -364,7 +364,7 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -947,10 +947,10 @@
|
||||
@@ -949,10 +949,10 @@
|
||||
cooling-maps {
|
||||
map0 {
|
||||
trip = <&cpu3_alert>;
|
||||
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Devi Priya <quic_devipriy@quicinc.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -417,8 +417,21 @@
|
||||
@@ -427,8 +427,21 @@
|
||||
};
|
||||
|
||||
tcsr: syscon@1937000 {
|
||||
|
||||
@ -8,9 +8,9 @@
|
||||
+ struct rtnl_link_stats64 *nlstats); */
|
||||
+extern bool br_is_hairpin_enabled(struct net_device *dev);
|
||||
|
||||
#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
|
||||
int br_multicast_list_adjacent(struct net_device *dev,
|
||||
@@ -213,4 +216,42 @@ static inline clock_t br_get_ageing_time
|
||||
extern void br_dev_update_stats(struct net_device *dev,
|
||||
struct rtnl_link_stats64 *nlstats);
|
||||
@@ -216,4 +219,42 @@ static inline clock_t br_get_ageing_time
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
#endif
|
||||
--- a/include/linux/if_vlan.h
|
||||
+++ b/include/linux/if_vlan.h
|
||||
@@ -143,7 +143,10 @@ extern struct net_device *__vlan_find_de
|
||||
@@ -138,7 +138,10 @@ extern struct net_device *__vlan_find_de
|
||||
extern int vlan_for_each(struct net_device *dev,
|
||||
int (*action)(struct net_device *dev, int vid,
|
||||
void *arg), void *arg);
|
||||
@ -79,7 +79,6 @@
|
||||
static inline bool is_vlan_dev(const struct net_device *dev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -2907,6 +2907,10 @@ enum netdev_cmd {
|
||||
@ -109,7 +108,7 @@
|
||||
const struct dst_entry *dst = skb_dst(skb);
|
||||
--- a/include/net/neighbour.h
|
||||
+++ b/include/net/neighbour.h
|
||||
@@ -249,6 +249,13 @@ static inline int neigh_parms_family(str
|
||||
@@ -250,6 +250,13 @@ static inline int neigh_parms_family(str
|
||||
return p->tbl->family;
|
||||
}
|
||||
|
||||
@ -123,7 +122,7 @@
|
||||
#define NEIGH_PRIV_ALIGN sizeof(long long)
|
||||
#define NEIGH_ENTRY_SIZE(size) ALIGN((size), NEIGH_PRIV_ALIGN)
|
||||
|
||||
@@ -395,6 +402,11 @@ void __neigh_for_each_release(struct nei
|
||||
@@ -396,6 +403,11 @@ void __neigh_for_each_release(struct nei
|
||||
int (*cb)(struct neighbour *));
|
||||
int neigh_xmit(int fam, struct net_device *, const void *, struct sk_buff *);
|
||||
|
||||
@ -135,7 +134,7 @@
|
||||
struct neigh_seq_state {
|
||||
struct seq_net_private p;
|
||||
struct neigh_table *tbl;
|
||||
@@ -600,4 +612,5 @@ static inline void neigh_update_is_route
|
||||
@@ -601,4 +613,5 @@ static inline void neigh_update_is_route
|
||||
*notify = 1;
|
||||
}
|
||||
}
|
||||
@ -157,7 +156,7 @@
|
||||
void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -2292,4 +2292,6 @@ void br_do_suppress_nd(struct sk_buff *s
|
||||
@@ -2304,4 +2304,6 @@ void br_do_suppress_nd(struct sk_buff *s
|
||||
u16 vid, struct net_bridge_port *p, struct nd_msg *msg);
|
||||
struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m);
|
||||
bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid);
|
||||
@ -419,7 +418,7 @@
|
||||
/* Since more than one interface can be attached to a bridge,
|
||||
* there still maybe an alternate path for netconsole to use;
|
||||
* therefore there is no reason for a NETDEV_RELEASE event.
|
||||
@@ -775,3 +785,97 @@ bool br_port_flag_is_set(const struct ne
|
||||
@@ -797,3 +807,97 @@ bool br_port_flag_is_set(const struct ne
|
||||
return p->flags & flag;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(br_port_flag_is_set);
|
||||
@ -519,7 +518,7 @@
|
||||
+/* QCA NSS ECM support - End */
|
||||
--- a/net/core/neighbour.c
|
||||
+++ b/net/core/neighbour.c
|
||||
@@ -1277,6 +1277,22 @@ static void neigh_update_hhs(struct neig
|
||||
@@ -1282,6 +1282,22 @@ static void neigh_update_hhs(struct neig
|
||||
}
|
||||
}
|
||||
|
||||
@ -542,7 +541,7 @@
|
||||
/* Generic update routine.
|
||||
-- lladdr is new lladdr or NULL, if it is not supplied.
|
||||
-- new is new state.
|
||||
@@ -1305,6 +1321,7 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1310,6 +1326,7 @@ static int __neigh_update(struct neighbo
|
||||
struct net_device *dev;
|
||||
int err, notify = 0;
|
||||
u8 old;
|
||||
@ -550,7 +549,7 @@
|
||||
|
||||
trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid);
|
||||
|
||||
@@ -1319,7 +1336,10 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1324,7 +1341,10 @@ static int __neigh_update(struct neighbo
|
||||
new = old;
|
||||
goto out;
|
||||
}
|
||||
@ -562,7 +561,7 @@
|
||||
(old & (NUD_NOARP | NUD_PERMANENT)))
|
||||
goto out;
|
||||
|
||||
@@ -1356,7 +1376,12 @@ static int __neigh_update(struct neighbo
|
||||
@@ -1361,7 +1381,12 @@ static int __neigh_update(struct neighbo
|
||||
- compare new & old
|
||||
- if they are different, check override flag
|
||||
*/
|
||||
@ -576,7 +575,7 @@
|
||||
!memcmp(lladdr, neigh->ha, dev->addr_len))
|
||||
lladdr = neigh->ha;
|
||||
} else {
|
||||
@@ -1478,8 +1503,11 @@ out:
|
||||
@@ -1483,8 +1508,11 @@ out:
|
||||
neigh_update_gc_list(neigh);
|
||||
if (managed_update)
|
||||
neigh_update_managed_list(neigh);
|
||||
@ -591,7 +590,7 @@
|
||||
}
|
||||
--- a/net/ipv4/fib_trie.c
|
||||
+++ b/net/ipv4/fib_trie.c
|
||||
@@ -1212,6 +1212,9 @@ static bool fib_valid_key_len(u32 key, u
|
||||
@@ -1196,6 +1196,9 @@ static int fib_insert_alias(struct trie
|
||||
static void fib_remove_alias(struct trie *t, struct key_vector *tp,
|
||||
struct key_vector *l, struct fib_alias *old);
|
||||
|
||||
@ -601,7 +600,7 @@
|
||||
/* Caller must hold RTNL. */
|
||||
int fib_table_insert(struct net *net, struct fib_table *tb,
|
||||
struct fib_config *cfg, struct netlink_ext_ack *extack)
|
||||
@@ -1405,6 +1408,9 @@ int fib_table_insert(struct net *net, st
|
||||
@@ -1386,6 +1389,9 @@ int fib_table_insert(struct net *net, st
|
||||
rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, new_fa->tb_id,
|
||||
&cfg->fc_nlinfo, nlflags);
|
||||
succeeded:
|
||||
@ -611,7 +610,7 @@
|
||||
return 0;
|
||||
|
||||
out_remove_new_fa:
|
||||
@@ -1776,6 +1782,9 @@ int fib_table_delete(struct net *net, st
|
||||
@@ -1754,6 +1760,9 @@ int fib_table_delete(struct net *net, st
|
||||
if (fa_to_delete->fa_state & FA_S_ACCESSED)
|
||||
rt_cache_flush(cfg->fc_nlinfo.nl_net);
|
||||
|
||||
@ -621,7 +620,7 @@
|
||||
fib_release_info(fa_to_delete->fa_info);
|
||||
alias_free_mem_rcu(fa_to_delete);
|
||||
return 0;
|
||||
@@ -2408,6 +2417,20 @@ void __init fib_trie_init(void)
|
||||
@@ -2386,6 +2395,20 @@ void __init fib_trie_init(void)
|
||||
0, SLAB_PANIC | SLAB_ACCOUNT, NULL);
|
||||
}
|
||||
|
||||
@ -664,7 +663,7 @@
|
||||
static inline const void *choose_neigh_daddr(const struct in6_addr *p,
|
||||
struct sk_buff *skb,
|
||||
const void *daddr)
|
||||
@@ -3916,6 +3919,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3917,6 +3920,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||
return PTR_ERR(rt);
|
||||
|
||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||
@ -675,7 +674,7 @@
|
||||
fib6_info_release(rt);
|
||||
|
||||
return err;
|
||||
@@ -3937,6 +3944,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3938,6 +3945,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||
err = fib6_del(rt, info);
|
||||
spin_unlock_bh(&table->tb6_lock);
|
||||
|
||||
@ -685,7 +684,7 @@
|
||||
out:
|
||||
fib6_info_release(rt);
|
||||
return err;
|
||||
@@ -6400,6 +6410,20 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6409,6 +6419,20 @@ static int ip6_route_dev_notify(struct n
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
@ -708,7 +707,7 @@
|
||||
*/
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -1737,6 +1737,7 @@ const char *netdev_cmd_to_name(enum netd
|
||||
@@ -1768,6 +1768,7 @@ const char *netdev_cmd_to_name(enum netd
|
||||
N(PRE_CHANGEADDR) N(OFFLOAD_XSTATS_ENABLE) N(OFFLOAD_XSTATS_DISABLE)
|
||||
N(OFFLOAD_XSTATS_REPORT_USED) N(OFFLOAD_XSTATS_REPORT_DELTA)
|
||||
N(XDP_FEAT_CHANGE)
|
||||
@ -786,7 +785,7 @@
|
||||
#endif /* _UAPI_LINUX_IN_H */
|
||||
--- a/net/netfilter/nf_conntrack_ecache.c
|
||||
+++ b/net/netfilter/nf_conntrack_ecache.c
|
||||
@@ -365,7 +365,7 @@ void nf_conntrack_register_notifier(stru
|
||||
@@ -365,7 +365,7 @@ int nf_conntrack_register_notifier(struc
|
||||
mutex_lock(&nf_ct_ecache_mutex);
|
||||
notify = rcu_dereference_protected(net->ct.nf_conntrack_event_cb,
|
||||
lockdep_is_held(&nf_ct_ecache_mutex));
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -48,6 +48,7 @@
|
||||
@@ -49,6 +49,7 @@
|
||||
#include <net/slhc_vj.h>
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/refcount.h>
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
#include <linux/nsproxy.h>
|
||||
#include <net/net_namespace.h>
|
||||
@@ -266,6 +267,25 @@ struct ppp_net {
|
||||
@@ -267,6 +268,25 @@ struct ppp_net {
|
||||
#define seq_before(a, b) ((s32)((a) - (b)) < 0)
|
||||
#define seq_after(a, b) ((s32)((a) - (b)) > 0)
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
/* Prototypes. */
|
||||
static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
|
||||
struct file *file, unsigned int cmd, unsigned long arg);
|
||||
@@ -3478,7 +3498,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
@@ -3482,7 +3502,10 @@ ppp_connect_channel(struct channel *pch,
|
||||
struct ppp_net *pn;
|
||||
int ret = -ENXIO;
|
||||
int hdrlen;
|
||||
@ -45,7 +45,7 @@
|
||||
pn = ppp_pernet(pch->chan_net);
|
||||
|
||||
mutex_lock(&pn->all_ppp_mutex);
|
||||
@@ -3510,13 +3533,40 @@ ppp_connect_channel(struct channel *pch,
|
||||
@@ -3518,13 +3541,40 @@ ppp_connect_channel(struct channel *pch,
|
||||
++ppp->n_channels;
|
||||
pch->ppp = ppp;
|
||||
refcount_inc(&ppp->file.refcnt);
|
||||
@ -87,7 +87,7 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -3534,6 +3584,13 @@ ppp_disconnect_channel(struct channel *p
|
||||
@@ -3542,6 +3592,13 @@ ppp_disconnect_channel(struct channel *p
|
||||
pch->ppp = NULL;
|
||||
write_unlock_bh(&pch->upl);
|
||||
if (ppp) {
|
||||
@ -100,8 +100,8 @@
|
||||
+
|
||||
/* remove it from the ppp unit's list */
|
||||
ppp_lock(ppp);
|
||||
list_del(&pch->clist);
|
||||
@@ -3613,6 +3670,222 @@ static void *unit_find(struct idr *p, in
|
||||
list_del_rcu(&pch->clist);
|
||||
@@ -3622,6 +3679,222 @@ static void *unit_find(struct idr *p, in
|
||||
return idr_find(p, n);
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
/* Module/initialization stuff */
|
||||
|
||||
module_init(ppp_init);
|
||||
@@ -3629,6 +3902,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
||||
@@ -3638,6 +3911,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
||||
EXPORT_SYMBOL(ppp_output_wakeup);
|
||||
EXPORT_SYMBOL(ppp_register_compressor);
|
||||
EXPORT_SYMBOL(ppp_unregister_compressor);
|
||||
@ -342,7 +342,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/if_pppox.h>
|
||||
@@ -87,7 +88,7 @@
|
||||
@@ -88,7 +89,7 @@
|
||||
static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb);
|
||||
|
||||
static const struct proto_ops pppoe_ops;
|
||||
@ -351,7 +351,7 @@
|
||||
|
||||
/* per-net private data for this module */
|
||||
static unsigned int pppoe_net_id __read_mostly;
|
||||
@@ -692,7 +693,7 @@ static int pppoe_connect(struct socket *
|
||||
@@ -693,7 +694,7 @@ static int pppoe_connect(struct socket *
|
||||
|
||||
po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr) - 2;
|
||||
po->chan.private = sk;
|
||||
@ -360,7 +360,7 @@
|
||||
po->chan.direct_xmit = true;
|
||||
|
||||
error = ppp_register_net_channel(dev_net(dev), &po->chan);
|
||||
@@ -995,9 +996,80 @@ static int pppoe_fill_forward_path(struc
|
||||
@@ -997,9 +998,80 @@ static int pppoe_fill_forward_path(struc
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -546,7 +546,7 @@
|
||||
};
|
||||
|
||||
struct ppp_channel {
|
||||
@@ -76,6 +90,51 @@ extern int ppp_unit_number(struct ppp_ch
|
||||
@@ -75,6 +89,51 @@ extern int ppp_unit_number(struct ppp_ch
|
||||
/* Get the device name associated with a channel, or NULL if none */
|
||||
extern char *ppp_dev_name(struct ppp_channel *);
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
static const struct flow_dissector_key flow_keys_bonding_keys[] = {
|
||||
{
|
||||
@@ -5976,6 +5977,11 @@ static void bond_destructor(struct net_d
|
||||
@@ -5989,6 +5990,11 @@ static void bond_destructor(struct net_d
|
||||
if (bond->wq)
|
||||
destroy_workqueue(bond->wq);
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
free_percpu(bond->rr_tx_counter);
|
||||
}
|
||||
|
||||
@@ -6531,6 +6537,13 @@ int bond_create(struct net *net, const c
|
||||
@@ -6544,6 +6550,13 @@ int bond_create(struct net *net, const c
|
||||
|
||||
bond_work_init_all(bond);
|
||||
|
||||
|
||||
@ -73,7 +73,7 @@
|
||||
case AD_MUX_COLLECTING_DISTRIBUTING:
|
||||
port->actor_oper_port_state |= LACP_STATE_COLLECTING;
|
||||
port->actor_oper_port_state |= LACP_STATE_DISTRIBUTING;
|
||||
@@ -2054,6 +2112,7 @@ static void ad_enable_collecting_distrib
|
||||
@@ -2060,6 +2118,7 @@ static void ad_enable_collecting_distrib
|
||||
bool *update_slave_arr)
|
||||
{
|
||||
if (port->aggregator->is_active) {
|
||||
@ -81,7 +81,7 @@
|
||||
slave_dbg(port->slave->bond->dev, port->slave->dev,
|
||||
"Enabling port %d (LAG %d)\n",
|
||||
port->actor_port_number,
|
||||
@@ -2061,6 +2120,16 @@ static void ad_enable_collecting_distrib
|
||||
@@ -2067,6 +2126,16 @@ static void ad_enable_collecting_distrib
|
||||
__enable_port(port);
|
||||
/* Slave array needs update */
|
||||
*update_slave_arr = true;
|
||||
@ -98,7 +98,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2818,6 +2887,104 @@ int bond_3ad_get_active_agg_info(struct
|
||||
@@ -2824,6 +2893,104 @@ int bond_3ad_get_active_agg_info(struct
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -227,7 +227,7 @@
|
||||
/**
|
||||
* bond_dev_queue_xmit - Prepare skb for xmit.
|
||||
*
|
||||
@@ -1306,6 +1321,23 @@ void bond_change_active_slave(struct bon
|
||||
@@ -1308,6 +1323,23 @@ void bond_change_active_slave(struct bon
|
||||
if (BOND_MODE(bond) == BOND_MODE_8023AD)
|
||||
bond_3ad_handle_link_change(new_active, BOND_LINK_UP);
|
||||
|
||||
@ -251,7 +251,7 @@
|
||||
if (bond_is_lb(bond))
|
||||
bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP);
|
||||
} else {
|
||||
@@ -1950,6 +1982,7 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -1952,6 +1984,7 @@ int bond_enslave(struct net_device *bond
|
||||
const struct net_device_ops *slave_ops = slave_dev->netdev_ops;
|
||||
struct slave *new_slave = NULL, *prev_slave;
|
||||
struct sockaddr_storage ss;
|
||||
@ -259,7 +259,7 @@
|
||||
int link_reporting;
|
||||
int res = 0, i;
|
||||
|
||||
@@ -2399,6 +2432,15 @@ int bond_enslave(struct net_device *bond
|
||||
@@ -2412,6 +2445,15 @@ skip_mac_set:
|
||||
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
||||
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
||||
|
||||
@ -275,7 +275,7 @@
|
||||
/* enslave is successful */
|
||||
bond_queue_slave_event(new_slave);
|
||||
return 0;
|
||||
@@ -2464,6 +2506,15 @@ err_undo_flags:
|
||||
@@ -2477,6 +2519,15 @@ err_undo_flags:
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,7 +291,7 @@
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -2485,6 +2536,7 @@ static int __bond_release_one(struct net
|
||||
@@ -2498,6 +2549,7 @@ static int __bond_release_one(struct net
|
||||
struct bonding *bond = netdev_priv(bond_dev);
|
||||
struct slave *slave, *oldcurrent;
|
||||
struct sockaddr_storage ss;
|
||||
@ -299,7 +299,7 @@
|
||||
int old_flags = bond_dev->flags;
|
||||
netdev_features_t old_features = bond_dev->features;
|
||||
|
||||
@@ -2507,6 +2559,15 @@ static int __bond_release_one(struct net
|
||||
@@ -2520,6 +2572,15 @@ static int __bond_release_one(struct net
|
||||
|
||||
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
||||
|
||||
@ -315,7 +315,7 @@
|
||||
bond_sysfs_slave_del(slave);
|
||||
|
||||
/* recompute stats just before removing the slave */
|
||||
@@ -2837,6 +2898,8 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2850,6 +2911,8 @@ static void bond_miimon_commit(struct bo
|
||||
struct slave *slave, *primary, *active;
|
||||
bool do_failover = false;
|
||||
struct list_head *iter;
|
||||
@ -324,7 +324,7 @@
|
||||
|
||||
ASSERT_RTNL();
|
||||
|
||||
@@ -2876,6 +2939,12 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2889,6 +2952,12 @@ static void bond_miimon_commit(struct bo
|
||||
bond_set_active_slave(slave);
|
||||
}
|
||||
|
||||
@ -337,7 +337,7 @@
|
||||
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
||||
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
||||
slave->duplex ? "full" : "half");
|
||||
@@ -2924,6 +2993,16 @@ static void bond_miimon_commit(struct bo
|
||||
@@ -2937,6 +3006,16 @@ static void bond_miimon_commit(struct bo
|
||||
unblock_netpoll_tx();
|
||||
}
|
||||
|
||||
@ -354,7 +354,7 @@
|
||||
bond_set_carrier(bond);
|
||||
}
|
||||
|
||||
@@ -4176,8 +4255,224 @@ static inline u32 bond_eth_hash(struct s
|
||||
@@ -4189,8 +4268,224 @@ static inline u32 bond_eth_hash(struct s
|
||||
return 0;
|
||||
|
||||
ep = (struct ethhdr *)(data + mhoff);
|
||||
@ -580,7 +580,7 @@
|
||||
|
||||
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)
|
||||
@@ -5306,15 +5601,18 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
||||
@@ -5319,15 +5614,18 @@ static netdev_tx_t bond_3ad_xor_xmit(str
|
||||
struct net_device *dev)
|
||||
{
|
||||
struct bonding *bond = netdev_priv(dev);
|
||||
@ -606,7 +606,7 @@
|
||||
}
|
||||
|
||||
/* in broadcast mode, we send everything to all usable interfaces. */
|
||||
@@ -5564,8 +5862,9 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
@@ -5577,8 +5875,9 @@ static netdev_tx_t __bond_start_xmit(str
|
||||
return bond_xmit_roundrobin(skb, dev);
|
||||
case BOND_MODE_ACTIVEBACKUP:
|
||||
return bond_xmit_activebackup(skb, dev);
|
||||
@ -619,10 +619,10 @@
|
||||
return bond_xmit_broadcast(skb, dev);
|
||||
--- a/include/net/bond_3ad.h
|
||||
+++ b/include/net/bond_3ad.h
|
||||
@@ -307,8 +307,15 @@ int bond_3ad_lacpdu_recv(const struct sk
|
||||
struct slave *slave);
|
||||
@@ -308,6 +308,14 @@ int bond_3ad_lacpdu_recv(const struct sk
|
||||
int bond_3ad_set_carrier(struct bonding *bond);
|
||||
void bond_3ad_update_lacp_rate(struct bonding *bond);
|
||||
void bond_3ad_update_lacp_active(struct bonding *bond);
|
||||
+/* QCA NSS ECM bonding support */
|
||||
+struct net_device *bond_3ad_get_tx_dev(struct sk_buff *skb, uint8_t *src_mac,
|
||||
+ uint8_t *dst_mac, void *src,
|
||||
@ -634,8 +634,6 @@
|
||||
void bond_3ad_update_ad_actor_settings(struct bonding *bond);
|
||||
int bond_3ad_stats_fill(struct sk_buff *skb, struct bond_3ad_stats *stats);
|
||||
size_t bond_3ad_stats_size(void);
|
||||
#endif /* _NET_BOND_3AD_H */
|
||||
-
|
||||
--- a/include/net/bonding.h
|
||||
+++ b/include/net/bonding.h
|
||||
@@ -90,6 +90,8 @@
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/net/netfilter/Kconfig
|
||||
+++ b/net/netfilter/Kconfig
|
||||
@@ -174,6 +174,13 @@ config NF_CONNTRACK_TIMEOUT
|
||||
@@ -182,6 +182,13 @@ config NF_CONNTRACK_TIMEOUT
|
||||
|
||||
If unsure, say `N'.
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
#include <net/netfilter/nf_conntrack_labels.h>
|
||||
#include <net/netfilter/nf_conntrack_synproxy.h>
|
||||
#include <net/netfilter/nf_nat.h>
|
||||
@@ -1784,6 +1787,9 @@ init_conntrack(struct net *net, struct n
|
||||
@@ -1798,6 +1801,9 @@ init_conntrack(struct net *net, struct n
|
||||
nf_ct_acct_ext_add(ct, GFP_ATOMIC);
|
||||
nf_ct_tstamp_ext_add(ct, GFP_ATOMIC);
|
||||
nf_ct_labels_ext_add(ct);
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
|
||||
--- a/net/ipv6/route.c
|
||||
+++ b/net/ipv6/route.c
|
||||
@@ -3919,10 +3919,6 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -3920,10 +3920,6 @@ int ip6_route_add(struct fib6_config *cf
|
||||
return PTR_ERR(rt);
|
||||
|
||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
fib6_info_release(rt);
|
||||
|
||||
return err;
|
||||
@@ -3944,9 +3940,6 @@ static int __ip6_del_rt(struct fib6_info
|
||||
@@ -3945,9 +3941,6 @@ static int __ip6_del_rt(struct fib6_info
|
||||
err = fib6_del(rt, info);
|
||||
spin_unlock_bh(&table->tb6_lock);
|
||||
|
||||
@ -36,7 +36,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
out:
|
||||
fib6_info_release(rt);
|
||||
return err;
|
||||
@@ -4558,6 +4551,10 @@ int ipv6_route_ioctl(struct net *net, un
|
||||
@@ -4559,6 +4552,10 @@ int ipv6_route_ioctl(struct net *net, un
|
||||
break;
|
||||
}
|
||||
rtnl_unlock();
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -5580,11 +5577,17 @@ static int inet6_rtm_delroute(struct sk_
|
||||
@@ -5582,11 +5579,17 @@ static int inet6_rtm_delroute(struct sk_
|
||||
}
|
||||
|
||||
if (cfg.fc_mp)
|
||||
@ -67,7 +67,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
||||
}
|
||||
|
||||
static int inet6_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||
@@ -5601,9 +5604,15 @@ static int inet6_rtm_newroute(struct sk_
|
||||
@@ -5603,9 +5606,15 @@ static int inet6_rtm_newroute(struct sk_
|
||||
cfg.fc_metric = IP6_RT_PRIO_USER;
|
||||
|
||||
if (cfg.fc_mp)
|
||||
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH] Update 607-qca-add-add-nss-bridge-mgr-support.patch for kernel
|
||||
|
||||
--- a/include/linux/if_bridge.h
|
||||
+++ b/include/linux/if_bridge.h
|
||||
@@ -254,4 +254,8 @@ typedef struct net_bridge_port *br_get_d
|
||||
@@ -257,4 +257,8 @@ typedef struct net_bridge_port *br_get_d
|
||||
extern br_get_dst_hook_t __rcu *br_get_dst_hook;
|
||||
/* QCA NSS ECM support - End */
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
dev->needs_free_netdev = true;
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -4675,6 +4675,15 @@ void dev_uc_flush(struct net_device *dev
|
||||
@@ -4677,6 +4677,15 @@ void dev_uc_flush(struct net_device *dev
|
||||
void dev_uc_init(struct net_device *dev);
|
||||
|
||||
/**
|
||||
@ -58,7 +58,7 @@
|
||||
* __dev_uc_sync - Synchronize device's unicast list
|
||||
* @dev: device to sync
|
||||
* @sync: function to call if address should be added
|
||||
@@ -5231,6 +5240,11 @@ static inline bool netif_is_failover_sla
|
||||
@@ -5233,6 +5242,11 @@ static inline bool netif_is_failover_sla
|
||||
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
||||
}
|
||||
|
||||
@ -421,7 +421,7 @@
|
||||
/* 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)
|
||||
{
|
||||
@@ -1356,4 +1393,9 @@ static inline void qdisc_synchronize(con
|
||||
@@ -1371,4 +1408,9 @@ static inline void qdisc_synchronize(con
|
||||
msleep(1);
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
#endif /* !(__LINUX_IF_PPPOX_H) */
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -2998,6 +2998,20 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
@@ -3002,6 +3002,20 @@ char *ppp_dev_name(struct ppp_channel *c
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
|
||||
/*
|
||||
* Disconnect a channel from the generic layer.
|
||||
@@ -3706,6 +3720,28 @@ void ppp_update_stats(struct net_device
|
||||
@@ -3715,6 +3729,28 @@ void ppp_update_stats(struct net_device
|
||||
ppp_recv_unlock(ppp);
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@
|
||||
/* Returns >0 if the device is a multilink PPP netdevice, 0 if not or < 0 if
|
||||
* the device is not PPP.
|
||||
*/
|
||||
@@ -3897,6 +3933,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
@@ -3906,6 +3942,7 @@ EXPORT_SYMBOL(ppp_unregister_channel);
|
||||
EXPORT_SYMBOL(ppp_channel_index);
|
||||
EXPORT_SYMBOL(ppp_unit_number);
|
||||
EXPORT_SYMBOL(ppp_dev_name);
|
||||
@ -111,7 +111,7 @@
|
||||
EXPORT_SYMBOL(ppp_output_wakeup);
|
||||
--- a/include/linux/ppp_channel.h
|
||||
+++ b/include/linux/ppp_channel.h
|
||||
@@ -84,6 +84,9 @@ extern void ppp_unregister_channel(struc
|
||||
@@ -83,6 +83,9 @@ extern void ppp_unregister_channel(struc
|
||||
/* Get the channel number for a channel */
|
||||
extern int ppp_channel_index(struct ppp_channel *);
|
||||
|
||||
@ -121,7 +121,7 @@
|
||||
/* Get the unit number associated with a channel, or -1 if none */
|
||||
extern int ppp_unit_number(struct ppp_channel *);
|
||||
|
||||
@@ -116,6 +119,7 @@ extern int ppp_hold_channels(struct net_
|
||||
@@ -115,6 +118,7 @@ extern int ppp_hold_channels(struct net_
|
||||
/* Test if ppp xmit lock is locked */
|
||||
extern bool ppp_is_xmit_locked(struct net_device *dev);
|
||||
|
||||
@ -229,8 +229,8 @@
|
||||
RT_SCOPE_UNIVERSE, IPPROTO_GRE, 0,
|
||||
po->proto.pptp.dst_addr.sin_addr.s_addr,
|
||||
po->proto.pptp.src_addr.sin_addr.s_addr,
|
||||
@@ -163,8 +238,11 @@ static int pptp_xmit(struct ppp_channel
|
||||
|
||||
@@ -161,8 +236,11 @@ static int pptp_xmit(struct ppp_channel
|
||||
__u32 seq_recv;
|
||||
struct rtable *rt;
|
||||
struct net_device *tdev;
|
||||
+ struct net_device *pptp_dev;
|
||||
@ -240,8 +240,8 @@
|
||||
+ int ret;
|
||||
|
||||
if (sk_pppox(po)->sk_state & PPPOX_DEAD)
|
||||
goto tx_error;
|
||||
@@ -258,7 +336,32 @@ static int pptp_xmit(struct ppp_channel
|
||||
goto tx_drop;
|
||||
@@ -260,7 +338,32 @@ static int pptp_xmit(struct ppp_channel
|
||||
ip_select_ident(net, skb, NULL);
|
||||
ip_send_check(iph);
|
||||
|
||||
@ -275,7 +275,7 @@
|
||||
return 1;
|
||||
|
||||
tx_error:
|
||||
@@ -314,6 +417,13 @@ static int pptp_rcv_core(struct sock *sk
|
||||
@@ -318,6 +421,13 @@ static int pptp_rcv_core(struct sock *sk
|
||||
goto drop;
|
||||
|
||||
payload = skb->data + headersize;
|
||||
@ -289,7 +289,7 @@
|
||||
/* check for expected sequence number */
|
||||
if (seq < opt->seq_recv + 1 || WRAPPED(opt->seq_recv, seq)) {
|
||||
if ((payload[0] == PPP_ALLSTATIONS) && (payload[1] == PPP_UI) &&
|
||||
@@ -371,6 +481,7 @@ static int pptp_rcv(struct sk_buff *skb)
|
||||
@@ -375,6 +485,7 @@ static int pptp_rcv(struct sk_buff *skb)
|
||||
if (po) {
|
||||
skb_dst_drop(skb);
|
||||
nf_reset_ct(skb);
|
||||
@ -297,7 +297,7 @@
|
||||
return sk_receive_skb(sk_pppox(po), skb, 0);
|
||||
}
|
||||
drop:
|
||||
@@ -473,7 +584,7 @@ static int pptp_connect(struct socket *s
|
||||
@@ -478,7 +589,7 @@ static int pptp_connect(struct socket *s
|
||||
|
||||
opt->dst_addr = sp->sa_addr.pptp;
|
||||
sk->sk_state |= PPPOX_CONNECTED;
|
||||
@ -306,7 +306,7 @@
|
||||
end:
|
||||
release_sock(sk);
|
||||
return error;
|
||||
@@ -603,9 +714,169 @@ static int pptp_ppp_ioctl(struct ppp_cha
|
||||
@@ -608,9 +719,169 @@ static int pptp_ppp_ioctl(struct ppp_cha
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
#endif /* __NET_IP_TUNNELS_H */
|
||||
--- a/net/ipv6/ip6_tunnel.c
|
||||
+++ b/net/ipv6/ip6_tunnel.c
|
||||
@@ -2411,6 +2411,26 @@ nla_put_failure:
|
||||
@@ -2412,6 +2412,26 @@ nla_put_failure:
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
--- a/net/ipv6/sit.c
|
||||
+++ b/net/ipv6/sit.c
|
||||
@@ -1734,6 +1734,23 @@ nla_put_failure:
|
||||
@@ -1735,6 +1735,23 @@ nla_put_failure:
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/include/linux/ppp_channel.h
|
||||
+++ b/include/linux/ppp_channel.h
|
||||
@@ -61,6 +61,51 @@ struct ppp_channel {
|
||||
@@ -60,6 +60,51 @@ struct ppp_channel {
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
@ -52,7 +52,7 @@
|
||||
/* Called by the channel when it can send some more data. */
|
||||
extern void ppp_output_wakeup(struct ppp_channel *);
|
||||
|
||||
@@ -148,5 +193,17 @@ extern void ppp_update_stats(struct net_
|
||||
@@ -147,5 +192,17 @@ extern void ppp_update_stats(struct net_
|
||||
* that ppp_unregister_channel returns.
|
||||
*/
|
||||
|
||||
@ -147,9 +147,9 @@
|
||||
- po->chan.ops = &pppol2tp_chan_ops;
|
||||
+ po->chan.ops = (struct ppp_channel_ops *)&pppol2tp_chan_ops.ops;
|
||||
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
||||
po->chan.direct_xmit = true;
|
||||
|
||||
error = ppp_register_net_channel(sock_net(sk), &po->chan);
|
||||
@@ -1720,6 +1735,109 @@ static void __exit pppol2tp_exit(void)
|
||||
@@ -1721,6 +1736,109 @@ static void __exit pppol2tp_exit(void)
|
||||
unregister_pernet_device(&pppol2tp_net_ops);
|
||||
}
|
||||
|
||||
@ -261,7 +261,7 @@
|
||||
|
||||
--- a/drivers/net/ppp/ppp_generic.c
|
||||
+++ b/drivers/net/ppp/ppp_generic.c
|
||||
@@ -3768,6 +3768,32 @@ int ppp_is_multilink(struct net_device *
|
||||
@@ -3777,6 +3777,32 @@ int ppp_is_multilink(struct net_device *
|
||||
}
|
||||
EXPORT_SYMBOL(ppp_is_multilink);
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
/* ppp_channel_get_protocol()
|
||||
* Call this to obtain the underlying protocol of the PPP channel,
|
||||
* e.g. PX_PROTO_OE
|
||||
@@ -3906,6 +3932,59 @@ int ppp_hold_channels(struct net_device
|
||||
@@ -3915,6 +3941,59 @@ int ppp_hold_channels(struct net_device
|
||||
}
|
||||
EXPORT_SYMBOL(ppp_hold_channels);
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/net/ipv6/ip6_tunnel.c
|
||||
+++ b/net/ipv6/ip6_tunnel.c
|
||||
@@ -2417,7 +2417,7 @@ nla_put_failure:
|
||||
@@ -2418,7 +2418,7 @@ nla_put_failure:
|
||||
*/
|
||||
void ip6_update_offload_stats(struct net_device *dev, void *ptr)
|
||||
{
|
||||
@ -11,7 +11,7 @@
|
||||
|
||||
--- a/net/ipv6/sit.c
|
||||
+++ b/net/ipv6/sit.c
|
||||
@@ -1737,7 +1737,7 @@ nla_put_failure:
|
||||
@@ -1738,7 +1738,7 @@ nla_put_failure:
|
||||
/* QCA NSS Clients Support - Start */
|
||||
void ipip6_update_offload_stats(struct net_device *dev, void *ptr)
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/include/linux/if_bridge.h
|
||||
+++ b/include/linux/if_bridge.h
|
||||
@@ -258,4 +258,17 @@ extern br_get_dst_hook_t __rcu *br_get_d
|
||||
@@ -261,4 +261,17 @@ extern br_get_dst_hook_t __rcu *br_get_d
|
||||
extern struct net_device *br_fdb_bridge_dev_get_and_hold(struct net_bridge *br);
|
||||
/* QCA NSS bridge-mgr support - End */
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
* added to the bridge private HW address list and all required ports
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -912,6 +912,7 @@ void br_manage_promisc(struct net_bridge
|
||||
@@ -915,6 +915,7 @@ void br_manage_promisc(struct net_bridge
|
||||
int nbp_backup_change(struct net_bridge_port *p, struct net_device *backup_dev);
|
||||
|
||||
/* br_input.c */
|
||||
@ -47,7 +47,7 @@
|
||||
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
rx_handler_func_t *br_get_rx_handler(const struct net_device *dev);
|
||||
|
||||
@@ -2294,4 +2295,14 @@ struct nd_msg *br_is_nd_neigh_msg(struct
|
||||
@@ -2306,4 +2307,14 @@ struct nd_msg *br_is_nd_neigh_msg(struct
|
||||
bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid);
|
||||
#define __br_get(__hook, __default, __args ...) \
|
||||
(__hook ? (__hook(__args)) : (__default)) /* QCA NSS ECM support */
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <net/ip.h>
|
||||
@@ -657,6 +658,7 @@ static int esp_output(struct xfrm_state
|
||||
@@ -618,6 +619,7 @@ static int esp_output(struct xfrm_state
|
||||
struct ip_esp_hdr *esph;
|
||||
struct crypto_aead *aead;
|
||||
struct esp_info esp;
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
esp.inplace = true;
|
||||
|
||||
@@ -668,6 +670,11 @@ static int esp_output(struct xfrm_state
|
||||
@@ -629,6 +631,11 @@ static int esp_output(struct xfrm_state
|
||||
aead = x->data;
|
||||
alen = crypto_aead_authsize(aead);
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
esp.tfclen = 0;
|
||||
if (x->tfcpad) {
|
||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||
@@ -888,6 +895,7 @@ static int esp_input(struct xfrm_state *
|
||||
@@ -849,6 +856,7 @@ static int esp_input(struct xfrm_state *
|
||||
u8 *iv;
|
||||
struct scatterlist *sg;
|
||||
int err = -EINVAL;
|
||||
@ -61,7 +61,7 @@
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
||||
goto out;
|
||||
@@ -895,6 +903,12 @@ static int esp_input(struct xfrm_state *
|
||||
@@ -856,6 +864,12 @@ static int esp_input(struct xfrm_state *
|
||||
if (elen <= 0)
|
||||
goto out;
|
||||
|
||||
@ -84,7 +84,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/module.h>
|
||||
#include <net/ip.h>
|
||||
@@ -689,6 +690,7 @@ static int esp6_output(struct xfrm_state
|
||||
@@ -650,6 +651,7 @@ static int esp6_output(struct xfrm_state
|
||||
struct ip_esp_hdr *esph;
|
||||
struct crypto_aead *aead;
|
||||
struct esp_info esp;
|
||||
@ -92,7 +92,7 @@
|
||||
|
||||
esp.inplace = true;
|
||||
|
||||
@@ -700,6 +702,11 @@ static int esp6_output(struct xfrm_state
|
||||
@@ -661,6 +663,11 @@ static int esp6_output(struct xfrm_state
|
||||
aead = x->data;
|
||||
alen = crypto_aead_authsize(aead);
|
||||
|
||||
@ -104,7 +104,7 @@
|
||||
esp.tfclen = 0;
|
||||
if (x->tfcpad) {
|
||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||
@@ -926,6 +933,7 @@ static int esp6_input(struct xfrm_state
|
||||
@@ -887,6 +894,7 @@ static int esp6_input(struct xfrm_state
|
||||
__be32 *seqhi;
|
||||
u8 *iv;
|
||||
struct scatterlist *sg;
|
||||
@ -112,7 +112,7 @@
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {
|
||||
ret = -EINVAL;
|
||||
@@ -937,6 +945,12 @@ static int esp6_input(struct xfrm_state
|
||||
@@ -898,6 +906,12 @@ static int esp6_input(struct xfrm_state
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
|
||||
--- a/include/linux/if_bridge.h
|
||||
+++ b/include/linux/if_bridge.h
|
||||
@@ -128,6 +128,12 @@ int br_vlan_get_info_rcu(const struct ne
|
||||
@@ -131,6 +131,12 @@ int br_vlan_get_info_rcu(const struct ne
|
||||
bool br_mst_enabled(const struct net_device *dev);
|
||||
int br_mst_get_info(const struct net_device *dev, u16 msti, unsigned long *vids);
|
||||
int br_mst_get_state(const struct net_device *dev, u16 msti, u8 *state);
|
||||
@ -45,7 +45,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
#else
|
||||
static inline bool br_vlan_enabled(const struct net_device *dev)
|
||||
{
|
||||
@@ -149,8 +155,27 @@ static inline int br_vlan_get_pvid_rcu(c
|
||||
@@ -152,8 +158,27 @@ static inline int br_vlan_get_pvid_rcu(c
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
if (err)
|
||||
--- a/net/bridge/br_if.c
|
||||
+++ b/net/bridge/br_if.c
|
||||
@@ -800,9 +800,12 @@ struct net_device *br_port_dev_get(struc
|
||||
@@ -822,9 +822,12 @@ struct net_device *br_port_dev_get(struc
|
||||
struct sk_buff *skb,
|
||||
unsigned int cookie)
|
||||
{
|
||||
@ -103,7 +103,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
|
||||
/* Is this a bridge? */
|
||||
if (!(dev->priv_flags & IFF_EBRIDGE))
|
||||
@@ -831,14 +834,20 @@ struct net_device *br_port_dev_get(struc
|
||||
@@ -853,14 +856,20 @@ struct net_device *br_port_dev_get(struc
|
||||
* determine the port to use - fall back to using FDB
|
||||
*/
|
||||
|
||||
@ -128,7 +128,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
return netdev;
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -1587,6 +1587,7 @@ void br_vlan_fill_forward_path_pvid(stru
|
||||
@@ -1596,6 +1596,7 @@ void br_vlan_fill_forward_path_pvid(stru
|
||||
int br_vlan_fill_forward_path_mode(struct net_bridge *br,
|
||||
struct net_bridge_port *dst,
|
||||
struct net_device_path *path);
|
||||
@ -138,7 +138,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
const struct net_bridge *br)
|
||||
--- a/net/bridge/br_vlan.c
|
||||
+++ b/net/bridge/br_vlan.c
|
||||
@@ -933,8 +933,190 @@ int br_vlan_get_proto(const struct net_d
|
||||
@@ -935,8 +935,190 @@ int br_vlan_get_proto(const struct net_d
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(br_vlan_get_proto);
|
||||
|
||||
@ -330,7 +330,7 @@ Signed-off-by: Vishnu Vardhan Bantanahal <quic_vishvard@quicinc.com>
|
||||
{
|
||||
struct switchdev_attr attr = {
|
||||
.orig_dev = br->dev,
|
||||
@@ -1068,7 +1250,7 @@ static bool vlan_default_pvid(struct net
|
||||
@@ -1070,7 +1252,7 @@ static bool vlan_default_pvid(struct net
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas@8devices.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -834,6 +834,102 @@
|
||||
@@ -844,6 +844,102 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ Signed-off-by: Mantas Pucka <mantas@8devices.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -1186,6 +1186,7 @@
|
||||
@@ -1196,6 +1196,7 @@
|
||||
|
||||
wcss_smp2p_out: master-kernel {
|
||||
qcom,entry-name = "master-kernel";
|
||||
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Mantas Pucka <mantas@8devices.com>
|
||||
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -955,8 +955,8 @@
|
||||
@@ -965,8 +965,8 @@
|
||||
"wcss_reset",
|
||||
"wcss_q6_reset";
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi
|
||||
@@ -15,7 +15,7 @@
|
||||
@@ -16,7 +16,7 @@
|
||||
#size-cells = <2>;
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user