Skip to content

Commit fbd0141

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "The iwlwifi firmware compat fix is in here as well as some other stuff: 1) Fix request socket leak introduced by BPF deadlock fix, from Eric Dumazet. 2) Fix VLAN handling with TXQs in mac80211, from Johannes Berg. 3) Missing __qdisc_drop conversions in prio and qfq schedulers, from Gao Feng. 4) Use after free in netlink nlk groups handling, from Xin Long. 5) Handle MTU update properly in ipv6 gre tunnels, from Xin Long. 6) Fix leak of ipv6 fib tables on netns teardown, from Sabrina Dubroca with follow-on fix from Eric Dumazet. 7) Need RCU and preemption disabled during generic XDP data patch, from John Fastabend" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (54 commits) bpf: make error reporting in bpf_warn_invalid_xdp_action more clear Revert "mdio_bus: Remove unneeded gpiod NULL check" bpf: devmap, use cond_resched instead of cpu_relax bpf: add support for sockmap detach programs net: rcu lock and preempt disable missing around generic xdp bpf: don't select potentially stale ri->map from buggy xdp progs net: tulip: Constify tulip_tbl net: ethernet: ti: netcp_core: no need in netif_napi_del davicom: Display proper debug level up to 6 net: phy: sfp: rename dt properties to match the binding dt-binding: net: sfp binding documentation dt-bindings: add SFF vendor prefix dt-bindings: net: don't confuse with generic PHY property ip6_tunnel: fix setting hop_limit value for ipv6 tunnel ip_tunnel: fix setting ttl and tos value in collect_md mode ipv6: fix typo in fib6_net_exit() tcp: fix a request socket leak sctp: fix missing wake ups in some situations netfilter: xt_hashlimit: fix build error caused by 64bit division netfilter: xt_hashlimit: alloc hashtable with right size ...
2 parents fbf4432 + 9beb8be commit fbd0141

File tree

63 files changed

+537
-235
lines changed

Some content is hidden

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

63 files changed

+537
-235
lines changed

Documentation/devicetree/bindings/net/ethernet.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
The following properties are common to the Ethernet controllers:
22

