kernel: bump 6.1 to 6.1.80

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.80

Manually rebased:
	generic/hack-6.1/650-netfilter-add-xt_FLOWOFFLOAD-target.patch[1]

All other patches automatically rebased.

1. Acknowledgement to @heheb and @DragonBluep. Upstream commit for ref: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.1.80&id=9c5662e95a8dcc232c3ef4deb21033badcd260f6

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
This commit is contained in:
John Audia 2024-03-01 16:08:40 -05:00 committed by Hauke Mehrtens
parent bd6b37f463
commit 13cdc8955c
27 changed files with 67 additions and 64 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-6.1 = .79
LINUX_KERNEL_HASH-6.1.79 = faa49ca22fb55ed4d5ca2a55e07dd10e4e171cfc3b92568a631453cd2068b39b
LINUX_VERSION-6.1 = .80
LINUX_KERNEL_HASH-6.1.80 = 568ecaaebb8b87c7c8246bba67bc83402972bf34f5811651a2d3cd548ff7b671

View File

@ -312,7 +312,7 @@ SVN-Revision: 35130
case IPV6_2292HOPOPTS:
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -1003,7 +1003,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
@@ -1013,7 +1013,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
goto drop;
}

View File

@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -1426,6 +1426,7 @@ static bool pl011_tx_char(struct uart_am
@@ -1456,6 +1456,7 @@ static bool pl011_tx_char(struct uart_am
return false; /* unable to transmit character */
pl011_write(c, uap, REG_DR);

View File

@ -80,7 +80,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
}
/*********************************
@@ -1496,7 +1512,6 @@ static int __init zswap_debugfs_init(voi
@@ -1498,7 +1514,6 @@ static int __init zswap_debugfs_init(voi
**********************************/
static int __init init_zswap(void)
{
@ -88,7 +88,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
int ret;
zswap_init_started = true;
@@ -1520,33 +1535,23 @@ static int __init init_zswap(void)
@@ -1522,33 +1537,23 @@ static int __init init_zswap(void)
if (ret)
goto hp_fail;

View File

@ -96,7 +96,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
}
static int goodix_check_cfg_8(struct goodix_ts_data *ts, const u8 *cfg, int len)
@@ -1425,6 +1478,11 @@ static void goodix_ts_remove(struct i2c_
@@ -1426,6 +1479,11 @@ static void goodix_ts_remove(struct i2c_
{
struct goodix_ts_data *ts = i2c_get_clientdata(client);
@ -108,7 +108,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
if (ts->load_cfg_from_disk)
wait_for_completion(&ts->firmware_loading_complete);
}
@@ -1440,7 +1498,7 @@ static int __maybe_unused goodix_suspend
@@ -1441,7 +1499,7 @@ static int __maybe_unused goodix_suspend
/* We need gpio pins to suspend/resume */
if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) {
@ -117,7 +117,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
return 0;
}
@@ -1484,7 +1542,7 @@ static int __maybe_unused goodix_resume(
@@ -1485,7 +1543,7 @@ static int __maybe_unused goodix_resume(
int error;
if (ts->irq_pin_access_method == IRQ_PIN_ACCESS_NONE) {

View File

@ -19,7 +19,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/input/touchscreen/goodix.c
+++ b/drivers/input/touchscreen/goodix.c
@@ -1211,7 +1211,10 @@ static int goodix_configure_dev(struct g
@@ -1212,7 +1212,10 @@ static int goodix_configure_dev(struct g
return -ENOMEM;
}

View File

@ -11,7 +11,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -201,7 +201,9 @@ static struct irq_chip plic_chip = {
@@ -207,7 +207,9 @@ static struct irq_chip plic_chip = {
.irq_set_affinity = plic_set_affinity,
#endif
.irq_set_type = plic_irq_set_type,

View File

@ -10,7 +10,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
--- a/drivers/irqchip/irq-sifive-plic.c
+++ b/drivers/irqchip/irq-sifive-plic.c
@@ -187,7 +187,8 @@ static struct irq_chip plic_edge_chip =
@@ -193,7 +193,8 @@ static struct irq_chip plic_edge_chip =
.irq_set_affinity = plic_set_affinity,
#endif
.irq_set_type = plic_irq_set_type,
@ -20,7 +20,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
};
static struct irq_chip plic_chip = {
@@ -201,7 +202,8 @@ static struct irq_chip plic_chip = {
@@ -207,7 +208,8 @@ static struct irq_chip plic_chip = {
.irq_set_affinity = plic_set_affinity,
#endif
.irq_set_type = plic_irq_set_type,

View File

@ -13,7 +13,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
--- a/sound/soc/sunxi/sun4i-spdif.c
+++ b/sound/soc/sunxi/sun4i-spdif.c
@@ -705,10 +705,14 @@ err_unregister:
@@ -710,10 +710,14 @@ err_unregister:
static int sun4i_spdif_remove(struct platform_device *pdev)
{

View File

@ -52,7 +52,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
};
static const struct of_device_id sun4i_spdif_of_match[] = {
@@ -667,17 +662,12 @@ static int sun4i_spdif_probe(struct plat
@@ -672,17 +667,12 @@ static int sun4i_spdif_probe(struct plat
platform_set_drvdata(pdev, host);

View File

@ -75,7 +75,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
.reg_dac_txdata = SUN8I_SPDIF_TXFIFO,
.val_fctl_ftx = SUN50I_H6_SPDIF_FCTL_FTX,
};
@@ -586,7 +592,7 @@ static int sun4i_spdif_runtime_suspend(s
@@ -591,7 +597,7 @@ static int sun4i_spdif_runtime_suspend(s
{
struct sun4i_spdif_dev *host = dev_get_drvdata(dev);
@ -84,7 +84,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
clk_disable_unprepare(host->apb_clk);
return 0;
@@ -597,12 +603,12 @@ static int sun4i_spdif_runtime_resume(st
@@ -602,12 +608,12 @@ static int sun4i_spdif_runtime_resume(st
struct sun4i_spdif_dev *host = dev_get_drvdata(dev);
int ret;
@ -99,7 +99,7 @@ Signed-off-by: Samuel Holland <samuel@sholland.org>
return ret;
}
@@ -650,10 +656,10 @@ static int sun4i_spdif_probe(struct plat
@@ -655,10 +661,10 @@ static int sun4i_spdif_probe(struct plat
return PTR_ERR(host->apb_clk);
}

View File

@ -87,7 +87,7 @@ Signed-off-by: T.J. Mercier <tjmercier@google.com>
mark_page_accessed(page);
}
rss[mm_counter(page)]--;
@@ -5199,8 +5198,8 @@ static inline void mm_account_fault(stru
@@ -5219,8 +5218,8 @@ static inline void mm_account_fault(stru
#ifdef CONFIG_LRU_GEN
static void lru_gen_enter_fault(struct vm_area_struct *vma)
{

View File

@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
--- /dev/null
+++ b/net/netfilter/xt_FLOWOFFLOAD.c
@@ -0,0 +1,699 @@
@@ -0,0 +1,702 @@
+/*
+ * Copyright (C) 2018-2021 Felix Fietkau <nbd@nbd.name>
+ *
@ -482,10 +482,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ break;
+ }
+
+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par));
+ if (!other_dst)
+ if (!dst_hold_safe(this_dst))
+ return -ENOENT;
+
+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par));
+ if (!other_dst) {
+ dst_release(this_dst);
+ return -ENOENT;
+ }
+
+ nf_default_forward_path(route, this_dst, dir, devs);
+ nf_default_forward_path(route, other_dst, !dir, devs);
+
@ -560,8 +565,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ if (!flow)
+ goto err_flow_alloc;
+
+ if (flow_offload_route_init(flow, &route) < 0)
+ goto err_flow_add;
+ flow_offload_route_init(flow, &route);
+
+ if (tcph) {
+ ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
@ -581,13 +585,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ xt_flowoffload_check_device(table, devs[0]);
+ xt_flowoffload_check_device(table, devs[1]);
+
+ dst_release(route.tuple[!dir].dst);
+
+ return XT_CONTINUE;
+
+err_flow_add:
+ flow_offload_free(flow);
+err_flow_alloc:
+ dst_release(route.tuple[dir].dst);
+ dst_release(route.tuple[!dir].dst);
+err_flow_route:
+ clear_bit(IPS_OFFLOAD_BIT, &ct->status);
@ -746,7 +749,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/netfilter/nf_flow_table.h>
#include <net/netfilter/nf_conntrack.h>
#include <net/netfilter/nf_conntrack_core.h>
@@ -381,8 +380,7 @@ flow_offload_lookup(struct nf_flowtable
@@ -374,8 +373,7 @@ flow_offload_lookup(struct nf_flowtable
}
EXPORT_SYMBOL_GPL(flow_offload_lookup);
@ -756,7 +759,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void (*iter)(struct nf_flowtable *flowtable,
struct flow_offload *flow, void *data),
void *data)
@@ -443,6 +441,7 @@ static void nf_flow_offload_gc_step(stru
@@ -436,6 +434,7 @@ static void nf_flow_offload_gc_step(stru
nf_flow_offload_stats(flow_table, flow);
}
}

View File

@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c
@@ -666,6 +666,23 @@ static struct pernet_operations nf_flow_
@@ -659,6 +659,23 @@ static struct pernet_operations nf_flow_
.exit_batch = nf_flow_table_pernet_exit,
};
@ -34,7 +34,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static int __init nf_flow_table_module_init(void)
{
int ret;
@@ -678,8 +695,14 @@ static int __init nf_flow_table_module_i
@@ -671,8 +688,14 @@ static int __init nf_flow_table_module_i
if (ret)
goto out_offload;
@ -49,7 +49,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
out_offload:
unregister_pernet_subsys(&nf_flow_table_net_ops);
return ret;
@@ -687,6 +710,7 @@ out_offload:
@@ -680,6 +703,7 @@ out_offload:
static void __exit nf_flow_table_module_exit(void)
{
@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
}
--- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c
@@ -475,47 +475,14 @@ static struct nft_expr_type nft_flow_off
@@ -479,47 +479,14 @@ static struct nft_expr_type nft_flow_off
.owner = THIS_MODULE,
};

View File

@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -7908,7 +7908,7 @@ static int nft_register_flowtable_net_ho
@@ -7911,7 +7911,7 @@ static int nft_register_flowtable_net_ho
err = flowtable->data.type->setup(&flowtable->data,
hook->ops.dev,
FLOW_BLOCK_BIND);

View File

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c
@@ -357,6 +357,7 @@ static void nft_flow_offload_eval(const
@@ -361,6 +361,7 @@ static void nft_flow_offload_eval(const
ct->proto.tcp.seen[1].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
}

View File

@ -39,7 +39,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
#define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12)
@@ -849,6 +858,48 @@ static irqreturn_t rtl9000a_handle_inter
@@ -851,6 +860,48 @@ static irqreturn_t rtl9000a_handle_inter
return IRQ_HANDLED;
}
@ -88,7 +88,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
static struct phy_driver realtek_drvs[] = {
{
PHY_ID_MATCH_EXACT(0x00008201),
@@ -1001,6 +1052,7 @@ static struct phy_driver realtek_drvs[]
@@ -1003,6 +1054,7 @@ static struct phy_driver realtek_drvs[]
PHY_ID_MATCH_EXACT(0x001cc849),
.name = "RTL8221B-VB-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features,
@ -96,7 +96,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
.config_aneg = rtl822x_config_aneg,
.read_status = rtl822x_read_status,
.suspend = genphy_suspend,
@@ -1012,6 +1064,7 @@ static struct phy_driver realtek_drvs[]
@@ -1014,6 +1066,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8221B-VM-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,

View File

@ -16,7 +16,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -684,6 +684,25 @@ static int rtl822x_config_aneg(struct ph
@@ -686,6 +686,25 @@ static int rtl822x_config_aneg(struct ph
return __genphy_config_aneg(phydev, ret);
}
@ -42,7 +42,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
static int rtl822x_read_status(struct phy_device *phydev)
{
int ret;
@@ -702,11 +721,14 @@ static int rtl822x_read_status(struct ph
@@ -704,11 +723,14 @@ static int rtl822x_read_status(struct ph
phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL);
}

View File

@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -1038,6 +1038,7 @@ static struct phy_driver realtek_drvs[]
@@ -1040,6 +1040,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page,
.read_mmd = rtl822x_read_mmd,
.write_mmd = rtl822x_write_mmd,
@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, {
PHY_ID_MATCH_EXACT(0x001cc840),
.name = "RTL8226B_RTL8221B 2.5Gbps PHY",
@@ -1050,6 +1051,7 @@ static struct phy_driver realtek_drvs[]
@@ -1052,6 +1053,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page,
.read_mmd = rtl822x_read_mmd,
.write_mmd = rtl822x_write_mmd,
@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, {
PHY_ID_MATCH_EXACT(0x001cc838),
.name = "RTL8226-CG 2.5Gbps PHY",
@@ -1060,6 +1062,7 @@ static struct phy_driver realtek_drvs[]
@@ -1062,6 +1064,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, {
PHY_ID_MATCH_EXACT(0x001cc848),
.name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
@@ -1070,6 +1073,7 @@ static struct phy_driver realtek_drvs[]
@@ -1072,6 +1075,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, {
PHY_ID_MATCH_EXACT(0x001cc849),
.name = "RTL8221B-VB-CG 2.5Gbps PHY",
@@ -1081,6 +1085,7 @@ static struct phy_driver realtek_drvs[]
@@ -1083,6 +1087,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,
@ -55,7 +55,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, {
PHY_ID_MATCH_EXACT(0x001cc84a),
.name = "RTL8221B-VM-CG 2.5Gbps PHY",
@@ -1092,6 +1097,7 @@ static struct phy_driver realtek_drvs[]
@@ -1094,6 +1099,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume,
.read_page = rtl821x_read_page,
.write_page = rtl821x_write_page,

View File

@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -883,6 +883,7 @@ static irqreturn_t rtl9000a_handle_inter
@@ -885,6 +885,7 @@ static irqreturn_t rtl9000a_handle_inter
static int rtl8221b_config_init(struct phy_device *phydev)
{
u16 option_mode;
@ -27,7 +27,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
switch (phydev->interface) {
case PHY_INTERFACE_MODE_2500BASEX:
@@ -919,6 +920,13 @@ static int rtl8221b_config_init(struct p
@@ -921,6 +922,13 @@ static int rtl8221b_config_init(struct p
break;
}

View File

@ -18,7 +18,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -735,9 +735,11 @@ static bool rtlgen_supports_2_5gbps(stru
@@ -737,9 +737,11 @@ static bool rtlgen_supports_2_5gbps(stru
{
int val;

View File

@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#define RTL9000A_GINMR 0x14
#define RTL9000A_GINMR_LINK_STATUS BIT(4)
@@ -669,14 +665,11 @@ static int rtl822x_config_aneg(struct ph
@@ -671,14 +667,11 @@ static int rtl822x_config_aneg(struct ph
int ret = 0;
if (phydev->autoneg == AUTONEG_ENABLE) {
@ -44,7 +44,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
if (ret < 0)
return ret;
}
@@ -713,12 +706,7 @@ static int rtl822x_read_status(struct ph
@@ -715,12 +708,7 @@ static int rtl822x_read_status(struct ph
if (lpadv < 0)
return lpadv;

View File

@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -706,6 +706,10 @@ static int rtl822x_read_status(struct ph
@@ -708,6 +708,10 @@ static int rtl822x_read_status(struct ph
if (lpadv < 0)
return lpadv;

View File

@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12)
@@ -748,6 +752,25 @@ static int rtl8226_match_phy_device(stru
@@ -750,6 +754,25 @@ static int rtl8226_match_phy_device(stru
rtlgen_supports_2_5gbps(phydev);
}
@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int rtlgen_resume(struct phy_device *phydev)
{
int ret = genphy_resume(phydev);
@@ -1059,6 +1082,7 @@ static struct phy_driver realtek_drvs[]
@@ -1061,6 +1084,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8226-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,
@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status,
.suspend = genphy_suspend,
.resume = rtlgen_resume,
@@ -1070,6 +1094,7 @@ static struct phy_driver realtek_drvs[]
@@ -1072,6 +1096,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,
@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status,
.suspend = genphy_suspend,
.resume = rtlgen_resume,
@@ -1082,6 +1107,7 @@ static struct phy_driver realtek_drvs[]
@@ -1084,6 +1109,7 @@ static struct phy_driver realtek_drvs[]
.get_features = rtl822x_get_features,
.config_init = rtl8221b_config_init,
.config_aneg = rtl822x_config_aneg,
@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status,
.suspend = genphy_suspend,
.resume = rtlgen_resume,
@@ -1094,6 +1120,7 @@ static struct phy_driver realtek_drvs[]
@@ -1096,6 +1122,7 @@ static struct phy_driver realtek_drvs[]
.get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg,
.config_init = rtl8221b_config_init,

View File

@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -752,6 +752,38 @@ static int rtl8226_match_phy_device(stru
@@ -754,6 +754,38 @@ static int rtl8226_match_phy_device(stru
rtlgen_supports_2_5gbps(phydev);
}
@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int rtl822x_probe(struct phy_device *phydev)
{
struct device *dev = &phydev->mdio.dev;
@@ -1102,7 +1134,7 @@ static struct phy_driver realtek_drvs[]
@@ -1104,7 +1136,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page,
.soft_reset = genphy_soft_reset,
}, {

View File

@ -1,6 +1,6 @@
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -979,6 +979,51 @@ static int rtl8221b_config_init(struct p
@@ -981,6 +981,51 @@ static int rtl8221b_config_init(struct p
return 0;
}
@ -52,7 +52,7 @@
static struct phy_driver realtek_drvs[] = {
{
PHY_ID_MATCH_EXACT(0x00008201),
@@ -1139,6 +1184,8 @@ static struct phy_driver realtek_drvs[]
@@ -1141,6 +1186,8 @@ static struct phy_driver realtek_drvs[]
.get_features = rtl822x_get_features,
.config_init = rtl8221b_config_init,
.config_aneg = rtl822x_config_aneg,

View File

@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @qc: Metadata associated with the taskfile to build
@@ -4712,6 +4725,9 @@ void __ata_qc_complete(struct ata_queued
@@ -4716,6 +4729,9 @@ void __ata_qc_complete(struct ata_queued
link->active_tag = ATA_TAG_POISON;
ap->nr_active_links--;
}
@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/* clear exclusive status */
if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
@@ -5434,6 +5450,9 @@ struct ata_port *ata_port_alloc(struct a
@@ -5438,6 +5454,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap);
return ap;
@@ -5469,6 +5488,12 @@ static void ata_host_release(struct kref
@@ -5473,6 +5492,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link);
kfree(ap->slave_link);
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap);
host->ports[i] = NULL;
}
@@ -5871,7 +5896,23 @@ int ata_host_register(struct ata_host *h
@@ -5875,7 +5900,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}