[lustre-devel] [PATCH v2] staging/lustre/lnet: changes value to correct type for assignment
Lidza Louina
lidza.louina at oracle.com
Thu Jun 23 21:03:51 UTC 2016
----- Original Message -----
From: oleg.drokin at intel.com
To: lidza.louina at oracle.com
Cc: devel at driverdev.osuosl.org, gregkh at linuxfoundation.org, lustre-devel at lists.lustre.org
Sent: Thursday, June 23, 2016 12:50:01 PM GMT -08:00 US/Canada Pacific
Subject: Re: [lustre-devel] [PATCH v2] staging/lustre/lnet: changes value to correct type for assignment
On Jun 23, 2016, at 3:27 PM, Lidza Louina wrote:
>
> ----- Original Message -----
> From: oleg.drokin at intel.com
> To: lidza.louina at oracle.com
> Cc: gregkh at linuxfoundation.org, lustre-devel at lists.lustre.org, devel at driverdev.osuosl.org, andreas.dilger at intel.com
> Sent: Thursday, June 23, 2016 12:14:28 PM GMT -08:00 US/Canada Pacific
> Subject: Re: [lustre-devel] [PATCH v2] staging/lustre/lnet: changes value to correct type for assignment
>
>
> On Jun 23, 2016, at 2:56 PM, Lidza Louina wrote:
>
>> The code attempted to add an unsigned int to a an unsigned 64-bit
>> integer. This patch makes the code use the correct type of int to
>> suppress a smatch warning.
>
> I think you might want to update the commit message too, because
> it does not really make much sense now.
>
> How about
>
> "The patch changes a value's type so it can be assigned correctly.
> This problem was caught by smatch."
I think that still does not convey the idea of teh change, also there's no
assignment going on here.
Perhaps
To make the shift safer, have it operate on a 64 bit integer instead of
default 32bit?
There's no bug yet, so this is just for future-proofing.
This potential problem was caught by smatch.
Also you'll need to update the patch subject.
I didn't want to copy you word-for-word:
[PATCH v3] staging/lustre/lnet: changes type for safer shift
The shift was potentially unsafe because of conflicting types.
This patch changes the regular int (1) to an unsigned long long int because
rec->rec_lh_cookie is an unsigned 64-bit value. This could be a problem down
the line.
This was caught by smatch.
>
>>
>> Signed-off-by: Lidza Louina <lidza.louina at oracle.com>
>> ---
>> drivers/staging/lustre/lnet/lnet/api-ni.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c
>> index 346db89..fc5b763 100644
>> --- a/drivers/staging/lustre/lnet/lnet/api-ni.c
>> +++ b/drivers/staging/lustre/lnet/lnet/api-ni.c
>> @@ -513,7 +513,7 @@ lnet_res_lh_initialize(struct lnet_res_container *rec, lnet_libhandle_t *lh)
>> unsigned int hash;
>>
>> lh->lh_cookie = rec->rec_lh_cookie;
>> - rec->rec_lh_cookie += 1 << ibits;
>> + rec->rec_lh_cookie += (1ULL << ibits);
>>
>> hash = (lh->lh_cookie >> ibits) & LNET_LH_HASH_MASK;
>>
>> --
>> 1.9.1
>>
>>
>>
>> _______________________________________________
>> lustre-devel mailing list
>> lustre-devel at lists.lustre.org
>> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
>
> _______________________________________________
> lustre-devel mailing list
> lustre-devel at lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
More information about the devel
mailing list