linux_dsm_epyc7002/drivers/net/ethernet
Daniel Borkmann 408eccce32 net: ptp: move PTP classifier in its own file
This commit fixes a build error reported by Fengguang, that is
triggered when CONFIG_NETWORK_PHY_TIMESTAMPING is not set:

  ERROR: "ptp_classify_raw" [drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.ko] undefined!

The fix is to introduce its own file for the PTP BPF classifier,
so that PTP_1588_CLOCK and/or NETWORK_PHY_TIMESTAMPING can select
it independently from each other. IXP4xx driver on ARM needs to
select it as well since it does not seem to select PTP_1588_CLOCK
or similar that would pull it in automatically.

This also allows for hiding all of the internals of the BPF PTP
program inside that file, and only exporting relevant API bits
to drivers.

This patch also adds a kdoc documentation of ptp_classify_raw()
API to make it clear that it can return PTP_CLASS_* defines. Also,
the BPF program has been translated into bpf_asm code, so that it
can be more easily read and altered (extensively documented in [1]).

In the kernel tree under tools/net/ we have bpf_asm and bpf_dbg
tools, so the commented program can simply be translated via
`./bpf_asm -c prog` where prog is a file that contains the
commented code. This makes it easily readable/verifiable and when
there's a need to change something, jump offsets etc do not need
to be replaced manually which can be very error prone. Instead,
a newly translated version via bpf_asm can simply replace the old
code. I have checked opcode diffs before/after and it's the very
same filter.

  [1] Documentation/networking/filter.txt

Fixes: 164d8c6665 ("net: ptp: do not reimplement PTP/BPF classifier")
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Jiri Benc <jbenc@redhat.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-04-01 16:43:18 -04:00
..
3com 3c59x: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 15:17:22 -07:00
8390 8390: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 15:22:02 -07:00
adaptec net: starfire: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:28 -04:00
adi bfin_mac: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
aeroflex net: greth: remove empty MDIO bus reset function 2014-03-28 01:38:01 -04:00
allwinner sun4i-emac: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:15:53 -07:00
alteon drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
altera altera: Remove casts of pointer to same type 2014-03-26 15:46:15 -04:00
amd pcnet32: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:53 -07:00
apple macmace: add missing platform_set_drvdata() in mace_probe() 2013-11-11 14:02:08 -05:00
arc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-01-06 17:37:45 -05:00
atheros atl1e: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
brocade bna: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
cadence macb: remove empty MDIO bus reset function 2014-03-28 01:38:01 -04:00
calxeda xgmac: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:56 -07:00
chelsio cxgb4vf: Adds device Id for few more Chelsio adapters 2014-03-28 16:34:40 -04:00
cirrus cs89x0: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:58 -07:00
cisco enic: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:59 -07:00
davicom dm9000: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:18:59 -07:00
dec uli526x: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:00 -07:00
dlink sundance: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:01 -07:00
emulex be2net: fix build dependency on VxLAN 2014-04-01 16:25:51 -04:00
faraday net: ftgmac100: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
freescale net: fec: make sure to init MAC address 2014-03-31 16:34:19 -04:00
fujitsu drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
hp hp100: replace hardcoded name in /proc/interrupts with interface name 2013-09-27 17:38:32 -04:00
i825xx i825xx: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:02 -07:00
ibm ibmveth: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:03 -07:00
icplus drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
intel ixgbevf: Fix rcu warnings induced by LER 2014-03-31 15:48:03 -07:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
mellanox net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
microchip
moxa drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
myricom myri10ge: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:33:32 -05:00
natsemi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-01-25 11:17:34 -08:00
neterion vxge: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:07 -07:00
nuvoton drivers:net: delete premature free_irq 2013-09-04 13:18:19 -04:00
nvidia forcedeth: Call dev_kfree_skb_any instead of kfree_skb. 2014-03-24 21:19:08 -07:00
nxp drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
octeon Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 07:55:21 +09:00
oki-semi net: ptp: do not reimplement PTP/BPF classifier 2014-03-31 00:45:09 -04:00
packetengines net: packetengines: slight optimization of addr 2013-12-31 16:48:32 -05:00
pasemi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-29 18:48:54 -04:00
rdc r6040: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
realtek net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq 2014-03-14 22:41:36 -04:00
renesas sh_eth: ensure pm_runtime cannot suspend the device during init 2014-03-28 15:59:44 -04:00
samsung net: sxgbe: make "core_ops" static 2014-04-01 16:25:52 -04:00
seeq drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
sfc Call efx_set_channels() before efx->type->dimension_resources() 2014-04-01 16:25:51 -04:00
sgi drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
silan sc92031: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:08 -07:00
sis sis900: Call dev_kfree_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:09 -07:00
smsc smsc911x: No need to print driver version 2014-03-26 15:46:15 -04:00
stmicro net: stmmac: Add SOCFPGA glue driver 2014-03-28 15:06:32 -04:00
sun sungem: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:12 -07:00
tehuti net: Spelling s/transmition/transmission/ 2014-01-14 17:11:26 -08:00
ti net: ptp: do not reimplement PTP/BPF classifier 2014-03-31 00:45:09 -04:00
tile tilepro: Call dev_consume_skb_any instead of kfree_skb. 2014-03-24 21:19:12 -07:00
toshiba spider_net: Call dev_consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:13 -07:00
tundra drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
via Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-25 20:29:20 -04:00
wiznet net: w5100: Use devm_ioremap_resource() 2014-02-28 16:57:24 -05:00
xilinx net: emaclite: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
xircom ethernet: Fix FSF address in file headers 2013-12-06 12:37:55 -05:00
xscale net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
dnet.c dnet: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
dnet.h
ethoc.c net: ethoc: remove empty MDIO bus function 2014-03-28 01:38:02 -04:00
fealnx.c net: fealnx: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:01 -04:00
jme.c jme: remove open-coded skb_cow_head. 2014-03-29 17:49:47 -04:00
jme.h jme: Remove unused #define PFX 2013-11-07 02:14:32 -05:00
Kconfig net: sxgbe: add basic framework for Samsung 10Gb ethernet driver 2014-03-26 16:49:31 -04:00
korina.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
lantiq_etop.c netdevice: add queue selection fallback handler for ndo_select_queue 2014-02-17 00:36:34 -05:00
Makefile net: sxgbe: add basic framework for Samsung 10Gb ethernet driver 2014-03-26 16:49:31 -04:00
netx-eth.c ethernet: Fix FSF address in file headers 2013-12-06 12:37:55 -05:00
s6gmac.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00