No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Guenter Roeck 42dcb0a374 parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
[ Upstream commit 0568b6f0d863643db2edcc7be31165740c89fa82 ]

IPv6 checksum tests with unaligned addresses on 64-bit builds result
in unexpected failures.

Expected expected == csum_result, but
    expected == 46591 (0xb5ff)
    csum_result == 46381 (0xb52d)
with alignment offset 1

Oddly enough, the problem disappeared after adding test code into
the beginning of csum_ipv6_magic().

As it turns out, the 'sum' parameter of csum_ipv6_magic() is declared as
__wsum, which is a 32-bit variable. However, it is treated as 64-bit
variable in the 64-bit assembler code. Tests showed that the upper 32 bit
of the register used to pass the variable are _not_ cleared when entering
the function. This can result in checksum calculation errors.

Clearing the upper 32 bit of 'sum' as first operation in the assembler
code fixes the problem.

Acked-by: Helge Deller <deller@gmx.de>
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:51:24 +02:00
arch parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds 2024-04-13 12:51:24 +02:00
block block: sed-opal: handle empty atoms when parsing response 2024-03-26 18:22:12 -04:00
certs
crypto crypto: api - Disallow identical driver names 2024-02-23 08:24:48 +01:00
Documentation x86/cpu: Support AMD Automatic IBRS 2024-04-13 12:51:21 +02:00
drivers mtd: rawnand: meson: fix scrambling mode value in command macro 2024-04-13 12:51:23 +02:00
fs ubifs: Set page uptodate in the correct place 2024-04-13 12:51:23 +02:00
include timers: Rename del_timer_sync() to timer_delete_sync() 2024-04-13 12:51:21 +02:00
init rootfs: Fix support for rootfstype= when root= is given 2024-01-25 14:34:30 -08:00
ipc
kernel timers: Rename del_timer_sync() to timer_delete_sync() 2024-04-13 12:51:21 +02:00
lib net: blackhole_dev: fix build warning for ethh set but not used 2024-03-26 18:22:15 -04:00
LICENSES
mm userfaultfd: fix mmap_changing checking in mfill_atomic_hugetlb 2024-03-01 13:13:33 +01:00
net netfilter: nf_tables: do not compare internal table flags on updates 2024-03-26 18:22:25 -04:00
samples media: rename VFL_TYPE_GRABBER to _VIDEO 2024-03-26 18:22:22 -04:00
scripts kconfig: fix infinite loop when expanding a macro at the end of file 2024-03-26 18:22:24 -04:00
security smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity() 2024-04-13 12:51:22 +02:00
sound ALSA: usb-audio: Stop parsing channels bits when all channels are found. 2024-03-26 18:22:23 -04:00
tools selftests/mqueue: Set timeout to 180 seconds 2024-04-13 12:51:23 +02:00
usr
virt KVM: Always flush async #PF workqueue when vCPU is being destroyed 2024-04-13 12:51:22 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS iio: stx104: Move to addac subdirectory 2023-08-30 16:27:12 +02:00
Makefile Linux 5.4.273 2024-03-26 18:23:12 -04:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.