OSDN Git Service

signal/sparc: In setup_tsb_params convert open coded BUG into BUG
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 20 Oct 2021 17:43:54 +0000 (12:43 -0500)
committerEric W. Biederman <ebiederm@xmission.com>
Mon, 25 Oct 2021 20:56:29 +0000 (15:56 -0500)
The function setup_tsb_params has exactly one caller tsb_grow.  The
function tsb_grow passes in a tsb_bytes value that is between 8192 and
1048576 inclusive, and is guaranteed to be a power of 2.  The function
setup_tsb_params verifies this property with a switch statement and
then prints an error and causes the task to exit if this is not true.

In practice that print statement can never be reached because tsb_grow
never passes in a bad tsb_size.  So if tsb_size ever gets a bad value
that is a kernel bug.

So replace the do_exit which is effectively an open coded version of
BUG() with an actuall call to BUG().  Making it clearer that this
is a case that can never, and should never happen.

Cc: David Miller <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Link: https://lkml.kernel.org/r/20211020174406.17889-8-ebiederm@xmission.com
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
arch/sparc/mm/tsb.c

index 0dce4b7..9122057 100644 (file)
@@ -266,7 +266,7 @@ static void setup_tsb_params(struct mm_struct *mm, unsigned long tsb_idx, unsign
        default:
                printk(KERN_ERR "TSB[%s:%d]: Impossible TSB size %lu, killing process.\n",
                       current->comm, current->pid, tsb_bytes);
-               do_exit(SIGSEGV);
+               BUG();
        }
        tte |= pte_sz_bits(page_sz);