Stefan Richter
e9300a4b7b
firewire: net: fix fragmented datagram_size off-by-one
...
RFC 2734 defines the datagram_size field in fragment encapsulation
headers thus:
datagram_size: The encoded size of the entire IP datagram. The
value of datagram_size [...] SHALL be one less than the value of
Total Length in the datagram's IP header (see STD 5, RFC 791).
Accordingly, the eth1394 driver of Linux 2.6.36 and older set and got
this field with a -/+1 offset:
ether1394_tx() /* transmit */
ether1394_encapsulate_prep()
hdr->ff.dg_size = dg_size - 1;
ether1394_data_handler() /* receive */
if (hdr->common.lf == ETH1394_HDR_LF_FF)
dg_size = hdr->ff.dg_size + 1;
else
dg_size = hdr->sf.dg_size + 1;
Likewise, I observe OS X 10.4 and Windows XP Pro SP3 to transmit 1500
byte sized datagrams in fragments with datagram_size=1499 if link
fragmentation is required.
Only firewire-net sets and gets datagram_size without this offset. The
result is lacking interoperability of firewire-net with OS X, Windows
XP, and presumably Linux' eth1394. (I did not test with the latter.)
For example, FTP data transfers to a Linux firewire-net box with max_rec
smaller than the 1500 bytes MTU
- from OS X fail entirely,
- from Win XP start out with a bunch of fragmented datagrams which
time out, then continue with unfragmented datagrams because Win XP
temporarily reduces the MTU to 576 bytes.
So let's fix firewire-net's datagram_size accessors.
Note that firewire-net thereby loses interoperability with unpatched
firewire-net, but only if link fragmentation is employed. (This happens
with large broadcast datagrams, and with large datagrams on several
FireWire CardBus cards with smaller max_rec than equivalent PCI cards,
and it can be worked around by setting a small enough MTU.)
Cc: stable@vger.kernel.org
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2016-11-03 14:46:39 +01:00
..
accessibility
acpi
nfit: fail DSMs that return non-zero status by default
2016-09-21 09:35:19 -07:00
amba
android
Revert "android: binder: fix dangling pointer comparison"
2016-08-18 17:21:37 +02:00
ata
pata_ninja32: Avoid corrupting status flags
2016-08-30 11:59:47 -04:00
atm
auxdisplay
base
regmap: Fix for v4.8
2016-09-23 11:50:49 -07:00
bcma
block
Revert "floppy: refactor open() flags handling"
2016-08-25 08:56:51 -06:00
bluetooth
bus
arm-cci: pmu: Fix typo in event name
2016-09-07 21:24:42 -07:00
cdrom
char
virtio: fixes for 4.8
2016-09-09 14:52:05 -07:00
clk
Clock Fixes for the Allwinner SoCs, 4.8 Edition
2016-09-08 12:54:24 -07:00
clocksource
clocksource/drivers/atmel-pit: Fix compilation error
2016-08-29 09:51:39 +02:00
connector
cpufreq
cpufreq: dt: Add terminate entry for of_device_id tables
2016-08-31 02:49:05 +02:00
cpuidle
crypto
crypto: caam - fix IV loading for authenc (giv)decryption
2016-08-31 22:50:42 +08:00
dax
dax: fix mapping size check
2016-09-03 10:40:57 -07:00
dca
devfreq
dio
dma
dmaengine: img-mdc: fix a possible NULL dereference
2016-08-22 11:57:49 +05:30
dma-buf
edac
EDAC, skx_edac: Add EDAC driver for Skylake
2016-08-21 10:58:34 -07:00
eisa
extcon
firewire
firewire: net: fix fragmented datagram_size off-by-one
2016-11-03 14:46:39 +01:00
firmware
Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-09-13 12:02:00 -07:00
fmc
fpga
gpio
gpio: sa1100: fix irq probing for ucb1x00
2016-09-08 00:42:57 +02:00
gpu
drm/udl: fix line iterator in damage handling
2016-09-28 13:29:18 +10:00
hid
hsi
hv
hwmon
hwmon: (it87) Add missing sysfs attribute group terminator
2016-08-29 05:31:31 -07:00
hwspinlock
hwtracing
i2c
i2c: qup: skip qup_i2c_suspend if the device is already runtime suspended
2016-09-22 20:11:14 +02:00
ide
idle
iio
Second set of IIO fixes for the 4.8 cycle.
2016-09-09 13:44:37 +02:00
infiniband
Round three of 4.8 rc fixes
2016-09-16 13:51:42 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2016-09-30 21:25:09 -07:00
iommu
Merge branch 'for-joerg/arm-smmu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into iommu/fixes
2016-08-22 12:33:56 +02:00
ipack
irqchip
irqchip/mips-gic: Fix local interrupts
2016-09-20 23:20:02 +02:00
isdn
leds
lguest
lightnvm
macintosh
drivers/macintosh: Delete owner assignment
2016-08-22 11:09:33 +10:00
mailbox
fix 📫 bcm-pdc-mailbox:mark symbols static where possible
2016-08-29 18:43:39 +05:30
mcb
md
Merge tag 'md/4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
2016-09-13 11:19:52 -07:00
media
[media] cx23885/saa7134: assign q->dev to the PCI device
2016-09-19 12:38:05 -03:00
memory
memstick
message
mfd
misc
lkdtm: adjust usercopy tests to bypass const checks
2016-09-06 12:17:30 -07:00
mmc
mmc: dw_mmc: fix the spamming log message
2016-09-22 09:34:13 +02:00
mtd
Another round of MTD fixes for v4.8
2016-09-28 12:53:08 -07:00
net
tg3: Avoid NULL pointer dereference in tg3_io_error_detected()
2016-09-30 01:27:27 -04:00
nfc
ntb
nubus
nvdimm
libnvdimm, region: fix flush hint table thinko
2016-09-24 11:45:38 -07:00
nvme
nvme-rdma: only clear queue flags after successful connect
2016-09-22 19:58:17 -06:00
nvmem
of
of: fix reference counting in of_graph_get_endpoint_by_regs
2016-08-15 11:15:05 -05:00
oprofile
parisc
parport
pci
PCI updates for v4.8:
2016-09-14 14:06:30 -07:00
pcmcia
pcmcia: lubbock: fix sockets configuration
2016-09-12 10:57:01 +01:00
perf
drivers/perf: arm_pmu: Fix NULL pointer dereference during probe
2016-09-02 17:17:52 +01:00
phy
pinctrl
pinctrl: sunxi: fix uart1 CTS/RTS pins at PG on A23/A33
2016-08-23 12:28:31 +02:00
platform
intel_pmic_gpio: Make explicitly non-modular
2016-08-28 22:31:52 -07:00
pnp
power
power_supply: tps65217-charger: fix missing platform_set_drvdata()
2016-08-15 23:10:44 +02:00
powercap
pps
ps3
ptp
pwm
rapidio
rapidio/rio_cm: avoid GFP_KERNEL in atomic context
2016-09-19 15:36:17 -07:00
ras
regulator
Merge remote-tracking branches 'regulator/fix/email' and 'regulator/fix/qcom-smd' into regulator-linus
2016-09-06 12:31:34 +01:00
remoteproc
reset
rpmsg
rtc
s390
s390/qeth: fix setting VIPA address
2016-09-16 04:29:14 -04:00
sbus
scsi
SCSI fixes on 20161001
2016-10-01 07:37:15 -07:00
sfi
sh
sn
soc
spi
Merge remote-tracking branches 'spi/fix/lock', 'spi/fix/maintainers', 'spi/fix/put', 'spi/fix/pxa2xx', 'spi/fix/sh-msiof' and 'spi/fix/timeout' into spi-linus
2016-09-06 12:32:09 +01:00
spmi
ssb
staging
media fixes for v4.8-rc8
2016-09-22 09:04:49 -07:00
target
tc
thermal
thermal: rcar_thermal: Fix priv->zone error handling
2016-09-06 20:46:06 +08:00
thunderbolt
thunderbolt: Don't declare Falcon Ridge unsupported
2016-08-31 13:25:02 +02:00
tty
serial: 8250: added acces i/o products quad and octal serial cards
2016-08-31 16:28:26 +02:00
uio
usb
USB-serial fixes for v4.8-rc7
2016-09-16 17:42:10 +02:00
uwb
vfio
vhost
vhost/scsi: fix reuse of &vq->iov[out] in response
2016-08-23 17:16:57 +03:00
video
virt
virtio
virtio: mark vring_dma_dev() static
2016-09-09 21:12:35 +03:00
vlynq
vme
w1
watchdog
xen
xenbus: don't look up transaction IDs for ordinary writes
2016-08-24 18:16:18 +01:00
zorro
Kconfig
Makefile