linux/drivers
David Ahern 6ac0b3810c net: vrf: Drop conntrack data after pass through VRF device on Tx
[ Upstream commit eb63ecc170 ]

Locally originated traffic in a VRF fails in the presence of a POSTROUTING
rule. For example,

    $ iptables -t nat -A POSTROUTING -s 11.1.1.0/24  -j MASQUERADE
    $ ping -I red -c1 11.1.1.3
    ping: Warning: source address might be selected on device other than red.
    PING 11.1.1.3 (11.1.1.3) from 11.1.1.2 red: 56(84) bytes of data.
    ping: sendmsg: Operation not permitted

Worse, the above causes random corruption resulting in a panic in random
places (I have not seen a consistent backtrace).

Call nf_reset to drop the conntrack info following the pass through the
VRF device.  The nf_reset is needed on Tx but not Rx because of the order
in which NF_HOOK's are hit: on Rx the VRF device is after the real ingress
device and on Tx it is is before the real egress device. Connection
tracking should be tied to the real egress device and not the VRF device.

Fixes: 8f58336d3f ("net: Add ethernet header for pass through VRF device")
Fixes: 35402e3136 ("net: Add IPv6 support to VRF device")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-01-15 13:41:34 +01:00
..
accessibility
acpi ACPI / video: Add force_native quirk for HP Pavilion dv6 2017-01-09 08:07:44 +01:00
amba
android ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct 2016-11-10 16:36:33 +01:00
ata libata: LITE-ON CX1-JB256-HP needs lower max_sectors 2016-08-10 11:49:29 +02:00
atm
auxdisplay
base PM / wakeirq: Fix dedicated wakeirq for drivers not using autosuspend 2017-01-12 11:22:49 +01:00
bcma x86/quirks: Add early quirk to reset Apple AirPort card 2016-08-10 11:49:24 +02:00
block loop: return proper error from loop_queue_rq() 2017-01-06 11:16:14 +01:00
bluetooth Bluetooth: Add support for Intel Bluetooth device 8265 [8087:0a2b] 2016-09-15 08:27:49 +02:00
bus bus: arm-ccn: Fix XP watchpoint settings bitmask 2016-09-24 10:07:40 +02:00
cdrom
char tpm xen: Remove bogus tpm_chip_unregister 2017-01-06 11:16:16 +01:00
clk clk: imx31: fix rewritten input argument of mx31_clocks_init() 2017-01-12 11:22:49 +01:00
clocksource clocksource/drivers/sun4i: Clear interrupts after stopping timer in probe function 2016-09-24 10:07:35 +02:00
connector connector: bump skb->users before callback invocation 2016-01-04 21:46:45 -05:00
cpufreq cpufreq: intel_pstate: Fix unsafe HWP MSR access 2016-10-28 03:01:26 -04:00
cpuidle ARM: cpuidle: Fix error return code 2016-10-16 17:36:15 +02:00
crypto crypto: caam - fix AEAD givenc descriptors 2017-01-06 11:16:12 +01:00
dca
devfreq
dio
dma dmaengine: at_xdmac: fix spurious flag status for mem2mem transfers 2016-11-18 10:48:36 +01:00
dma-buf
edac EDAC: Increment correct counter in edac_inc_ue_error() 2016-09-07 08:32:41 +02:00
eisa
extcon extcon: max77843: Use correct size for reading the interrupt register 2016-05-04 14:48:54 -07:00
firewire firewire: net: fix fragmented datagram_size off-by-one 2016-11-10 16:36:35 +01:00
firmware efi: Expose non-blocking set_variable() wrapper to efivars 2016-05-04 14:48:49 -07:00
fmc
fpga fpga manager: Fix firmware resource leak on error 2015-11-24 15:25:46 -08:00
gpio gpio: mpc8xxx: Correct irq handler function 2016-10-28 03:01:25 -04:00
gpu drm/radeon: Always store CRTC relative radeon_crtc->cursor_x/y values 2017-01-12 11:22:51 +01:00
hid HID: usbhid: add ATEN CS962 to list of quirky devices 2016-11-10 16:36:37 +01:00
hsi
hv hv: do not lose pending heartbeat vmbus packets 2016-11-10 16:36:34 +01:00
hwmon hwmon: (g762) Fix overflows and crash seen when writing limit attributes 2017-01-12 11:22:48 +01:00
hwspinlock drivers/hwspinlock: fix race between radix tree insertion and lookup 2016-02-25 12:01:23 -08:00
hwtracing intel_th: Fix a deadlock in modprobing 2016-08-10 11:49:30 +02:00
i2c i2c: mux: fix up dependencies 2016-11-26 09:54:52 +01:00
ide
idle intel_idle: Support for Intel Xeon Phi Processor x200 Product Family 2016-09-15 08:27:46 +02:00
iio iio: orientation: hid-sensor-rotation: Add PM function (fix non working driver) 2016-11-18 10:48:35 +01:00
infiniband IB/multicast: Check ib_find_pkey() return value 2017-01-09 08:07:51 +01:00
input Input: drv260x - fix input device's parent assignment 2017-01-09 08:07:51 +01:00
iommu iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped 2017-01-12 11:22:49 +01:00
ipack
irqchip irqchip/bcm7038-l1: Implement irq_cpu_offline() callback 2017-01-12 11:22:49 +01:00
isdn ser_gigaset: return -ENOMEM on error instead of success 2017-01-15 13:41:34 +01:00
leds
lguest
lightnvm lightnvm: put bio before return 2016-09-24 10:07:35 +02:00
macintosh
mailbox
mcb mcb: Fixed bar number assignment for the gdd 2016-06-01 12:15:53 -07:00
md md: MD_RECOVERY_NEEDED is set for mddev->recovery 2017-01-12 11:22:50 +01:00
media cx23885-dvb: move initialization of a8293_pdata 2017-01-12 11:22:51 +01:00
memory memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing 2016-07-27 09:47:35 -07:00
memstick memstick: rtsx_usb_ms: Manage runtime PM when accessing the device 2016-10-28 03:01:35 -04:00
message SCSI queue for 4.4. 2015-11-12 07:06:18 -05:00
mfd mfd: core: Fix device reference leak in mfd_clone_cell 2016-11-26 09:54:53 +01:00
misc mei: bus: fix mei_cldev_enable KDoc 2017-01-12 11:22:47 +01:00
mmc mmc: mmc_test: Uninitialized return value 2017-01-12 11:22:49 +01:00
mtd ubi: fastmap: Fix add_vol() return value test in ubi_attach_fastmap() 2016-11-10 16:36:37 +01:00
net net: vrf: Drop conntrack data after pass through VRF device on Tx 2017-01-15 13:41:34 +01:00
nfc mei: bus: fix received data size check in NFC fixup 2016-11-18 10:48:36 +01:00
ntb
nubus
nvdimm libnvdimm, pfn: fix uuid validation 2016-04-20 15:41:54 +09:00
nvme nvme: Call pci_disable_device on the error path. 2016-09-15 08:27:51 +02:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-11 11:21:21 +02:00
of of: silence warnings due to max() usage 2016-11-15 07:46:39 +01:00
oprofile
parisc parisc iommu: fix panic due to trying to allocate too large region 2015-12-12 16:07:25 +01:00
parport
pci powerpc/pci/rpadlpar: Fix device reference leaks 2017-01-12 11:22:50 +01:00
pcmcia pcmcia: db1xxx_ss: fix last irq_to_gpio user 2016-04-20 15:42:09 +09:00
perf drivers/perf: arm_pmu: Fix leak in error path 2016-10-07 15:23:41 +02:00
phy phy: core: fix wrong err handle for phy_power_on 2016-03-03 15:07:28 -08:00
pinctrl pinctrl: cherryview: Prevent possible interrupt storm on resume 2016-11-18 10:48:34 +01:00
platform platform/x86: asus-nb-wmi.c: Add X45U quirk 2017-01-09 08:07:50 +01:00
pnp PNP: Add Broadwell to Intel MCH size workaround 2016-08-16 09:30:48 +02:00
power power: bq24257: Fix use of uninitialized pointer bq->charger 2016-10-31 04:14:00 -06:00
powercap powercap / RAPL: fix BIOS lock check 2015-12-12 02:31:11 +01:00
pps pps: do not crash when failed to register 2016-08-10 11:49:25 +02:00
ps3
ptp
pwm pwm: Fix device reference leak 2016-12-08 07:15:24 +01:00
rapidio
ras
regulator regulator: stw481x-vmmc: fix ages old enable error 2017-01-09 08:07:43 +01:00
remoteproc remoteproc: Fix potential race condition in rproc_add 2016-08-20 18:09:20 +02:00
reset
rpmsg
rtc rtc: omap: Fix selecting external osc 2016-11-26 09:54:53 +01:00
s390 s390/vmlogrdr: fix IUCV buffer allocation 2017-01-09 08:07:49 +01:00
sbus
scsi scsi: mvsas: fix command_active typo 2017-01-12 11:22:49 +01:00
sfi
sh drivers: sh: Restore legacy clock domain on SuperH platforms 2016-03-09 15:34:49 -08:00
sn
soc soc: qcom/spm: shut up uninitialized variable warning 2016-09-24 10:07:42 +02:00
spi spi: spi-fsl-dspi: Drop extra spi_master_put in device remove function 2016-10-31 04:13:59 -06:00
spmi
ssb ssb: Fix error routine when fallback SPROM fails 2017-01-09 08:07:42 +01:00
staging staging: comedi: dt282x: tidy up register bit defines 2017-01-12 11:22:50 +01:00
target target/iscsi: Fix double free in lio_target_tiqn_addtpg() 2017-01-12 11:22:49 +01:00
tc
thermal thermal: hwmon: Properly report critical temperature in sysfs 2017-01-09 08:07:44 +01:00
thunderbolt thunderbolt: Fix double free of drom buffer 2016-06-01 12:15:53 -07:00
tty sc16is7xx: Drop bogus use of IRQF_ONESHOT 2017-01-09 08:07:49 +01:00
uio uio: fix dmem_region_start computation 2016-10-31 04:13:59 -06:00
usb usb: gadget: composite: always set ep->mult to a sensible value 2017-01-12 11:22:51 +01:00
uwb uwb: fix device reference leaks 2016-11-26 09:54:53 +01:00
vfio vfio/pci: Fix NULL pointer oops in error interrupt setup handling 2016-09-07 08:32:37 +02:00
vhost vhost/scsi: fix reuse of &vq->iov[out] in response 2016-09-15 08:27:53 +02:00
video fbdev/efifb: Fix 16 color palette entry calculation 2016-10-28 03:01:29 -04:00
virt
virtio virtio_ring: Make interrupt suppression spec compliant 2016-11-10 16:36:34 +01:00
vlynq
vme
w1 w1:omap_hdq: fix regression 2016-08-20 18:09:22 +02:00
watchdog watchdog: rc32434_wdt: fix ioctl error handling 2016-04-12 09:08:54 -07:00
xen xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing 2017-01-06 11:16:17 +01:00
zorro
Kconfig
Makefile null_blk: register as a LightNVM device 2015-11-16 15:22:28 -07:00