3+
NOTE: All 'phy*' properties documented below are Ethernet specific. For the
4+
generic PHY 'phys' property, see
5+
Documentation/devicetree/bindings/phy/phy-bindings.txt.
6+
37
- local-mac-address: array of 6 bytes, specifies the MAC address that was
48
assigned to the network device;
59
- mac-address: array of 6 bytes, specifies the MAC address that was last used by
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
Small Form Factor (SFF) Committee Small Form-factor Pluggable (SFP)
2+
Transceiver
3+
4+
Required properties:
5+
6+
- compatible : must be "sff,sfp"
7+
8+
Optional Properties:
9+
10+
- i2c-bus : phandle of an I2C bus controller for the SFP two wire serial
11+
interface
12+
13+
- mod-def0-gpios : GPIO phandle and a specifier of the MOD-DEF0 (AKA Mod_ABS)
14+
module presence input gpio signal, active (module absent) high
15+
16+
- los-gpios : GPIO phandle and a specifier of the Receiver Loss of Signal
17+
Indication input gpio signal, active (signal lost) high
18+
19+
- tx-fault-gpios : GPIO phandle and a specifier of the Module Transmitter
20+
Fault input gpio signal, active (fault condition) high
21+
22+
- tx-disable-gpios : GPIO phandle and a specifier of the Transmitter Disable
23+
output gpio signal, active (Tx disable) high
24+
25+
- rate-select0-gpios : GPIO phandle and a specifier of the Rx Signaling Rate
26+
Select (AKA RS0) output gpio signal, low: low Rx rate, high: high Rx rate
27+
28+
- rate-select1-gpios : GPIO phandle and a specifier of the Tx Signaling Rate
29+
Select (AKA RS1) output gpio signal (SFP+ only), low: low Tx rate, high:
30+
high Tx rate
31+
32+
Example #1: Direct serdes to SFP connection
33+
34+
sfp_eth3: sfp-eth3 {
35+
compatible = "sff,sfp";
36+
i2c-bus = <&sfp_1g_i2c>;
37+
los-gpios = <&cpm_gpio2 22 GPIO_ACTIVE_HIGH>;
38+
mod-def0-gpios = <&cpm_gpio2 21 GPIO_ACTIVE_LOW>;
39+
pinctrl-names = "default";
40+
pinctrl-0 = <&cpm_sfp_1g_pins &cps_sfp_1g_pins>;
41+
tx-disable-gpios = <&cps_gpio1 24 GPIO_ACTIVE_HIGH>;
42+
tx-fault-gpios = <&cpm_gpio2 19 GPIO_ACTIVE_HIGH>;
43+
};
44+
45+
&cps_emac3 {
46+
phy-names = "comphy";
47+
phys = <&cps_comphy5 0>;
48+
sfp = <&sfp_eth3>;
49+
};
50+
51+
Example #2: Serdes to PHY to SFP connection
52+
53+
sfp_eth0: sfp-eth0 {
54+
compatible = "sff,sfp";
55+
i2c-bus = <&sfpp0_i2c>;
56+
los-gpios = <&cps_gpio1 28 GPIO_ACTIVE_HIGH>;
57+
mod-def0-gpios = <&cps_gpio1 27 GPIO_ACTIVE_LOW>;
58+
pinctrl-names = "default";
59+
pinctrl-0 = <&cps_sfpp0_pins>;
60+
tx-disable-gpios = <&cps_gpio1 29 GPIO_ACTIVE_HIGH>;
61+
tx-fault-gpios = <&cps_gpio1 26 GPIO_ACTIVE_HIGH>;
62+
};
63+
64+
p0_phy: ethernet-phy@0 {
65+
compatible = "ethernet-phy-ieee802.3-c45";
66+
pinctrl-names = "default";
67+
pinctrl-0 = <&cpm_phy0_pins &cps_phy0_pins>;
68+
reg = <0>;
69+
interrupt = <&cpm_gpio2 18 IRQ_TYPE_EDGE_FALLING>;
70+
sfp = <&sfp_eth0>;
71+
};
72+
73+
&cpm_eth0 {
74+
phy = <&p0_phy>;
75+
phy-mode = "10gbase-kr";
76+
};

Documentation/devicetree/bindings/phy/phy-bindings.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ PHY user node
3434
=============
3535

3636
Required Properties:
37-
phys : the phandle for the PHY device (used by the PHY subsystem)
37+
phys : the phandle for the PHY device (used by the PHY subsystem; not to be
38+
confused with the Ethernet specific 'phy' and 'phy-handle' properties,
39+
see Documentation/devicetree/bindings/net/ethernet.txt for these)
3840
phy-names : the names of the PHY corresponding to the PHYs present in the
3941
*phys* phandle
4042

Documentation/devicetree/bindings/vendor-prefixes.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ schindler Schindler
292292
seagate Seagate Technology PLC
293293
semtech Semtech Corporation
294294
sensirion Sensirion AG
295+
sff Small Form Factor Committee
295296
sgx SGX Sensortech
296297
sharp Sharp Corporation
297298
si-en Si-En Technology Ltd.

drivers/isdn/isdnloop/isdnloop.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ isdnloop_sendbuf(int channel, struct sk_buff *skb, isdnloop_card *card)
409409
return -EINVAL;
410410
}
411411
if (len) {
412-
if (!(card->flags & (channel) ? ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE))
412+
if (!(card->flags & (channel ? ISDNLOOP_FLAGS_B2ACTIVE : ISDNLOOP_FLAGS_B1ACTIVE)))
413413
return 0;
414414
if (card->sndcount[channel] > ISDNLOOP_MAX_SQUEUE)
415415
return 0;

drivers/net/ethernet/davicom/dm9000.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ MODULE_PARM_DESC(watchdog, "transmit timeout in milliseconds");
6565
*/
6666
static int debug;
6767
module_param(debug, int, 0644);
68-
MODULE_PARM_DESC(debug, "dm9000 debug level (0-4)");
68+
MODULE_PARM_DESC(debug, "dm9000 debug level (0-6)");
6969

7070
/* DM9000 register address locking.
7171
*

drivers/net/ethernet/dec/tulip/tulip.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ void comet_timer(unsigned long data);
515515
extern int tulip_debug;
516516
extern const char * const medianame[];
517517
extern const char tulip_media_cap[];
518-
extern struct tulip_chip_table tulip_tbl[];
518+
extern const struct tulip_chip_table tulip_tbl[];
519519
void oom_timer(unsigned long data);
520520
extern u8 t21040_csr13[];
521521

drivers/net/ethernet/dec/tulip/tulip_core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ static void tulip_timer(unsigned long data)
138138
* It is indexed via the values in 'enum chips'
139139
*/
140140

141-
struct tulip_chip_table tulip_tbl[] = {
141+
const struct tulip_chip_table tulip_tbl[] = {
142142
{ }, /* placeholder for array, slot unused currently */
143143
{ }, /* placeholder for array, slot unused currently */
144144

drivers/net/ethernet/ti/netcp_core.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2145,7 +2145,6 @@ static void netcp_delete_interface(struct netcp_device *netcp_device,
21452145

21462146
of_node_put(netcp->node_interface);
21472147
unregister_netdev(ndev);
2148-
netif_napi_del(&netcp->rx_napi);
21492148
free_netdev(ndev);
21502149
}
21512150

drivers/net/phy/mdio_bus.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,8 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
399399
}
400400

401401
/* Put PHYs in RESET to save power */
402-
gpiod_set_value_cansleep(bus->reset_gpiod, 1);
402+
if (bus->reset_gpiod)
403+
gpiod_set_value_cansleep(bus->reset_gpiod, 1);
403404

404405
device_del(&bus->dev);
405406
return err;
@@ -424,7 +425,8 @@ void mdiobus_unregister(struct mii_bus *bus)
424425
}
425426

426427
/* Put PHYs in RESET to save power */
427-
gpiod_set_value_cansleep(bus->reset_gpiod, 1);
428+
if (bus->reset_gpiod)
429+
gpiod_set_value_cansleep(bus->reset_gpiod, 1);
428430

429431
device_del(&bus->dev);
430432
}

drivers/net/phy/sfp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,11 @@ enum {
5858
};
5959

6060
static const char *gpio_of_names[] = {
61-
"moddef0",
61+
"mod-def0",
6262
"los",
6363
"tx-fault",
6464
"tx-disable",
65-
"rate-select",
65+
"rate-select0",
6666
};
6767

6868
static const enum gpiod_flags gpio_flags[] = {

drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
159159

160160
brcmf_feat_firmware_capabilities(ifp);
161161
memset(&gscan_cfg, 0, sizeof(gscan_cfg));
162-
if (drvr->bus_if->chip != BRCM_CC_43430_CHIP_ID)
162+
if (drvr->bus_if->chip != BRCM_CC_43430_CHIP_ID &&
163+
drvr->bus_if->chip != BRCM_CC_4345_CHIP_ID)
163164
brcmf_feat_iovar_data_set(ifp, BRCMF_FEAT_GSCAN,
164165
"pfn_gscan_cfg",
165166
&gscan_cfg, sizeof(gscan_cfg));

drivers/net/wireless/intel/iwlwifi/fw/file.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ enum iwl_ucode_tlv_capa {
378378
IWL_UCODE_TLV_CAPA_EXTEND_SHARED_MEM_CFG = (__force iwl_ucode_tlv_capa_t)80,
379379
IWL_UCODE_TLV_CAPA_LQM_SUPPORT = (__force iwl_ucode_tlv_capa_t)81,
380380
IWL_UCODE_TLV_CAPA_TX_POWER_ACK = (__force iwl_ucode_tlv_capa_t)84,
381+
IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT = (__force iwl_ucode_tlv_capa_t)86,
381382
IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = (__force iwl_ucode_tlv_capa_t)96,
382383

383384
NUM_IWL_UCODE_TLV_CAPA

drivers/net/wireless/intel/iwlwifi/mvm/led.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ static void iwl_mvm_send_led_fw_cmd(struct iwl_mvm *mvm, bool on)
9292

9393
static void iwl_mvm_led_set(struct iwl_mvm *mvm, bool on)
9494
{
95-
if (mvm->cfg->device_family >= IWL_DEVICE_FAMILY_8000) {
95+
if (fw_has_capa(&mvm->fw->ucode_capa,
96+
IWL_UCODE_TLV_CAPA_LED_CMD_SUPPORT)) {
9697
iwl_mvm_send_led_fw_cmd(mvm, on);
9798
return;
9899
}

drivers/net/wireless/mac80211_hwsim.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,8 +1362,6 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw,
13621362
txi->control.rates,
13631363
ARRAY_SIZE(txi->control.rates));
13641364

1365-
txi->rate_driver_data[0] = channel;
1366-
13671365
if (skb->len >= 24 + 8 &&
13681366
ieee80211_is_probe_resp(hdr->frame_control)) {
13691367
/* fake header transmission time */

drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtc8723b2ant.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,10 @@ static void btc8723b2ant_set_ant_path(struct btc_coexist *btcoexist,
11831183
}
11841184

11851185
/* fixed internal switch S1->WiFi, S0->BT */
1186-
btcoexist->btc_write_4byte(btcoexist, 0x948, 0x0);
1186+
if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT)
1187+
btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0);
1188+
else
1189+
btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280);
11871190

11881191
switch (antpos_type) {
11891192
case BTC_ANT_WIFI_AT_MAIN:

drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,16 @@ static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist)
173173

174174
u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv)
175175
{
176+
struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params;
177+
178+
/* override ant_num / ant_path */
179+
if (mod_params->ant_sel) {
180+
rtlpriv->btcoexist.btc_info.ant_num =
181+
(mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1);
182+
183+
rtlpriv->btcoexist.btc_info.single_ant_path =
184+
(mod_params->ant_sel == 1 ? 0 : 1);
185+
}
176186
return rtlpriv->btcoexist.btc_info.single_ant_path;
177187
}
178188

