From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x2245JqIkGp/QuunSpfMCAMu7urtnjqhgGIeAfLEMTNeoMG/Kx9gMB/9OSQ8bhNO2hT3lZxTG ARC-Seal: i=1; a=rsa-sha256; t=1517257003; cv=none; d=google.com; s=arc-20160816; b=CbkQPo7MPAYXozkPuJa+Kah03UDJ+LqwrwW9qRj39s6qUM8yTtw7AlO0xcmXyx+Vof lfxgr2wNqaSSfka6jfQW77lwcpCCZvf1raU09ShV0dW3SatXkEWPlR5InMa1r2uLotYO OMEMoFIwJ9h9aff5WM1Z1/6vBdAv9OYCApWXfOjtV/tBCIOJsw/kdyF3AXhQbllRheAc vNF/9LOf2o4I53X1TOZz2vx6vtb0EVq44/2HWyvIt98ZJ36DmM00nAn3k0ZfTPpS9IuG 1LZH24lzZI8G9/s/xydo3+vFlZvA0mj7ymN3Cg8FE3YUBRtOOZWoKOh1cLoRiphcgeJ5 asiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=LvRNhanF0jSQxAbBgStQQAAB42bJ6AlIEhk2rporlkY=; b=gHFUP4/KqYWzbHr6iBcx3Eg/g+cpUpxh40V53+vGQWHgTwVu9AMTYckN3Vc2zqvKa1 tvezkgx9wMEue2/wy3blhKpVMBnd0e8o1YsqtOBfBENgBRIh1gh501lbZ3r6wWTozz8c Dk3n22FNWT3E5Y/fu1xYWXNtUN0KVjmw2Cf7EMf0s42MK1eGjpyQS8KJHkgG+BMMax0N og2tcaZvHXty6LYguu4VoynkhBrRwaWWjjumdIrb88BpawKAdPsshDmy4ds0/Lhn0/ay e4DHpgc5V/BGu535Ix9N7Nchh0wMO2kvN3j1mTVSDT5CTRwNvejJwm5sjD1jMSZd/RTQ TwOQ== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.71.90 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Russell King Subject: [PATCH 4.14 18/71] ARM: net: bpf: correct stack layout documentation Date: Mon, 29 Jan 2018 13:56:46 +0100 Message-Id: <20180129123828.532416909@linuxfoundation.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180129123827.271171825@linuxfoundation.org> References: <20180129123827.271171825@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-LABELS: =?utf-8?b?IlxcU2VudCI=?= X-GMAIL-THRID: =?utf-8?q?1590959279997091280?= X-GMAIL-MSGID: =?utf-8?q?1590959279997091280?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Russell King commit 0005e55a79cfda88199e41a406a829c88d708c67 upstream. The stack layout documentation incorrectly suggests that the BPF JIT scratch space starts immediately below BPF_FP. This is not correct, so let's fix the documentation to reflect reality. Signed-off-by: Russell King Signed-off-by: Greg Kroah-Hartman --- arch/arm/net/bpf_jit_32.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c @@ -28,24 +28,43 @@ int bpf_jit_enable __read_mostly; /* - * eBPF prog stack layout + * eBPF prog stack layout: * * high - * original ARM_SP => +-----+ eBPF prologue - * |FP/LR| - * current ARM_FP => +-----+ - * | ... | callee saved registers - * eBPF fp register => +-----+ <= (BPF_FP) + * original ARM_SP => +-----+ + * | | callee saved registers + * +-----+ <= (BPF_FP + SCRATCH_SIZE) * | ... | eBPF JIT scratch space - * | | eBPF prog stack + * eBPF fp register => +-----+ + * (BPF_FP) | ... | eBPF prog stack * +-----+ * |RSVD | JIT scratchpad - * current ARM_SP => +-----+ <= (BPF_FP - STACK_SIZE) + * current ARM_SP => +-----+ <= (BPF_FP - STACK_SIZE + SCRATCH_SIZE) * | | * | ... | Function call stack * | | * +-----+ * low + * + * The callee saved registers depends on whether frame pointers are enabled. + * With frame pointers (to be compliant with the ABI): + * + * high + * original ARM_SP => +------------------+ \ + * | pc | | + * current ARM_FP => +------------------+ } callee saved registers + * |r4-r8,r10,fp,ip,lr| | + * +------------------+ / + * low + * + * Without frame pointers: + * + * high + * original ARM_SP => +------------------+ + * | lr | (optional) + * | r4-r8,r10 | callee saved registers + * +------------------+ + * low */ #define STACK_OFFSET(k) (k)