Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Browse files Browse the repository at this point in the history
Pull networking fixes from David Miller:
 "Hopefully the last pull request for this release. Fingers crossed:

   1) Only refcount ESP stats on full sockets, from Martin Willi.

   2) Missing barriers in AF_UNIX, from Al Viro.

   3) RCU protection fixes in ipv6 route code, from Paolo Abeni.

   4) Avoid false positives in untrusted GSO validation, from Willem de
      Bruijn.

   5) Forwarded mesh packets in mac80211 need more tailroom allocated,
      from Felix Fietkau.

   6) Use operstate consistently for linkup in team driver, from George
      Wilkie.

   7) ThunderX bug fixes from Vadim Lomovtsev. Mostly races between VF
      and PF code paths.

   8) Purge ipv6 exceptions during netdevice removal, from Paolo Abeni.

   9) nfp eBPF code gen fixes from Jiong Wang.

  10) bnxt_en firmware timeout fix from Michael Chan.

  11) Use after free in udp/udpv6 error handlers, from Paolo Abeni.

  12) Fix a race in x25_bind triggerable by syzbot, from Eric Dumazet"

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (65 commits)
  net: phy: realtek: Dummy IRQ calls for RTL8366RB
  tcp: repaired skbs must init their tso_segs
  net/x25: fix a race in x25_bind()
  net: dsa: Remove documentation for port_fdb_prepare
  Revert "bridge: do not add port to router list when receives query with source 0.0.0.0"
  selftests: fib_tests: sleep after changing carrier. again.
  net: set static variable an initial value in atl2_probe()
  net: phy: marvell10g: Fix Multi-G advertisement to only advertise 10G
  bpf, doc: add bpf list as secondary entry to maintainers file
  udp: fix possible user after free in error handler
  udpv6: fix possible user after free in error handler
  fou6: fix proto error handler argument type
  udpv6: add the required annotation to mib type
  mdio_bus: Fix use-after-free on device_register fails
  net: Set rtm_table to RT_TABLE_COMPAT for ipv6 for tables > 255
  bnxt_en: Wait longer for the firmware message response to complete.
  bnxt_en: Fix typo in firmware message timeout logic.
  nfp: bpf: fix ALU32 high bits clearance bug
  nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
  Documentation: networking: switchdev: Update port parent ID section
  ...
  • Loading branch information
torvalds committed Feb 24, 2019
2 parents e60b5f7 + 4c8e045 commit c4eb1e1
Show file tree
Hide file tree
Showing 64 changed files with 568 additions and 420 deletions.
10 changes: 3 additions & 7 deletions Documentation/networking/dsa/dsa.txt
Original file line number Diff line number Diff line change
Expand Up @@ -533,16 +533,12 @@ Bridge VLAN filtering
function that the driver has to call for each VLAN the given port is a member
of. A switchdev object is used to carry the VID and bridge flags.

- port_fdb_prepare: bridge layer function invoked when the bridge prepares the
installation of a Forwarding Database entry. If the operation is not
supported, this function should return -EOPNOTSUPP to inform the bridge code
to fallback to a software implementation. No hardware setup must be done in
this function. See port_fdb_add for this and details.

- port_fdb_add: bridge layer function invoked when the bridge wants to install a
Forwarding Database entry, the switch hardware should be programmed with the
specified address in the specified VLAN Id in the forwarding database
associated with this VLAN ID
associated with this VLAN ID. If the operation is not supported, this
function should return -EOPNOTSUPP to inform the bridge code to fallback to
a software implementation.

Note: VLAN ID 0 corresponds to the port private database, which, in the context
of DSA, would be the its port-based VLAN, used by the associated bridge device.
Expand Down
10 changes: 5 additions & 5 deletions Documentation/networking/switchdev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ device.
Switch ID
^^^^^^^^^

The switchdev driver must implement the switchdev op switchdev_port_attr_get
for SWITCHDEV_ATTR_ID_PORT_PARENT_ID for each port netdev, returning the same
physical ID for each port of a switch. The ID must be unique between switches
on the same system. The ID does not need to be unique between switches on
different systems.
The switchdev driver must implement the net_device operation
ndo_get_port_parent_id for each port netdev, returning the same physical ID for
each port of a switch. The ID must be unique between switches on the same
system. The ID does not need to be unique between switches on different
systems.

The switch ID is used to locate ports on a switch and to know if aggregated
ports belong to the same switch.
Expand Down
17 changes: 14 additions & 3 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2851,7 +2851,7 @@ R: Martin KaFai Lau <[email protected]>
R: Song Liu <[email protected]>
R: Yonghong Song <[email protected]>
L: [email protected]
L: linux-kernel@vger.kernel.org
L: bpf@vger.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
Q: https://patchwork.ozlabs.org/project/netdev/list/?delegate=77147
Expand Down Expand Up @@ -2881,6 +2881,7 @@ N: bpf
BPF JIT for ARM
M: Shubham Bansal <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/arm/net/

Expand All @@ -2889,52 +2890,60 @@ M: Daniel Borkmann <[email protected]>
M: Alexei Starovoitov <[email protected]>
M: Zi Shen Lim <[email protected]>
L: [email protected]
L: [email protected]
S: Supported
F: arch/arm64/net/

BPF JIT for MIPS (32-BIT AND 64-BIT)
M: Paul Burton <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/mips/net/

BPF JIT for NFP NICs
M: Jakub Kicinski <[email protected]>
L: [email protected]
L: [email protected]
S: Supported
F: drivers/net/ethernet/netronome/nfp/bpf/

BPF JIT for POWERPC (32-BIT AND 64-BIT)
M: Naveen N. Rao <[email protected]>
M: Sandipan Das <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/powerpc/net/

BPF JIT for S390
M: Martin Schwidefsky <[email protected]>
M: Heiko Carstens <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/s390/net/
X: arch/s390/net/pnet.c

BPF JIT for SPARC (32-BIT AND 64-BIT)
M: David S. Miller <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/sparc/net/

BPF JIT for X86 32-BIT
M: Wang YanQing <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: arch/x86/net/bpf_jit_comp32.c

BPF JIT for X86 64-BIT
M: Alexei Starovoitov <[email protected]>
M: Daniel Borkmann <[email protected]>
L: [email protected]
L: [email protected]
S: Supported
F: arch/x86/net/
X: arch/x86/net/bpf_jit_comp32.c
Expand Down Expand Up @@ -3389,9 +3398,8 @@ F: Documentation/media/v4l-drivers/cafe_ccic*
F: drivers/media/platform/marvell-ccic/

CAIF NETWORK LAYER
M: Dmitry Tarnyagin <[email protected]>
L: [email protected]
S: Supported
S: Orphan
F: Documentation/networking/caif/
F: drivers/net/caif/
F: include/uapi/linux/caif/
Expand Down Expand Up @@ -8486,6 +8494,7 @@ L7 BPF FRAMEWORK
M: John Fastabend <[email protected]>
M: Daniel Borkmann <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: include/linux/skmsg.h
F: net/core/skmsg.c
Expand Down Expand Up @@ -16713,6 +16722,7 @@ M: Jesper Dangaard Brouer <[email protected]>
M: John Fastabend <[email protected]>
L: [email protected]
L: [email protected]
L: [email protected]
S: Supported
F: net/core/xdp.c
F: include/net/xdp.h
Expand All @@ -16726,6 +16736,7 @@ XDP SOCKETS (AF_XDP)
M: Björn Töpel <[email protected]>
M: Magnus Karlsson <[email protected]>
L: [email protected]
L: [email protected]
S: Maintained
F: kernel/bpf/xskmap.c
F: net/xdp/
Expand Down
35 changes: 14 additions & 21 deletions drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1183,29 +1183,22 @@ static rx_handler_result_t bond_handle_frame(struct sk_buff **pskb)
}
}