@@ -183,13 +193,18 @@ u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv)
183193

184194
u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv)
185195
{
196+
struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params;
186197
u8 num;
187198

188199
if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2)
189200
num = 2;
190201
else
191202
num = 1;
192203

204+
/* override ant_num / ant_path */
205+
if (mod_params->ant_sel)
206+
num = (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1) + 1;
207+
193208
return num;
194209
}
195210

@@ -876,7 +891,7 @@ bool exhalbtc_bind_bt_coex_withadapter(void *adapter)
876891
{
877892
struct btc_coexist *btcoexist = &gl_bt_coexist;
878893
struct rtl_priv *rtlpriv = adapter;
879-
u8 ant_num = 2, chip_type, single_ant_path = 0;
894+
u8 ant_num = 2, chip_type;
880895

881896
if (btcoexist->binded)
882897
return false;
@@ -911,12 +926,6 @@ bool exhalbtc_bind_bt_coex_withadapter(void *adapter)
911926
ant_num = rtl_get_hwpg_ant_num(rtlpriv);
912927
exhalbtc_set_ant_num(rtlpriv, BT_COEX_ANT_TYPE_PG, ant_num);
913928

914-
/* set default antenna position to main port */
915-
btcoexist->board_info.btdm_ant_pos = BTC_ANTENNA_AT_MAIN_PORT;
916-
917-
single_ant_path = rtl_get_hwpg_single_ant_path(rtlpriv);
918-
exhalbtc_set_single_ant_path(single_ant_path);
919-
920929
if (rtl_get_hwpg_package_type(rtlpriv) == 0)
921930
btcoexist->board_info.tfbga_package = false;
922931
else if (rtl_get_hwpg_package_type(rtlpriv) == 1)

include/linux/bpf.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -385,16 +385,16 @@ static inline void __dev_map_flush(struct bpf_map *map)
385385

386386
#if defined(CONFIG_STREAM_PARSER) && defined(CONFIG_BPF_SYSCALL)
387387
struct sock *__sock_map_lookup_elem(struct bpf_map *map, u32 key);
388-
int sock_map_attach_prog(struct bpf_map *map, struct bpf_prog *prog, u32 type);
388+
int sock_map_prog(struct bpf_map *map, struct bpf_prog *prog, u32 type);
389389
#else
390390
static inline struct sock *__sock_map_lookup_elem(struct bpf_map *map, u32 key)
391391
{
392392
return NULL;
393393
}
394394

395-
static inline int sock_map_attach_prog(struct bpf_map *map,
396-
struct bpf_prog *prog,
397-
u32 type)
395+
static inline int sock_map_prog(struct bpf_map *map,
396+
struct bpf_prog *prog,
397+
u32 type)
398398
{
399399
return -EOPNOTSUPP;
400400
}

include/linux/skbuff.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ void kfree_skb(struct sk_buff *skb);
958958
void kfree_skb_list(struct sk_buff *segs);
959959
void skb_tx_error(struct sk_buff *skb);
960960
void consume_skb(struct sk_buff *skb);
961-
void consume_stateless_skb(struct sk_buff *skb);
961+
void __consume_stateless_skb(struct sk_buff *skb);
962962
void __kfree_skb(struct sk_buff *skb);
963963
extern struct kmem_cache *skbuff_head_cache;
964964

include/net/mac80211.h

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -919,21 +919,10 @@ struct ieee80211_tx_info {
919919
unsigned long jiffies;
920920
};
921921
/* NB: vif can be NULL for injected frames */
922-
union {
923-
/* NB: vif can be NULL for injected frames */
924-
struct ieee80211_vif *vif;
925-
926-
/* When packets are enqueued on txq it's easy
927-
* to re-construct the vif pointer. There's no
928-
* more space in tx_info so it can be used to
929-
* store the necessary enqueue time for packet
930-
* sojourn time computation.
931-
*/
932-
codel_time_t enqueue_time;
933-
};
922+
struct ieee80211_vif *vif;
934923
struct ieee80211_key_conf *hw_key;
935924
u32 flags;
936-
/* 4 bytes free */
925+
codel_time_t enqueue_time;
937926
} control;
938927
struct {
939928
u64 cookie;

include/net/netfilter/nf_conntrack.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include <linux/bitops.h>
1818
#include <linux/compiler.h>
1919
#include <linux/atomic.h>
20-
#include <linux/rhashtable.h>
2120

2221
#include <linux/netfilter/nf_conntrack_tcp.h>
2322
#include <linux/netfilter/nf_conntrack_dccp.h>
@@ -77,7 +76,7 @@ struct nf_conn {
7776
possible_net_t ct_net;
7877

7978
#if IS_ENABLED(CONFIG_NF_NAT)
80-
struct rhlist_head nat_bysource;
79+
struct hlist_node nat_bysource;
8180
#endif
8281
/* all members below initialized via memset */
8382
u8 __nfct_init_offset[0];

include/net/netfilter/nf_nat.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#ifndef _NF_NAT_H
22
#define _NF_NAT_H
3-
#include <linux/rhashtable.h>
43
#include <linux/netfilter_ipv4.h>
54
#include <linux/netfilter/nf_nat.h>
65
#include <net/netfilter/nf_conntrack_tuple.h>

include/uapi/linux/bpf.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -766,8 +766,8 @@ struct bpf_sock {
766766

767767
/* User return codes for XDP prog type.
768768
* A valid XDP program must return one of these defined values. All other
769-
* return codes are reserved for future use. Unknown return codes will result
770-
* in packet drop.
769+
* return codes are reserved for future use. Unknown return codes will
770+
* result in packet drops and a warning via bpf_warn_invalid_xdp_action().
771771
*/
772772
enum xdp_action {
773773
XDP_ABORTED = 0,

kernel/bpf/devmap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ static void dev_map_free(struct bpf_map *map)
159159
unsigned long *bitmap = per_cpu_ptr(dtab->flush_needed, cpu);
160160

161161
while (!bitmap_empty(bitmap, dtab->map.max_entries))
162-
cpu_relax();
162+
cond_resched();
163163
}
164164

165165
for (i = 0; i < dtab->map.max_entries; i++) {

kernel/bpf/sockmap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,7 @@ static int sock_map_ctx_update_elem(struct bpf_sock_ops_kern *skops,
792792
return err;
793793
}
794794

795-
int sock_map_attach_prog(struct bpf_map *map, struct bpf_prog *prog, u32 type)
795+
int sock_map_prog(struct bpf_map *map, struct bpf_prog *prog, u32 type)
796796
{
797797
struct bpf_stab *stab = container_of(map, struct bpf_stab, map);
798798
struct bpf_prog *orig;

0 commit comments

Comments
 (0)