Pull networking fixes from David Miller: 1) Fix leak in nl80211 AP start where we leak the ACL memory, from Johannes Berg. 2) Fix double mutex unlock in mac80211, from Andrei Otcheretianski. 3) Fix RCU stall in ipset, from Jozsef Kadlecsik. 4) Fix devlink locking in devlink_dpipe_table_register, from Madhuparna Bhowmik. 5) Fix race causing TX hang in ll_temac, from Esben Haabendal. 6) Stale eth hdr pointer in br_dev_xmit(), from Nikolay Aleksandrov. 7) Fix TX hash calculation bounds checking wrt. tc rules, from Amritha Nambiar. 8) Size netlink responses properly in schedule action code to take into consideration TCA_ACT_FLAGS. From Jiri Pirko. 9) Fix firmware paths for mscc PHY driver, from Antoine Tenart. 10) Don't register stmmac notifier multiple times, from Aaro Koskinen. 11) Various rmnet bug fixes, from Taehee Yoo. 12) Fix vsock deadlock in vsock transport release, from Stefano Garzarella. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (61 commits) net: dsa: mv88e6xxx: Fix masking of egress port mlxsw: pci: Wait longer before accessing the device after reset sfc: fix timestamp reconstruction at 16-bit rollover points vsock: fix potential deadlock in transport->release() unix: It's CONFIG_PROC_FS not CONFIG_PROCFS net: rmnet: fix packet forwarding in rmnet bridge mode net: rmnet: fix bridge mode bugs net: rmnet: use upper/lower device infrastructure net: rmnet: do not allow to change mux id if mux id is duplicated net: rmnet: remove rcu_read_lock in rmnet_force_unassociate_device() net: rmnet: fix suspicious RCU usage net: rmnet: fix NULL pointer dereference in rmnet_changelink() net: rmnet: fix NULL pointer dereference in rmnet_newlink() net: phy: marvell: don't interpret PHY status unless resolved mlx5: register lag notifier for init network namespace only unix: define and set show_fdinfo only if procfs is enabled hinic: fix a bug of rss configuration hinic: fix a bug of setting hw_ioctxt hinic: fix a irq affinity bug net/smc: check for valid ib_client_data ...
Showing the changes to include/linux (2 of 70 files). Show all
Unified · Split
| @@ -22,19 +22,23 @@ extern int inet6_unregister_icmp_sender(ip6_icmp_send_t *fn); · 21 unmodified lines | ||
| 22 | 22 | int ip6_err_gen_icmpv6_unreach(struct sk_buff *skb, int nhs, int type, |
| 23 | 23 | unsigned int data_len); |
| 24 | 24 | |
| 25 | +#if IS_ENABLED(CONFIG_NF_NAT) | |
| 26 | +void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info); | |
| 27 | +#else | |
| 28 | +#define icmpv6_ndo_send icmpv6_send | |
| 29 | +#endif | |
| 30 | + | |
| 25 | 31 | #else |
| 26 | 32 | |
| 27 | 33 | static inline void icmpv6_send(struct sk_buff *skb, |
| 28 | 34 | u8 type, u8 code, __u32 info) |
| 29 | 35 | { |
| 30 | − | |
| 31 | 36 | } |
| 32 | −#endif | |
| 33 | 37 | |
| 34 | −#if IS_ENABLED(CONFIG_NF_NAT) | |
| 35 | −void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info); | |
| 36 | −#else | |
| 37 | −#define icmpv6_ndo_send icmpv6_send | |
| 38 | +static inline void icmpv6_ndo_send(struct sk_buff *skb, | |
| 39 | + u8 type, u8 code, __u32 info) | |
| 40 | +{ | |
| 41 | +} | |
| 38 | 42 | #endif |
| 39 | 43 | |
| 40 | 44 | extern int icmpv6_init(void); |
| @@ -121,6 +121,7 @@ struct ip_set_ext { · 120 unmodified lines | ||
| 121 | 121 | u32 timeout; |
| 122 | 122 | u8 packets_op; |
| 123 | 123 | u8 bytes_op; |
| 124 | + bool target; | |
| 124 | 125 | }; |
| 125 | 126 | |
| 126 | 127 | struct ip_set; |
| @@ -187,6 +188,14 @@ struct ip_set_type_variant { · 60 unmodified lines | ||
| 187 | 188 | /* Return true if "b" set is the same as "a" |
| 188 | 189 | * according to the create set parameters */ |
| 189 | 190 | bool (*same_set)(const struct ip_set *a, const struct ip_set *b); |
| 191 | + /* Region-locking is used */ | |
| 192 | + bool region_lock; | |
| 193 | +}; | |
| 194 | + | |
| 195 | +struct ip_set_region { | |
| 196 | + spinlock_t lock; /* Region lock */ | |
| 197 | + size_t ext_size; /* Size of the dynamic extensions */ | |
| 198 | + u32 elements; /* Number of elements vs timeout */ | |
| 190 | 199 | }; |
| 191 | 200 | |
| 192 | 201 | /* The core set type structure */ |
| @@ -501,7 +510,7 @@ ip_set_init_skbinfo(struct ip_set_skbinfo *skbinfo, · 308 unmodified lines | ||
| 501 | 510 | } |
| 502 | 511 | |
| 503 | 512 | #define IP_SET_INIT_KEXT(skb, opt, set) \ |
| 504 | − { .bytes = (skb)->len, .packets = 1, \ | |
| 513 | + { .bytes = (skb)->len, .packets = 1, .target = true,\ | |
| 505 | 514 | .timeout = ip_set_adt_opt_timeout(opt, set) } |
| 506 | 515 | |
| 507 | 516 | #define IP_SET_INIT_UEXT(set) \ |