lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 07 Feb 2017 13:33:34 -0500 (EST)
From:   David Miller <davem@...emloft.net>
To:     michael.chan@...adcom.com
Cc:     netdev@...r.kernel.org
Subject: Re: [PATCH net-next v3 00/12] bnxt_en: Add XDP support.

From: Michael Chan <michael.chan@...adcom.com>
Date: Mon,  6 Feb 2017 16:55:31 -0500

> The first 10 patches refactor the code (rx/tx code paths and ring logic)
> and add the basic infrastructure to support XDP.  The 11th patch adds
> basic ndo_xdp to support XDP_DROP and XDP_PASS only.  The 12th patch
> completes the series with XDP_TX.
> 
> Thanks to Andy Gospodarek for testing and uncovering some bugs.
> 
> v3: Removed Kconfig option.
>     Pass modified offset and length to stack for XDP_PASS.
>     Improved buffer recycling scheme for XDP_TX.
>     Other minor fixes.
> 
> v2: Addressed review comments from Alexei Starovoitov, Jakub Kicinski,
> and David Miller:
> 	- Added missing dma syncs.
> 	- Added XDP headroom support.
> 	- Added tracing in exception path.
> 	- Clarified a parameter change.

Series applied, thanks Michael.

You can probably push the XDP program existance check into an inline
helper to avoid the function call when XDP isn't being used:

bool __bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons,
		   struct page *page, u8 **data_ptr, unsigned int *len, u8 *event,
		   struct bpf_prog *xdp_prog);

static inline bool __bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons,
		                 struct page *page, u8 **data_ptr, unsigned int *len, u8 *event)
{
	struct bpf_prog *xdp_prog = READ_ONCE(rxr->xdp_prog);

	if (!xdp_prog)
		return false;
	return bnxt_rx_xdp(bp, rxr, cons, page, data_ptr, len, event, xdp_prog);
}

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