linux/drivers
Guillaume Nault 1bec9d0c00 ipv4: Convert ->flowi4_tos to dscp_t.
Convert the ->flowic_tos field of struct flowi_common from __u8 to
dscp_t, rename it ->flowic_dscp and propagate these changes to struct
flowi and struct flowi4.

We've had several bugs in the past where ECN bits could interfere with
IPv4 routing, because these bits were not properly cleared when setting
->flowi4_tos. These bugs should be fixed now and the dscp_t type has
been introduced to ensure that variables carrying DSCP values don't
accidentally have any ECN bits set. Several variables and structure
fields have been converted to dscp_t already, but the main IPv4 routing
structure, struct flowi4, is still using a __u8. To avoid any future
regression, this patch converts it to dscp_t.

There are many users to convert at once. Fortunately, around half of
->flowi4_tos users already have a dscp_t value at hand, which they
currently convert to __u8 using inet_dscp_to_dsfield(). For all of
these users, we just need to drop that conversion.

But, although we try to do the __u8 <-> dscp_t conversions at the
boundaries of the network or of user space, some places still store
TOS/DSCP variables as __u8 in core networking code. Those can hardly be
converted either because the data structure is part of UAPI or because
the same variable or field is also used for handling ECN in other parts
of the code. In all of these cases where we don't have a dscp_t
variable at hand, we need to use inet_dsfield_to_dscp() when
interacting with ->flowi4_dscp.

Changes since v1:
  * Fix space alignment in __bpf_redirect_neigh_v4() (Ido).

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/29acecb45e911d17446b9a3dbdb1ab7b821ea371.1756128932.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-08-26 17:34:31 -07:00
..
accel YAUAFFix due to dma_buf_fd() misuse 2025-08-12 12:10:33 -07:00
accessibility
acpi Merge branches 'acpi-ec' and 'acpi-processor' 2025-08-14 13:09:27 +02:00
amba
android Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
ata ata: libata-scsi: Fix CDL control 2025-08-14 18:58:12 +09:00
atm
auxdisplay
base regmap: Fixes for v6.17 2025-08-09 08:40:28 +03:00
bcma treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
block ublk: check for unprivileged daemon on each I/O fetch 2025-08-11 07:57:48 -06:00
bluetooth Bluetooth: btnxpuart: Uses threaded IRQ for host wakeup handling 2025-08-15 10:13:26 -04:00
bus soc: driver updates for 6.17 2025-07-29 11:13:27 -07:00
cache
cdrom cdrom: Call cdrom_mrw_exit from cdrom_release function 2025-07-22 19:10:17 -06:00
cdx cdx: Fix missing GENERIC_MSI_IRQ on compile test 2025-07-16 14:17:31 +02:00
char Some small fixes for the IPMI driver 2025-08-07 07:38:25 +03:00
clk This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
clocksource A treewide cleanup of struct cycle_counter const annotations: 2025-07-29 14:02:53 -07:00
comedi Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
connector
counter
cpufreq cpufreq: intel_pstate: Support Clearwater Forest OOB mode 2025-08-11 21:49:47 +02:00
cpuidle cpuidle: governors: menu: Avoid using invalid recent intervals data 2025-08-11 21:46:14 +02:00
crypto This update includes the following changes: 2025-07-31 09:45:28 -07:00
cxl Significant patch series in this pull request: 2025-08-03 16:23:09 -07:00
dax
dca
devfreq PM / devfreq: Add HiSilicon uncore frequency scaling driver 2025-07-14 20:23:57 +09:00
dio
dma dmaengine updates for v6.17 2025-08-01 12:35:12 -07:00
dma-buf drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
dpll dpll: zl3073x: ZL3073X_I2C and ZL3073X_SPI should depend on NET 2025-08-04 17:22:55 -07:00
edac - i10nm: 2025-07-29 16:30:38 -07:00
eisa
extcon
firewire firewire: core: reallocate buffer for FCP address handlers when more than 4 are registered 2025-08-03 21:20:15 +09:00
firmware EFI updates for v6.17 2025-08-09 18:10:01 +03:00
fpga
fsi Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
fwctl
gnss
gpio gpio: mlxbf3: use platform_get_irq_optional() 2025-08-12 15:40:28 +02:00
gpu - Some more xe_migrate_access_memory fixes (Auld) 2025-08-15 09:50:26 +10:00
greybus
hid treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
hsi
hte
hv ARM: 2025-07-30 17:14:01 -07:00
hwmon treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
hwspinlock
hwtracing
i2c treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
i3c i3c: add missing include to internal header 2025-07-31 02:25:17 +02:00
idle intel_idle: Allow loading ACPI tables for any family 2025-08-11 21:43:26 +02:00
iio treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
infiniband {rdma,net}/mlx5: export mlx5_vport_get_vhca_id 2025-08-15 12:17:47 -07:00
input treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
interconnect Char / Misc / IIO / other driver updates for 6.17-rc1 2025-07-29 09:52:01 -07:00
iommu pci-v6.17-changes 2025-08-01 13:59:07 -07:00
ipack
irqchip irqchip/mvebu-gicp: Use resource_size() for ioremap() 2025-08-06 17:00:40 +02:00
isdn
leds treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
macintosh
mailbox mailbox/pcc: support mailbox management of the shared buffer 2025-08-07 23:49:56 -05:00
mcb mcb: use sysfs_emit_at() instead of scnprintf() in show functions 2025-07-16 14:17:07 +02:00
md block-6.17-20250808 2025-08-09 08:47:28 +03:00
media treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
memory Memory controller drivers for v6.17 2025-07-22 22:47:00 +02:00
memstick memstick: core: Zero initialize id_reg in h_memstick_read_dev_id() 2025-07-16 12:01:09 +02:00
message
mfd treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
misc treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
mmc MMC core: 2025-07-29 12:05:38 -07:00
most
mtd * MTD changes: 2025-07-31 13:43:02 -07:00
mux hardening updates for v6.17-rc1 2025-07-28 17:16:12 -07:00
net ipv4: Convert ->flowi4_tos to dscp_t. 2025-08-26 17:34:31 -07:00
nfc nfc: s3fwrn5: Use SHA-1 library instead of crypto_shash 2025-08-18 17:29:08 -07:00
ntb
nubus
nvdimm Summary of significant series in this pull request: 2025-07-31 14:57:54 -07:00
nvme nvmet: exit debugfs after discovery subsystem exits 2025-08-07 06:27:58 -06:00
nvmem Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
of ARM: 2025-07-30 17:14:01 -07:00
opp
parisc parisc/power: Move soft-power into power.c 2025-07-23 11:52:48 +02:00
parport
pci PCI: vmd: Remove MSI-X check on child devices 2025-08-12 13:45:01 -05:00
pcmcia
peci
perf drivers/perf: hisi: Support PMUs with no interrupt 2025-07-14 15:42:16 +01:00
phy phy-for-6.17 2025-08-01 12:31:50 -07:00
pinctrl treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
platform treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
pmdomain pmdomain: qcom: rpmhpd: Add Glymur RPMh Power Domains 2025-07-23 12:12:16 +02:00
pnp
power power supply and reset changes for the 6.17 series 2025-07-31 21:39:01 -07:00
powercap platform-drivers-x86 for v6.17-1 2025-07-28 23:21:28 -07:00
pps
ps3
ptp ptp: ptp_clockmatrix: Remove redundant semicolons 2025-08-14 17:35:49 -07:00
pwm treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
rapidio
ras
regulator regulator: Fix for v6.17 2025-08-09 08:41:53 +03:00
remoteproc remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
reset This is the usual collection of primarily clk driver updates. The big part of 2025-07-31 13:36:27 -07:00
rpmsg remoteproc updates for v6.17 2025-08-01 15:02:25 -07:00
rtc RTC for 6.17 2025-08-03 20:17:34 -07:00
s390 more s390 updates for 6.17 merge window 2025-08-08 06:56:55 +03:00
sbus
scsi Merge branch '6.17/scsi-queue' into 6.17/scsi-fixes 2025-08-12 21:36:18 -04:00
sh
siox
slimbus
soc soc/tegra: pmc: Ensure power-domains are in a known state 2025-08-11 12:24:43 +02:00
soundwire soundwire updates for 6.17 2025-08-01 11:09:27 -07:00
spi spi: Fixes for v6.17 2025-08-09 08:43:24 +03:00
spmi
ssb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
staging staging: octeon: Convert to skb_dst_drop 2025-08-19 17:54:38 -07:00
target SCSI misc on 20250806 2025-08-06 15:44:25 +03:00
tc
tee
thermal Driver core changes for 6.17-rc1 2025-07-29 12:15:39 -07:00
thunderbolt thunderbolt: Fix copy+paste error in match_service_id() 2025-07-21 16:33:43 +02:00
tty module: Rename EXPORT_SYMBOL_GPL_FOR_MODULES to EXPORT_SYMBOL_FOR_MODULES 2025-08-11 16:16:36 +02:00
ufs Merge branch '6.17/scsi-queue' into 6.17/scsi-fixes 2025-08-12 21:36:18 -04:00
uio
usb treewide: rename GPIO set callbacks back to their original names 2025-08-07 10:07:06 +02:00
vdpa vdpa: Fix IDR memory leak in VDUSE module exit 2025-08-01 09:11:08 -04:00
vfio VFIO updates for v6.17-rc1 v2 2025-08-07 07:32:50 +03:00
vhost vhost: initialize vq->nheads properly 2025-08-05 05:57:40 -04:00
video gpio updates for v6.17-rc1 2025-08-09 08:15:43 +03:00
virt virt: sev-guest: Satisfy linear mapping requirement in get_derived_key() 2025-08-15 17:05:39 +02:00
virtio virtio, vhost: features, fixes 2025-08-01 14:17:48 -07:00
w1
watchdog watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition 2025-07-28 12:07:08 +02:00
xen xen/gntdev: remove struct gntdev_copy_batch from stack 2025-07-14 17:10:09 +02:00
zorro
Kconfig drm for 6.17-rc1 2025-07-30 19:26:49 -07:00
Makefile