1
0
Fork 0
forked from mirror/openwrt

ramips: kernel: drop ip_fast_csum() dead loop fix

The issue described in the patch has been fixed by commit
604355e8c4 ("kernel: fix fraglist GRO on linux 6.12")

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22525
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
This commit is contained in:
Shiji Yang 2026-03-21 00:53:00 +08:00 committed by Robert Marko
parent 7ba45de827
commit b9299ae0e7
No known key found for this signature in database
GPG key ID: 66D805C09F36AFA5

View file

@ -1,28 +0,0 @@
From e34037bd3df9d80c96eda35d346a9220c71a3459 Mon Sep 17 00:00:00 2001
From: Shiji Yang <yangshiji66@outlook.com>
Date: Fri, 30 May 2025 19:56:16 +0800
Subject: [PATCH] MIPS: checksum: check if data length is zero in
ip_fast_csum()
If ihl equals 0, the nonsensical infinite do while loop will
eventually access an invalid memory address, which will cause
the system to halt.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
---
arch/mips/include/asm/checksum.h | 4 ++++
1 file changed, 4 insertions(+)
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -101,6 +101,10 @@ static inline __sum16 ip_fast_csum(const
unsigned int csum;
int carry;
+ /* ihl should never be zero */
+ if (unlikely(ihl == 0))
+ return 0;
+
csum = word[0];
csum += word[1];
carry = (csum < word[1]);