[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <BYAPR07MB53816230488971799AFC5E8BDD939@BYAPR07MB5381.namprd07.prod.outlook.com>
Date: Mon, 8 Mar 2021 07:37:51 +0000
From: Pawel Laszczak <pawell@...ence.com>
To: Peter Chen <peter.chen@...nel.org>
CC: "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Rahul Kumar <kurahul@...ence.com>,
Sanket Parmar <sparmar@...ence.com>
Subject: RE: [PATCH] usb: cdnsp: Fixes incorrect value in ISOC TRB
You have right. It's the operator priority issue.
I've made this condition as separate "if" statement as suggested by Greg.
V2 has been posted.
Pawel
>
>
>On 21-03-05 06:10:59, Pawel Laszczak wrote:
>> From: Pawel Laszczak <pawell@...ence.com>
>>
>> The value "start_cycle ? 0 : 1" in assignment caused
>> implicit truncation whole value to 1 byte.
>> To fix the issue, an explicit casting has been added.
>
>The root cause for this issue should be operator "|" priority higher
>than "? :", I think just add () for start_cycle ? 0 : 1 could fix it.
>Please double confirm it, and change the commit log if necessary
>
>Peter
>>
>> Fixes: commit 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
>> Signed-off-by: Pawel Laszczak <pawell@...ence.com>
>> ---
>> drivers/usb/cdns3/cdnsp-ring.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/cdns3/cdnsp-ring.c b/drivers/usb/cdns3/cdnsp-ring.c
>> index f9170d177a89..d35bc4490216 100644
>> --- a/drivers/usb/cdns3/cdnsp-ring.c
>> +++ b/drivers/usb/cdns3/cdnsp-ring.c
>> @@ -2197,7 +2197,7 @@ static int cdnsp_queue_isoc_tx(struct cdnsp_device *pdev,
>> * inverted in the first TDs isoc TRB.
>> */
>> field = TRB_TYPE(TRB_ISOC) | TRB_TLBPC(last_burst_pkt) |
>> - start_cycle ? 0 : 1 | TRB_SIA | TRB_TBC(burst_count);
>> + (u32)(start_cycle ? 0 : 1) | TRB_SIA | TRB_TBC(burst_count);
>>
>> /* Fill the rest of the TRB fields, and remaining normal TRBs. */
>> for (i = 0; i < trbs_per_td; i++) {
>> --
>> 2.25.1
>>
--
Thanks,
Pawel Laszczak
Powered by blists - more mailing lists