Skip to content

[PW_SID:973936] Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"#553

Closed
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw973936
Closed

[PW_SID:973936] Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"#553
linux-riscv-bot wants to merge 2 commits into
workflow__riscv__fixesfrom
pw973936

Conversation

@linux-riscv-bot
Copy link
Copy Markdown

PR for series 973936 applied to workflow__riscv__fixes

Name: Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=973936
Version: 1

Linux RISC-V bot and others added 2 commits June 12, 2025 20:20
This reverts commit ad5643c ("riscv: Define TASK_SIZE_MAX for
__access_ok()").

This commit changes TASK_SIZE_MAX to be LONG_MAX to optimize access_ok(),
because the previous TASK_SIZE_MAX (default to TASK_SIZE) requires some
computation.

The reasoning was that all user addresses are less than LONG_MAX, and all
kernel addresses are greater than LONG_MAX. Therefore access_ok() can
filter kernel addresses.

Addresses between TASK_SIZE and LONG_MAX are not valid user addresses, but
access_ok() let them pass. That was thought to be okay, because they are
not valid addresses at hardware level.

Unfortunately, one case is missed: get_user_pages_fast() happily accepts
addresses between TASK_SIZE and LONG_MAX. futex(), for instance, uses
get_user_pages_fast(). This causes the problem reported by Robert [1].

Therefore, revert this commit. TASK_SIZE_MAX is changed to the default:
TASK_SIZE.

This unfortunately reduces performance, because TASK_SIZE is more expensive
to compute compared to LONG_MAX. But correctness first, we can think about
optimization later, if required.

Reported-by: <rtm@csail.mit.edu>
Closes: https://lore.kernel.org/linux-riscv/77605.1750245028@localhost/
Signed-off-by: Nam Cao <namcao@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 104.17 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 2001.13 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 2699.49 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.96 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 22.04 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.68 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 71.83 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
kdoc
Desc: Detects for kdoc errors
Duration: 0.78 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
module-param
Desc: Detect module_param changes
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot
Copy link
Copy Markdown
Author

Patch 1: "Revert "riscv: Define TASK_SIZE_MAX for __access_ok()""
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.30 seconds
Result: PASS

@linux-riscv-bot linux-riscv-bot force-pushed the workflow__riscv__fixes branch 2 times, most recently from 6ce2eef to b5ded79 Compare June 24, 2025 01:05
@linux-riscv-bot linux-riscv-bot deleted the pw973936 branch June 24, 2025 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants