[U-Boot] [PATCH 1/1] arm: sunxi: Add NULL pointer check
Stefan Mavrodiev
stefan at olimex.com
Thu Dec 13 07:12:57 UTC 2018
On 12/6/18 8:41 AM, Stefan Mavrodiev wrote:
>
> On 12/5/18 5:46 PM, Maxime Ripard wrote:
>> On Wed, Dec 05, 2018 at 02:27:57PM +0200, Stefan Mavrodiev wrote:
>>> Current driver doesn't check if the destination pointer is NULL.
>>> This cause the data from the FIFO to be stored inside the internal
>>> SDRAM ( address 0 ).
>>>
>>> The patch add simple check if the destination pointer is NULL.
>>>
>>> Signed-off-by: Stefan Mavrodiev <stefan at olimex.com>
>>> ---
>>> drivers/spi/sun4i_spi.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/spi/sun4i_spi.c b/drivers/spi/sun4i_spi.c
>>> index b86b5a00ad..38cc743c61 100644
>>> --- a/drivers/spi/sun4i_spi.c
>>> +++ b/drivers/spi/sun4i_spi.c
>>> @@ -129,7 +129,8 @@ static inline void sun4i_spi_drain_fifo(struct
>>> sun4i_spi_priv *priv, int len)
>>> while (len--) {
>>> byte = readb(&priv->regs->rxdata);
>>> - *priv->rx_buf++ = byte;
>>> + if (priv->rx_buf)
>>> + *priv->rx_buf++ = byte;
>> It seems pretty inefficient to test the pointer at each access, it
>> would be better to check it once before starting the transfer.
>>
>> I'm not sure if that can even happen?
>
> I've tried to check that before draining the receive fifo, but then
> the controller doesn't
> work. I'm thinking that the fifo must be drained in any case.
>
>>
>> Maxime
>>
Any further comments?
More information about the U-Boot
mailing list