Skip to content

Commit d5f772d

Browse files
[bot] AutoMerging: merge all upstream's changes:
* https://github.com/coolsnowwolf/lede: Revert "uboot-rockchip:doornet2 detaches from evb rk (coolsnowwolf#9812)" uboot-rockchip:doornet2 detaches from evb rk (coolsnowwolf#9812) generic: fix swconfig_leds.c in 5.18 kernel: bump 5.10 to 5.10.131 (coolsnowwolf#9807) kernel: backport upstream mtk_eth_soc patches (coolsnowwolf#9809)
2 parents 3bd7c2b + 7af074f commit d5f772d

File tree

44 files changed

+3241
-53
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3241
-53
lines changed

include/kernel-5.10

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
LINUX_VERSION-5.10 = .127
2-
LINUX_KERNEL_HASH-5.10.127 = 419233ee0b1ee1dc2be8abf1b241545d10dad19d95f237180d6ccdc0cd221580
1+
LINUX_VERSION-5.10 = .131
2+
LINUX_KERNEL_HASH-5.10.131 = 8bc441442c16c330a7148fe3cca9edcd98bc0fc9f68304633c7eb641770d21ce

target/linux/generic/backport-5.10/610-v5.13-10-netfilter-nftables-update-table-flags-from-the-commi.patch

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Signed-off-by: Pablo Neira Ayuso <[email protected]>
7070
nft_trans_table_update(trans) = true;
7171
list_add_tail(&trans->list, &ctx->net->nft.commit_list);
7272
return 0;
73-
@@ -7916,11 +7920,10 @@ static int nf_tables_commit(struct net *
73+
@@ -7923,11 +7927,10 @@ static int nf_tables_commit(struct net *
7474
switch (trans->msg_type) {
7575
case NFT_MSG_NEWTABLE:
7676
if (nft_trans_table_update(trans)) {
@@ -86,7 +86,7 @@ Signed-off-by: Pablo Neira Ayuso <[email protected]>
8686
} else {
8787
nft_clear(net, trans->ctx.table);
8888
}
89-
@@ -8133,11 +8136,9 @@ static int __nf_tables_abort(struct net
89+
@@ -8140,11 +8143,9 @@ static int __nf_tables_abort(struct net
9090
switch (trans->msg_type) {
9191
case NFT_MSG_NEWTABLE:
9292
if (nft_trans_table_update(trans)) {

target/linux/generic/pending-5.15/701-03-net-ethernet-mtk_eth_soc-implement-flow-offloading-t.patch target/linux/generic/backport-5.15/702-v5.19-03-net-ethernet-mtk_eth_soc-implement-flow-offloading-t.patch

+4-4
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
166166
u16 addr_type = 0;
167167
u32 timestamp;
168168
u8 l4proto = 0;
169-
@@ -329,10 +372,14 @@ mtk_flow_offload_replace(struct mtk_eth
169+
@@ -326,10 +369,14 @@ mtk_flow_offload_replace(struct mtk_eth
170170
if (data.pppoe.num == 1)
171171
mtk_foe_entry_set_pppoe(&foe, data.pppoe.sid);
172172

@@ -182,15 +182,15 @@ Signed-off-by: Felix Fietkau <[email protected]>
182182
entry = kzalloc(sizeof(*entry), GFP_KERNEL);
183183
if (!entry)
184184
return -ENOMEM;
185-
@@ -346,6 +393,7 @@ mtk_flow_offload_replace(struct mtk_eth
185+
@@ -343,6 +390,7 @@ mtk_flow_offload_replace(struct mtk_eth
186186
}
187187

188188
entry->hash = hash;
189189
+ entry->wed_index = wed_index;
190190
err = rhashtable_insert_fast(&eth->flow_table, &entry->node,
191191
mtk_flow_ht_params);
192192
if (err < 0)
193-
@@ -356,6 +404,8 @@ clear_flow:
193+
@@ -353,6 +401,8 @@ clear_flow:
194194
mtk_foe_entry_clear(&eth->ppe, hash);
195195
free:
196196
kfree(entry);
@@ -199,7 +199,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
199199
return err;
200200
}
201201

202-
@@ -372,6 +422,8 @@ mtk_flow_offload_destroy(struct mtk_eth
202+
@@ -369,6 +419,8 @@ mtk_flow_offload_destroy(struct mtk_eth
203203
mtk_foe_entry_clear(&eth->ppe, entry->hash);
204204
rhashtable_remove_fast(&eth->flow_table, &entry->node,
205205
mtk_flow_ht_params);

target/linux/generic/pending-5.15/701-05-net-ethernet-mtk_eth_soc-add-ipv6-flow-offload-suppo.patch target/linux/generic/backport-5.15/702-v5.19-05-net-ethernet-mtk_eth_soc-add-ipv6-flow-offload-suppo.patch

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
4949
static void
5050
mtk_flow_offload_mangle_eth(const struct flow_action_entry *act, void *eth)
5151
{
52-
@@ -299,6 +313,9 @@ mtk_flow_offload_replace(struct mtk_eth
52+
@@ -296,6 +310,9 @@ mtk_flow_offload_replace(struct mtk_eth
5353
case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
5454
offload_type = MTK_PPE_PKT_TYPE_IPV4_HNAPT;
5555
break;
@@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
5959
default:
6060
return -EOPNOTSUPP;
6161
}
62-
@@ -334,6 +351,17 @@ mtk_flow_offload_replace(struct mtk_eth
62+
@@ -331,6 +348,17 @@ mtk_flow_offload_replace(struct mtk_eth
6363
mtk_flow_set_ipv4_addr(&foe, &data, false);
6464
}
6565

target/linux/generic/pending-5.15/701-06-net-ethernet-mtk_eth_soc-support-TC_SETUP_BLOCK-for-.patch target/linux/generic/backport-5.15/702-v5.19-06-net-ethernet-mtk_eth_soc-support-TC_SETUP_BLOCK-for-.patch

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
1010

1111
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
1212
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
13-
@@ -566,10 +566,13 @@ mtk_eth_setup_tc_block(struct net_device
13+
@@ -563,10 +563,13 @@ mtk_eth_setup_tc_block(struct net_device
1414
int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
1515
void *type_data)
1616
{

target/linux/generic/pending-5.15/701-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch target/linux/generic/backport-5.15/702-v5.19-07-net-ethernet-mtk_eth_soc-allocate-struct-mtk_ppe-sep.patch

+6-6
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
103103

104104
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
105105
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
106-
@@ -414,7 +414,7 @@ mtk_flow_offload_replace(struct mtk_eth
106+
@@ -411,7 +411,7 @@ mtk_flow_offload_replace(struct mtk_eth
107107

108108
entry->cookie = f->cookie;
109109
timestamp = mtk_eth_timestamp(eth);
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
112112
if (hash < 0) {
113113
err = hash;
114114
goto free;
115-
@@ -429,7 +429,7 @@ mtk_flow_offload_replace(struct mtk_eth
115+
@@ -426,7 +426,7 @@ mtk_flow_offload_replace(struct mtk_eth
116116

117117
return 0;
118118
clear_flow:
@@ -121,7 +121,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
121121
free:
122122
kfree(entry);
123123
if (wed_index >= 0)
124-
@@ -447,7 +447,7 @@ mtk_flow_offload_destroy(struct mtk_eth
124+
@@ -444,7 +444,7 @@ mtk_flow_offload_destroy(struct mtk_eth
125125
if (!entry)
126126
return -ENOENT;
127127

@@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
130130
rhashtable_remove_fast(&eth->flow_table, &entry->node,
131131
mtk_flow_ht_params);
132132
if (entry->wed_index >= 0)
133-
@@ -469,7 +469,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
133+
@@ -466,7 +466,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
134134
if (!entry)
135135
return -ENOENT;
136136

@@ -139,7 +139,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
139139
if (timestamp < 0)
140140
return -ETIMEDOUT;
141141

142-
@@ -525,7 +525,7 @@ mtk_eth_setup_tc_block(struct net_device
142+
@@ -522,7 +522,7 @@ mtk_eth_setup_tc_block(struct net_device
143143
struct flow_block_cb *block_cb;
144144
flow_setup_cb_t *cb;
145145

@@ -148,7 +148,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
148148
return -EOPNOTSUPP;
149149

150150
if (f->binder_type != FLOW_BLOCK_BINDER_TYPE_CLSACT_INGRESS)
151-
@@ -577,7 +577,7 @@ int mtk_eth_setup_tc(struct net_device *
151+
@@ -574,7 +574,7 @@ int mtk_eth_setup_tc(struct net_device *
152152

153153
int mtk_eth_offload_init(struct mtk_eth *eth)
154154
{

target/linux/generic/pending-5.15/701-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch target/linux/generic/backport-5.15/702-v5.19-08-net-ethernet-mtk_eth_soc-rework-hardware-flow-table-.patch

+4-4
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
360360
int i;
361361

362362
if (rhashtable_lookup(&eth->flow_table, &f->cookie, mtk_flow_ht_params))
363-
@@ -413,23 +398,21 @@ mtk_flow_offload_replace(struct mtk_eth
363+
@@ -410,23 +395,21 @@ mtk_flow_offload_replace(struct mtk_eth
364364
return -ENOMEM;
365365

366366
entry->cookie = f->cookie;
@@ -392,7 +392,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
392392
free:
393393
kfree(entry);
394394
if (wed_index >= 0)
395-
@@ -447,7 +430,7 @@ mtk_flow_offload_destroy(struct mtk_eth
395+
@@ -444,7 +427,7 @@ mtk_flow_offload_destroy(struct mtk_eth
396396
if (!entry)
397397
return -ENOENT;
398398

@@ -401,15 +401,15 @@ Signed-off-by: Felix Fietkau <[email protected]>
401401
rhashtable_remove_fast(&eth->flow_table, &entry->node,
402402
mtk_flow_ht_params);
403403
if (entry->wed_index >= 0)
404-
@@ -461,7 +444,6 @@ static int
404+
@@ -458,7 +441,6 @@ static int
405405
mtk_flow_offload_stats(struct mtk_eth *eth, struct flow_cls_offload *f)
406406
{
407407
struct mtk_flow_entry *entry;
408408
- int timestamp;
409409
u32 idle;
410410

411411
entry = rhashtable_lookup(&eth->flow_table, &f->cookie,
412-
@@ -469,11 +451,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
412+
@@ -466,11 +448,7 @@ mtk_flow_offload_stats(struct mtk_eth *e
413413
if (!entry)
414414
return -ENOENT;
415415

target/linux/generic/pending-5.15/701-10-net-ethernet-mtk_eth_soc-support-creating-mac-addres.patch target/linux/generic/backport-5.15/702-v5.19-10-net-ethernet-mtk_eth_soc-support-creating-mac-addres.patch

+5-5
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
452452
struct {
453453
u16 id;
454454
__be16 proto;
455-
@@ -260,9 +262,45 @@ mtk_flow_offload_replace(struct mtk_eth
455+
@@ -257,9 +259,45 @@ mtk_flow_offload_replace(struct mtk_eth
456456
return -EOPNOTSUPP;
457457
}
458458

@@ -498,7 +498,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
498498
if (act->mangle.htype == FLOW_ACT_MANGLE_HDR_TYPE_ETH)
499499
mtk_flow_offload_mangle_eth(act, &data.eth);
500500
break;
501-
@@ -294,17 +332,6 @@ mtk_flow_offload_replace(struct mtk_eth
501+
@@ -291,17 +329,6 @@ mtk_flow_offload_replace(struct mtk_eth
502502
}
503503
}
504504

@@ -516,7 +516,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
516516
if (!is_valid_ether_addr(data.eth.h_source) ||
517517
!is_valid_ether_addr(data.eth.h_dest))
518518
return -EINVAL;
519-
@@ -318,10 +345,13 @@ mtk_flow_offload_replace(struct mtk_eth
519+
@@ -315,10 +342,13 @@ mtk_flow_offload_replace(struct mtk_eth
520520
if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_PORTS)) {
521521
struct flow_match_ports ports;
522522

@@ -531,7 +531,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
531531
return -EOPNOTSUPP;
532532
}
533533

534-
@@ -351,6 +381,9 @@ mtk_flow_offload_replace(struct mtk_eth
534+
@@ -348,6 +378,9 @@ mtk_flow_offload_replace(struct mtk_eth
535535
if (act->id != FLOW_ACTION_MANGLE)
536536
continue;
537537

@@ -541,7 +541,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
541541
switch (act->mangle.htype) {
542542
case FLOW_ACT_MANGLE_HDR_TYPE_TCP:
543543
case FLOW_ACT_MANGLE_HDR_TYPE_UDP:
544-
@@ -376,6 +409,9 @@ mtk_flow_offload_replace(struct mtk_eth
544+
@@ -373,6 +406,9 @@ mtk_flow_offload_replace(struct mtk_eth
545545
return err;
546546
}
547547

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
From: Felix Fietkau <[email protected]>
2+
Date: Fri, 8 Apr 2022 10:59:45 +0200
3+
Subject: [PATCH] net: ethernet: mtk_eth_soc/wed: fix sparse endian warnings
4+
5+
Descriptor fields are little-endian
6+
7+
Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
8+
Reported-by: kernel test robot <[email protected]>
9+
Signed-off-by: Felix Fietkau <[email protected]>
10+
Signed-off-by: David S. Miller <[email protected]>
11+
---
12+
13+
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
14+
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
15+
@@ -144,16 +144,17 @@ mtk_wed_buffer_alloc(struct mtk_wed_devi
16+
17+
for (s = 0; s < MTK_WED_BUF_PER_PAGE; s++) {
18+
u32 txd_size;
19+
+ u32 ctrl;
20+
21+
txd_size = dev->wlan.init_buf(buf, buf_phys, token++);
22+
23+
- desc->buf0 = buf_phys;
24+
- desc->buf1 = buf_phys + txd_size;
25+
- desc->ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0,
26+
- txd_size) |
27+
- FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1,
28+
- MTK_WED_BUF_SIZE - txd_size) |
29+
- MTK_WDMA_DESC_CTRL_LAST_SEG1;
30+
+ desc->buf0 = cpu_to_le32(buf_phys);
31+
+ desc->buf1 = cpu_to_le32(buf_phys + txd_size);
32+
+ ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0, txd_size) |
33+
+ FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1,
34+
+ MTK_WED_BUF_SIZE - txd_size) |
35+
+ MTK_WDMA_DESC_CTRL_LAST_SEG1;
36+
+ desc->ctrl = cpu_to_le32(ctrl);
37+
desc->info = 0;
38+
desc++;
39+
40+
@@ -184,12 +185,14 @@ mtk_wed_free_buffer(struct mtk_wed_devic
41+
42+
for (i = 0, page_idx = 0; i < dev->buf_ring.size; i += MTK_WED_BUF_PER_PAGE) {
43+
void *page = page_list[page_idx++];
44+
+ dma_addr_t buf_addr;
45+
46+
if (!page)
47+
break;
48+
49+
- dma_unmap_page(dev->hw->dev, desc[i].buf0,
50+
- PAGE_SIZE, DMA_BIDIRECTIONAL);
51+
+ buf_addr = le32_to_cpu(desc[i].buf0);
52+
+ dma_unmap_page(dev->hw->dev, buf_addr, PAGE_SIZE,
53+
+ DMA_BIDIRECTIONAL);
54+
__free_page(page);
55+
}
56+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
From: Yang Yingliang <[email protected]>
2+
Date: Fri, 8 Apr 2022 11:22:46 +0800
3+
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix return value check in
4+
mtk_wed_add_hw()
5+
6+
If syscon_regmap_lookup_by_phandle() fails, it never return NULL pointer,
7+
change the check to IS_ERR().
8+
9+
Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
10+
Reported-by: Hulk Robot <[email protected]>
11+
Signed-off-by: Yang Yingliang <[email protected]>
12+
Signed-off-by: David S. Miller <[email protected]>
13+
---
14+
15+
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
16+
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
17+
@@ -816,7 +816,7 @@ void mtk_wed_add_hw(struct device_node *
18+
return;
19+
20+
regs = syscon_regmap_lookup_by_phandle(np, NULL);
21+
- if (!regs)
22+
+ if (IS_ERR(regs))
23+
return;
24+
25+
rcu_assign_pointer(mtk_soc_wed_ops, &wed_ops);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
From: Lorenzo Bianconi <[email protected]>
2+
Date: Mon, 11 Apr 2022 12:13:25 +0200
3+
Subject: [PATCH] net: ethernet: mtk_eth_soc: use standard property for
4+
cci-control-port
5+
6+
Rely on standard cci-control-port property to identify CCI port
7+
reference.
8+
Update mt7622 dts binding.
9+
10+
Signed-off-by: Lorenzo Bianconi <[email protected]>
11+
Signed-off-by: David S. Miller <[email protected]>
12+
---
13+
14+
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
15+
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
16+
@@ -962,7 +962,7 @@
17+
power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
18+
mediatek,ethsys = <&ethsys>;
19+
mediatek,sgmiisys = <&sgmiisys>;
20+
- mediatek,cci-control = <&cci_control2>;
21+
+ cci-control-port = <&cci_control2>;
22+
mediatek,wed = <&wed0>, <&wed1>;
23+
mediatek,pcie-mirror = <&pcie_mirror>;
24+
mediatek,hifsys = <&hifsys>;
25+
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
26+
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
27+
@@ -3185,7 +3185,7 @@ static int mtk_probe(struct platform_dev
28+
struct regmap *cci;
29+
30+
cci = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
31+
- "mediatek,cci-control");
32+
+ "cci-control-port");
33+
/* enable CPU/bus coherency */
34+
if (!IS_ERR(cci))
35+
regmap_write(cci, 0, 3);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
From: Dan Carpenter <[email protected]>
2+
Date: Tue, 12 Apr 2022 12:24:19 +0300
3+
Subject: [PATCH] net: ethernet: mtk_eth_soc: use after free in
4+
__mtk_ppe_check_skb()
5+
6+
The __mtk_foe_entry_clear() function frees "entry" so we have to use
7+
the _safe() version of hlist_for_each_entry() to prevent a use after
8+
free.
9+
10+
Fixes: 33fc42de3327 ("net: ethernet: mtk_eth_soc: support creating mac address based offload entries")
11+
Signed-off-by: Dan Carpenter <[email protected]>
12+
Signed-off-by: David S. Miller <[email protected]>
13+
---
14+
15+
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c
16+
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
17+
@@ -600,6 +600,7 @@ void __mtk_ppe_check_skb(struct mtk_ppe
18+
struct mtk_foe_entry *hwe = &ppe->foe_table[hash];
19+
struct mtk_flow_entry *entry;
20+
struct mtk_foe_bridge key = {};
21+
+ struct hlist_node *n;
22+
struct ethhdr *eh;
23+
bool found = false;
24+
u8 *tag;
25+
@@ -609,7 +610,7 @@ void __mtk_ppe_check_skb(struct mtk_ppe
26+
if (FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) == MTK_FOE_STATE_BIND)
27+
goto out;
28+
29+
- hlist_for_each_entry(entry, head, list) {
30+
+ hlist_for_each_entry_safe(entry, n, head, list) {
31+
if (entry->type == MTK_FLOW_TYPE_L2_SUBFLOW) {
32+
if (unlikely(FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) ==
33+
MTK_FOE_STATE_BIND))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
From: Dan Carpenter <[email protected]>
2+
Date: Thu, 21 Apr 2022 18:49:02 +0300
3+
Subject: [PATCH] net: ethernet: mtk_eth_soc: add check for allocation failure
4+
5+
Check if the kzalloc() failed.
6+
7+
Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
8+
Signed-off-by: Dan Carpenter <[email protected]>
9+
Signed-off-by: David S. Miller <[email protected]>
10+
---
11+
12+
--- a/drivers/net/ethernet/mediatek/mtk_wed.c
13+
+++ b/drivers/net/ethernet/mediatek/mtk_wed.c
14+
@@ -827,6 +827,8 @@ void mtk_wed_add_hw(struct device_node *
15+
goto unlock;
16+
17+
hw = kzalloc(sizeof(*hw), GFP_KERNEL);
18+
+ if (!hw)
19+
+ goto unlock;
20+
hw->node = np;
21+
hw->regs = regs;
22+
hw->eth = eth;

0 commit comments

Comments
 (0)