mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller:
1) Fix TCP checksum offload handling in iwlwifi driver, from Emmanuel
Grumbach.
2) In ksz DSA tagging code, free SKB if skb_put_padto() fails. From
Vivien Didelot.
3) Fix two regressions with bonding on wireless, from Andreas Born.
4) Fix build when busypoll is disabled, from Daniel Borkmann.
5) Fix copy_linear_skb() wrt. SO_PEEK_OFF, from Eric Dumazet.
6) Set SKB cached route properly in inet_rtm_getroute(), from Florian
Westphal.
7) Fix PCI-E relaxed ordering handling in cxgb4 driver, from Ding
Tianhong.
8) Fix module refcnt leak in ULP code, from Sabrina Dubroca.
9) Fix use of GFP_KERNEL in atomic contexts in AF_KEY code, from Eric
Dumazet.
10) Need to purge socket write queue in dccp_destroy_sock(), also from
Eric Dumazet.
11) Make bpf_trace_printk() work properly on 32-bit architectures, from
Daniel Borkmann.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)
bpf: fix bpf_trace_printk on 32 bit archs
PCI: fix oops when try to find Root Port for a PCI device
sfc: don't try and read ef10 data on non-ef10 NIC
net_sched: remove warning from qdisc_hash_add
net_sched/sfq: update hierarchical backlog when drop packet
net_sched: reset pointers to tcf blocks in classful qdiscs' destructors
ipv4: fix NULL dereference in free_fib_info_rcu()
net: Fix a typo in comment about sock flags.
ipv6: fix NULL dereference in ip6_route_dev_notify()
tcp: fix possible deadlock in TCP stack vs BPF filter
dccp: purge write queue in dccp_destroy_sock()
udp: fix linear skb reception with PEEK_OFF
ipv6: release rt6->rt6i_idev properly during ifdown
af_key: do not use GFP_KERNEL in atomic contexts
tcp: ulp: avoid module refcnt leak in tcp_set_ulp
net/cxgb4vf: Use new PCI_DEV_FLAGS_NO_RELAXED_ORDERING flag
net/cxgb4: Use new PCI_DEV_FLAGS_NO_RELAXED_ORDERING flag
PCI: Disable Relaxed Ordering Attributes for AMD A1100
PCI: Disable Relaxed Ordering for some Intel processors
PCI: Disable PCIe Relaxed Ordering if unsupported
...
This commit is contained in:
commit
510c8a899c
58 changed files with 512 additions and 159 deletions
|
|
@ -37,7 +37,7 @@ struct net;
|
|||
|
||||
/* Historically, SOCKWQ_ASYNC_NOSPACE & SOCKWQ_ASYNC_WAITDATA were located
|
||||
* in sock->flags, but moved into sk->sk_wq->flags to be RCU protected.
|
||||
* Eventually all flags will be in sk->sk_wq_flags.
|
||||
* Eventually all flags will be in sk->sk_wq->flags.
|
||||
*/
|
||||
#define SOCKWQ_ASYNC_NOSPACE 0
|
||||
#define SOCKWQ_ASYNC_WAITDATA 1
|
||||
|
|
|
|||
|
|
@ -188,6 +188,8 @@ enum pci_dev_flags {
|
|||
* the direct_complete optimization.
|
||||
*/
|
||||
PCI_DEV_FLAGS_NEEDS_RESUME = (__force pci_dev_flags_t) (1 << 11),
|
||||
/* Don't use Relaxed Ordering for TLPs directed at this device */
|
||||
PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 12),
|
||||
};
|
||||
|
||||
enum pci_irq_reroute_variant {
|
||||
|
|
@ -1126,6 +1128,7 @@ bool pci_check_pme_status(struct pci_dev *dev);
|
|||
void pci_pme_wakeup_bus(struct pci_bus *bus);
|
||||
void pci_d3cold_enable(struct pci_dev *dev);
|
||||
void pci_d3cold_disable(struct pci_dev *dev);
|
||||
bool pcie_relaxed_ordering_enabled(struct pci_dev *dev);
|
||||
|
||||
/* PCI Virtual Channel */
|
||||
int pci_save_vc_state(struct pci_dev *dev);
|
||||
|
|
|
|||
|
|
@ -336,6 +336,16 @@ static inline void in6_dev_put(struct inet6_dev *idev)
|
|||
in6_dev_finish_destroy(idev);
|
||||
}
|
||||
|
||||
static inline void in6_dev_put_clear(struct inet6_dev **pidev)
|
||||
{
|
||||
struct inet6_dev *idev = *pidev;
|
||||
|
||||
if (idev) {
|
||||
in6_dev_put(idev);
|
||||
*pidev = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void __in6_dev_put(struct inet6_dev *idev)
|
||||
{
|
||||
refcount_dec(&idev->refcnt);
|
||||
|
|
|
|||
|
|
@ -277,6 +277,11 @@ static inline bool bond_is_lb(const struct bonding *bond)
|
|||
BOND_MODE(bond) == BOND_MODE_ALB;
|
||||
}
|
||||
|
||||
static inline bool bond_needs_speed_duplex(const struct bonding *bond)
|
||||
{
|
||||
return BOND_MODE(bond) == BOND_MODE_8023AD || bond_is_lb(bond);
|
||||
}
|
||||
|
||||
static inline bool bond_is_nondyn_tlb(const struct bonding *bond)
|
||||
{
|
||||
return (BOND_MODE(bond) == BOND_MODE_TLB) &&
|
||||
|
|
|
|||
|
|
@ -29,18 +29,18 @@
|
|||
#include <linux/sched/signal.h>
|
||||
#include <net/ip.h>
|
||||
|
||||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
|
||||
struct napi_struct;
|
||||
extern unsigned int sysctl_net_busy_read __read_mostly;
|
||||
extern unsigned int sysctl_net_busy_poll __read_mostly;
|
||||
|
||||
/* 0 - Reserved to indicate value not set
|
||||
* 1..NR_CPUS - Reserved for sender_cpu
|
||||
* NR_CPUS+1..~0 - Region available for NAPI IDs
|
||||
*/
|
||||
#define MIN_NAPI_ID ((unsigned int)(NR_CPUS + 1))
|
||||
|
||||
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||
|
||||
struct napi_struct;
|
||||
extern unsigned int sysctl_net_busy_read __read_mostly;
|
||||
extern unsigned int sysctl_net_busy_poll __read_mostly;
|
||||
|
||||
static inline bool net_busy_loop_on(void)
|
||||
{
|
||||
return sysctl_net_busy_poll;
|
||||
|
|
|
|||
|
|
@ -5499,6 +5499,21 @@ static inline void ieee80211_stop_rx_ba_session_offl(struct ieee80211_vif *vif,
|
|||
ieee80211_manage_rx_ba_offl(vif, addr, tid + IEEE80211_NUM_TIDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_rx_ba_timer_expired - stop a Rx BA session due to timeout
|
||||
*
|
||||
* Some device drivers do not offload AddBa/DelBa negotiation, but handle rx
|
||||
* buffer reording internally, and therefore also handle the session timer.
|
||||
*
|
||||
* Trigger the timeout flow, which sends a DelBa.
|
||||
*
|
||||
* @vif: &struct ieee80211_vif pointer from the add_interface callback
|
||||
* @addr: station mac address
|
||||
* @tid: the rx tid
|
||||
*/
|
||||
void ieee80211_rx_ba_timer_expired(struct ieee80211_vif *vif,
|
||||
const u8 *addr, unsigned int tid);
|
||||
|
||||
/* Rate control API */
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -366,12 +366,13 @@ static inline bool udp_skb_is_linear(struct sk_buff *skb)
|
|||
static inline int copy_linear_skb(struct sk_buff *skb, int len, int off,
|
||||
struct iov_iter *to)
|
||||
{
|
||||
int n, copy = len - off;
|
||||
int n;
|
||||
|
||||
n = copy_to_iter(skb->data + off, copy, to);
|
||||
if (n == copy)
|
||||
n = copy_to_iter(skb->data + off, len, to);
|
||||
if (n == len)
|
||||
return 0;
|
||||
|
||||
iov_iter_revert(to, n);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue