public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeffrey Hugo <jhugo@codeaurora.org>
To: Bhaumik Bhatt <bbhatt@codeaurora.org>, mani@kernel.org
Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	hemantk@codeaurora.org
Subject: Re: [PATCH v1 2/8] bus: mhi: core: Add range check for channel id received in event ring
Date: Mon, 27 Apr 2020 12:50:30 -0600	[thread overview]
Message-ID: <0dc0310f-3fbd-088c-75cd-291e7c76e83b@codeaurora.org> (raw)
In-Reply-To: <1588012342-4995-3-git-send-email-bbhatt@codeaurora.org>

On 4/27/2020 12:32 PM, Bhaumik Bhatt wrote:
> From: Hemant Kumar <hemantk@codeaurora.org>
> 
> MHI data completion handler function reads channel id from event
> ring element. Value is under the control of MHI devices and can be
> any value between 0 and 255. In order to prevent out of bound access
> add a bound check against the max channel supported by controller
> and skip processing of that event ring element.
> 
> Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>

I believe your SOB is needed here after Hemant's per section 11 of 
Documentation/process/submitting-patches.rst

> ---
>   drivers/bus/mhi/core/main.c | 3 +++
>   1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c
> index 23154f1..ba8afa7 100644
> --- a/drivers/bus/mhi/core/main.c
> +++ b/drivers/bus/mhi/core/main.c
> @@ -827,6 +827,9 @@ int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl,
>   		enum mhi_pkt_type type = MHI_TRE_GET_EV_TYPE(local_rp);
>   
>   		chan = MHI_TRE_GET_EV_CHID(local_rp);
> +		if (WARN_ON(chan >= mhi_cntrl->max_chan))
> +			continue;
> +
>   		mhi_chan = &mhi_cntrl->mhi_chan[chan];
>   
>   		if (likely(type == MHI_PKT_TYPE_TX_EVENT)) {
> 

How does this work?

I understand the need for the range check, however I looks like this 
change doesn't do proper handling.

Since all you do is "continue", we'll remain stuck in the while loop 
this exists in, continuously "processing" the same event, failing the 
same check, and spamming the kernel log with the WARN_ON output until 
the end of time.

What am I missing?

What is the behavior you want?  Do you want to just drop/ignore the 
invalid event, or issue a reset of the device because it is clearly 
misbehaving?

-- 
Jeffrey Hugo
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.

  reply	other threads:[~2020-04-27 18:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27 18:32 [RESEND PATCH v1 0/8] Bug fixes and improved logging in MHI Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 1/8] bus: mhi: core: Cache intmod from mhi event to mhi channel Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 2/8] bus: mhi: core: Add range check for channel id received in event ring Bhaumik Bhatt
2020-04-27 18:50   ` Jeffrey Hugo [this message]
2020-04-28  1:28     ` Hemant Kumar
2020-04-27 18:32 ` [PATCH v1 3/8] bus: mhi: core: Read transfer length from an event properly Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 4/8] bus: mhi: core: Handle firmware load using state worker Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 5/8] bus: mhi: core: WARN_ON for malformed vector table Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 6/8] bus: mhi: core: Return appropriate error codes for AMSS load failure Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 7/8] bus: mhi: core: Improve debug logs for loading firmware Bhaumik Bhatt
2020-04-27 18:32 ` [PATCH v1 8/8] bus: mhi: core: Ensure non-zero session or sequence ID values Bhaumik Bhatt
  -- strict thread matches above, loose matches on Subject: below --
2020-04-22  4:19 [PATCH v1 0/8] Bug fixes and improved logging in MHI Bhaumik Bhatt
2020-04-22  4:19 ` [PATCH v1 2/8] bus: mhi: core: Add range check for channel id received in event ring Bhaumik Bhatt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0dc0310f-3fbd-088c-75cd-291e7c76e83b@codeaurora.org \
    --to=jhugo@codeaurora.org \
    --cc=bbhatt@codeaurora.org \
    --cc=hemantk@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mani@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox