linux/drivers
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
..
accessibility
acpi ACPI / sleep: Add extra checks for HW Reduced ACPI mode sleep states 2014-03-13 22:11:39 +01:00
amba
ata Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-10 12:56:24 -07:00
atm atm: idt77105: Use del_timer_sync() in exit path 2014-03-25 21:06:02 -04:00
auxdisplay
base PM / hibernate: Fix restore hang in freeze_processes() 2014-02-26 01:13:15 +01:00
bcma bcma: gpio: register 32 GPIOs on BCM5357 2014-03-27 14:20:04 -04:00
block mtip32xx: fix bad use of smp_processor_id() 2014-03-10 14:32:47 -06:00
bluetooth Bluetooth: bluecard: Use del_timer_sync() in teardown path 2014-03-23 10:30:22 -07:00
bus drivers: bus: fix CCI driver kcalloc call parameters swap 2014-01-31 15:15:13 -08:00
cdrom Merge branch 'for-3.14/drivers' of git://git.kernel.dk/linux-block 2014-01-30 11:40:10 -08:00
char Char/Misc fixes for 3.14-rc3 2014-02-14 16:13:00 -08:00
clk Single fix for a clock driver merged in 3.14-rc1. Without this fix the 2014-03-08 10:51:30 -08:00
clocksource clocksource: vf_pit_timer: use complement for sched_clock reading 2014-03-06 11:34:14 +01:00
connector connector: remove duplicated code in cn_call_callback() 2014-03-03 15:39:20 -05:00
cpufreq cpufreq: Skip current frequency initialization for ->setpolicy drivers 2014-03-13 00:37:16 +01:00
cpuidle powerpc/powernv/cpuidle: Back-end cpuidle driver for powernv platform. 2014-01-29 17:02:24 +11:00
crypto crypto/nx/nx-842: Fix handling of vmalloc addresses 2014-02-11 11:24:49 +11:00
dca
devfreq Merge branches 'pm-cpufreq' and 'pm-devfreq' 2014-01-29 11:48:23 +01:00
dio
dma Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma 2014-03-01 21:30:43 -06:00
edac i7300_edac: Fix device reference count 2014-02-25 09:43:13 +01:00
eisa Revert "EISA: Initialize device before its resources" 2014-01-17 14:57:29 -07:00
extcon ASoC: dapm: Add locking to snd_soc_dapm_xxxx_pin functions 2014-02-20 18:40:07 +09:00
firewire Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2014-03-08 11:51:13 -08:00
firmware firmware/google: drop 'select EFI' to avoid recursive dependency 2014-01-27 21:02:40 -08:00
fmc drivers/fmc/fmc-write-eeprom.c: fix decimal permissions 2014-02-25 15:25:43 -08:00
gpio gpio: tb10x: GPIO_TB10X needs to select GENERIC_IRQ_CHIP 2014-02-05 11:13:59 +01:00
gpu drm/i915: Undo gtt scratch pte unmapping again 2014-03-28 12:33:50 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2014-03-17 08:00:50 -07:00
hsi
hv Drivers: hv: vmbus: Don't timeout during the initial connection with host 2014-02-07 08:27:34 -08:00
hwmon hwmon: (max1668) Fix writing the minimum temperature 2014-02-18 15:53:49 -08:00
hwspinlock
i2c i2c: cpm: Fix build by adding of_address.h and of_irq.h 2014-03-24 14:54:21 +01:00
ide drivers: ide: Include appropriate header file in ide-pio-blacklist.c 2014-01-28 23:35:09 -08:00
idle ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
iio iio:gyro: bug on L3GD20H gyroscope support 2014-02-18 10:24:49 +00:00
infiniband RDMA/cxgb4: set error code on kmalloc() failure 2014-03-28 14:55:21 -04:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-03-28 13:03:00 -07:00
iommu drivers/iommu/omap-iommu-debug.c: fix decimal permissions 2014-02-25 15:25:42 -08:00
ipack
irqchip irq-metag*: stop set_affinity vectoring to offline cpus 2014-02-25 22:35:06 +00:00
isdn net: isdn: use sk_unattached_filter api 2014-03-31 00:45:09 -04:00
leds Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-01-28 18:53:01 -08:00
lguest
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
mailbox drivers/mailbox/omap: make mbox->irq signed for error handling 2014-01-23 16:36:53 -08:00
md dm cache: fix access beyond end of origin device 2014-03-12 13:52:00 -04:00
media [media] adv7842: Composite free-run platfrom-data fix 2014-02-04 06:46:10 -02:00
memory
memstick drivers/memstick/host/rtsx_pci_ms.c: fix ms card data transfer bug 2014-01-23 16:37:04 -08:00
message drivers/message/i2o/i2o_config.c: fix deadlock in compat_ioctl(I2OGETIOPS) 2014-02-10 16:01:40 -08:00
mfd sound fixes for 3.14-rc4 2014-02-21 09:55:32 -08:00
misc mm: fix GFP_THISNODE callers and clarify 2014-03-10 17:26:19 -07:00
mmc Fix uses of dma_max_pfn() when converting to a limiting address 2014-02-17 23:08:41 +00:00
mtd Just a single fix for the UBI module unload path which makes sure we do not 2014-02-27 10:36:50 -08:00
net net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
nfc NFC: trf7970a: Add ISO/IEC 15693 and Type 5 tag Support 2014-03-11 00:47:09 +01:00
ntb
nubus
of of_mdio: Allow the DT to specify the phy ID and avoid autoprobing 2014-03-20 17:10:28 -04:00
oprofile
parisc
parport TTY/Serial driver patches for 3.14-rc1 2014-01-20 16:05:23 -08:00
pci PCI: Don't check resource_size() in pci_bus_alloc_resource() 2014-03-12 11:19:20 -06:00
pcmcia PCI changes for the v3.14 merge window: 2014-01-22 16:39:28 -08:00
phy phy: let phy_provider_register be the last step in registering PHY 2014-02-18 12:13:16 -08:00
pinctrl ARM: SoC fixes for 3.14-rc 2014-03-09 19:27:31 -07:00
platform platform/chrome: Cleanups and improvements 2014-01-29 20:06:01 -08:00
pnp PNP / ACPI: proper handling of ACPI IO/Memory resource parsing failures 2014-03-11 21:22:10 +01:00
power Few fixes: 2014-02-14 10:32:28 -08:00
powercap
pps
ps3
ptp net: ptp: move PTP classifier in its own file 2014-04-01 16:43:18 -04:00
pwm pwm: lp3943: Fix potential memory leak during request 2014-02-26 15:45:12 +01:00
rapidio rapidio/tsi721: fix tasklet termination in dma channel release 2014-03-04 07:55:49 -08:00
regulator regulator: Fixes for v3.14-rc5 2014-03-04 08:41:42 -08:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-s3c.c: fix incorrect way of save/restore of S3C2410_TICNT for TYPE_S3C64XX 2014-03-04 07:55:48 -08:00
s390 qeth: Fix IP version detection for VLAN traffic 2014-03-20 00:06:56 -04:00
sbus Sparc: sparc_cpu_model isn't in asm/system.h any more [ver #2] 2014-02-20 13:34:11 -05:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-24 17:07:24 -07:00
sfi
sh
sn
spi Merge remote-tracking branches 'spi/fix/ath79', 'spi/fix/atmel', 'spi/fix/coldfire', 'spi/fix/fsl-dspi', 'spi/fix/imx' and 'spi/fix/topcliff-pch' into spi-linus 2014-03-07 11:08:13 +08:00
ssb Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-01-30 17:20:32 -08:00
staging staging/octeon-ethernet: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. 2014-03-24 21:19:24 -07:00
target Target/sbc: Fix sbc_copy_prot for offset scatters 2014-03-06 20:52:11 -08:00
tc
thermal Thermal: thermal zone governor fix 2014-03-03 23:15:57 +08:00
tty sparc: serial: Clean up the locking for -rt 2014-03-06 16:32:25 -05:00
uio
usb Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather." 2014-03-07 11:48:13 -08:00
uwb
vfio mm: close PageTail race 2014-03-04 07:55:47 -08:00
vhost vhost: validate vhost_get_vq_desc return value 2014-03-28 16:10:35 -04:00
video video: Kconfig: Allow more broad selection of the imxfb framebuffer driver. 2014-02-14 10:44:52 +02:00
virt
virtio A few simple fixes. Quiet cycle. 2014-01-22 22:24:35 -08:00
vlynq drivers/vlynq/vlynq.c: fix another resource size off by 1 error 2014-01-23 16:36:55 -08:00
vme VME: Correct read/write alignment algorithm 2014-02-07 08:16:14 -08:00
w1 drivers/w1/masters/w1-gpio.c: add strong pullup emulation 2014-01-23 16:37:04 -08:00
watchdog watchdog: w83697hf_wdt: return ENODEV if no device was found 2014-02-21 20:36:46 +01:00
xen xen/balloon: flush persistent kmaps in correct position 2014-03-25 10:38:30 +00:00
zorro
Kconfig
Makefile