/* Link-local multicast packets should be passed to the
* stack on the link they arrive as well as pass them to the
* bond-master device. These packets are mostly usable when
* stack receives it with the link on which they arrive
* (e.g. LLDP) they also must be available on master. Some of
* the use cases include (but are not limited to): LLDP agents
* that must be able to operate both on enslaved interfaces as
* well as on bonds themselves; linux bridges that must be able
* to process/pass BPDUs from attached bonds when any kind of
* STP version is enabled on the network.
/*
* For packets determined by bond_should_deliver_exact_match() call to
* be suppressed we want to make an exception for link-local packets.
* This is necessary for e.g. LLDP daemons to be able to monitor
* inactive slave links without being forced to bind to them
* explicitly.
*
* At the same time, packets that are passed to the bonding master
* (including link-local ones) can have their originating interface
* determined via PACKET_ORIGDEV socket option.
*/
if (is_link_local_ether_addr(eth_hdr(skb)->h_dest)) {
struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC);

if (nskb) {
nskb->dev = bond->dev;
nskb->queue_mapping = 0;
netif_rx(nskb);
}
return RX_HANDLER_PASS;
}
if (bond_should_deliver_exact_match(skb, slave, bond))
if (bond_should_deliver_exact_match(skb, slave, bond)) {
if (is_link_local_ether_addr(eth_hdr(skb)->h_dest))
return RX_HANDLER_PASS;
return RX_HANDLER_EXACT;
}

skb->dev = bond->dev;

Expand Down
4 changes: 1 addition & 3 deletions drivers/net/ethernet/atheros/atlx/atl2.c
Original file line number Diff line number Diff line change
Expand Up @@ -1335,13 +1335,11 @@ static int atl2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
struct net_device *netdev;
struct atl2_adapter *adapter;
static int cards_found;
static int cards_found = 0;
unsigned long mmio_start;
int mmio_len;
int err;

cards_found = 0;

err = pci_enable_device(pdev);
if (err)
return err;
Expand Down
4 changes: 2 additions & 2 deletions drivers/net/ethernet/broadcom/bnxt/bnxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -3903,7 +3903,7 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
if (len)
break;
/* on first few passes, just barely sleep */
if (i < DFLT_HWRM_CMD_TIMEOUT)
if (i < HWRM_SHORT_TIMEOUT_COUNTER)
usleep_range(HWRM_SHORT_MIN_TIMEOUT,
HWRM_SHORT_MAX_TIMEOUT);
else
Expand All @@ -3926,7 +3926,7 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
dma_rmb();
if (*valid)
break;
udelay(1);
usleep_range(1, 5);
}

if (j >= HWRM_VALID_BIT_DELAY_USEC) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/broadcom/bnxt/bnxt.h
Original file line number Diff line number Diff line change
Expand Up @@ -582,7 +582,7 @@ struct nqe_cn {
(HWRM_SHORT_TIMEOUT_COUNTER * HWRM_SHORT_MIN_TIMEOUT + \
((n) - HWRM_SHORT_TIMEOUT_COUNTER) * HWRM_MIN_TIMEOUT))

#define HWRM_VALID_BIT_DELAY_USEC 20
#define HWRM_VALID_BIT_DELAY_USEC 150

#define BNXT_HWRM_CHNL_CHIMP 0
#define BNXT_HWRM_CHNL_KONG 1
Expand Down
14 changes: 8 additions & 6 deletions drivers/net/ethernet/cavium/thunder/nic.h
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ struct xcast_addr_list {
};

struct nicvf_work {
struct delayed_work work;
struct work_struct work;
u8 mode;
struct xcast_addr_list *mc;
};
Expand Down Expand Up @@ -327,7 +327,11 @@ struct nicvf {
struct nicvf_work rx_mode_work;
/* spinlock to protect workqueue arguments from concurrent access */
spinlock_t rx_mode_wq_lock;

/* workqueue for handling kernel ndo_set_rx_mode() calls */
struct workqueue_struct *nicvf_rx_mode_wq;
/* mutex to protect VF's mailbox contents from concurrent access */
struct mutex rx_mode_mtx;
struct delayed_work link_change_work;
/* PTP timestamp */
struct cavium_ptp *ptp_clock;
/* Inbound timestamping is on */
Expand Down Expand Up @@ -575,10 +579,8 @@ struct set_ptp {

struct xcast {
u8 msg;
union {
u8 mode;
u64 mac;
} data;
u8 mode;
u64 mac:48;
};

/* 128 bit shared memory between PF and each VF */
Expand Down
Loading

0 comments on commit c4eb1e1

Please sign in to comment.