[PW_SID:1094234] lib and lib/cmdline enhancements#1925
Conversation
In '_parse_integer_limit()', adjust native integer arithmetic with near-to-overflow branch where 'check_mul_overflow()' and 'check_add_overflow()' are used to check whether an intermediate result goes out of range, and denote such a case with ULLONG_MAX, thus making the function more similar to standard C library's 'strtoull()'. Adjust comment to kernel-doc style as well. Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Since '_parse_integer_limit()' (and so 'simple_strtoull()') is now capable to handle overflow, adjust 'memparse()' to handle overflow (denoted by ULLONG_MAX) returned from 'simple_strtoull()'. Also use 'check_shl_overflow()' to catch an overflow possibly caused by processing size suffix and denote it with ULLONG_MAX as well. Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add a few more string to 64-bit integer conversion tests to check whether 'kstrtoull()', 'kstrtoll()', 'kstrtou64()' and 'kstrtos64()' can handle overflows reported by '_parse_integer_limit()'. Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Better late than never, now there is a long-awaited basic test for 'memparse()' which is provided by cmdline.c. Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Fix 'get_option()', 'memparse()' and 'parse_option_str()' comments to match the commonly used style as suggested by kernel-doc -Wreturn. Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add riscv32-specific '__ashldi3()', '__ashrdi3()', and '__lshrdi3()'. Initially it was intended to fix the following link error observed when building EFI-enabled kernel with CONFIG_EFI_STUB=y and CONFIG_EFI_GENERIC_STUB=y: riscv32-linux-gnu-ld: ./drivers/firmware/efi/libstub/lib-cmdline.stub.o: in function `__efistub_.L49': __efistub_cmdline.c:(.init.text+0x1f2): undefined reference to `__efistub___ashldi3' riscv32-linux-gnu-ld: __efistub_cmdline.c:(.init.text+0x202): undefined reference to `__efistub___lshrdi3' Reported at [1] trying to build https://patchew.org/linux/20260212164413.889625-1-dmantipov@yandex.ru, tested with 'qemu-system-riscv32 -M virt' only. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202603041925.KLKqpK6N-lkp@intel.com [1] Suggested-by: Ard Biesheuvel <ardb@kernel.org> Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Assisted-by: Gemini:gemini-3.1-pro-preview sashiko Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add KUnit tests for '__ashldi3()', '__ashrdi3()', and '__lshrdi3()' helper functions used to implement 64-bit arithmetic shift left, arithmetic shift right and logical shift right, respectively, on a 32-bit CPUs. Tested with 'qemu-system-riscv32 -M virt' and 'qemu-system-arm -M virt'. Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
When building vmlinuz.efi with CONFIG_EFI_ZBOOT enabled, '__lshrdi3()' is also needed to fix yet another link error: riscv32-linux-gnu-ld: drivers/firmware/efi/libstub/lib-cmdline.stub.o: in function `__efistub_.L49': __efistub_cmdline.c:(.init.text+0x202): undefined reference to `__efistub___lshrdi3' And since riscv64 can have CONFIG_EFI_ZBOOT but doesn't need these library routines, rely on CONFIG_32BIT to manage linking of lib-ashldi3.o and lib-lshrdi3.o on riscv32 only. Reported-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Closes: https://lore.kernel.org/linux-riscv/20260409050018.GA371560@inky.localdomain Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Suggested-by: Ard Biesheuvel <ardb@kernel.org> Assisted-by: Gemini:gemini-3.1-pro-preview sashiko Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 1: "[v10,1/8] lib: fix _parse_integer_limit() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 2: "[v10,2/8] lib: fix memparse() to handle overflow" |
|
Patch 6: "[v10,6/8] riscv: add platform-specific double word shifts for riscv32" |
|
Patch 6: "[v10,6/8] riscv: add platform-specific double word shifts for riscv32" |
|
Patch 6: "[v10,6/8] riscv: add platform-specific double word shifts for riscv32" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 7: "[v10,7/8] lib: kunit: add tests for __ashldi3(), __ashrdi3(), and __lshrdi3()" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
|
Patch 8: "[v10,8/8] riscv: fix building compressed EFI image" |
2d4fcdd to
cd9d421
Compare
PR for series 1094234 applied to workflow__riscv__fixes
Name: lib and lib/cmdline enhancements
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1094234
Version: 10