----- Original Message ----- From: oleg.drokin@xxxxxxxxx To: lidza.louina@xxxxxxxxxx Cc: devel@xxxxxxxxxxxxxxxxxxxx, andreas.dilger@xxxxxxxxx, lustre-devel@xxxxxxxxxxxxxxxx, gregkh@xxxxxxxxxxxxxxxxxxx Sent: Thursday, June 23, 2016 11:11:06 AM GMT -08:00 US/Canada Pacific Subject: Re: [lustre-devel] [PATCH] staging/lustre/lnet: correctly casts value for arithmetic On Jun 23, 2016, at 2:07 PM, Lidza Louina wrote: > The smatch warning was "drivers/staging/lustre/lnet/lnet/api-ni.c:516 > lnet_res_lh_initialize() warn: should '1 << ibits' be a 64 bit type?" I think you misinterpreted it, it has nothing to do with the addition. What it actually means is: 1 is a 32bit integer, you do a right shift by some variable number of bits. So please check if there's risk to overflow the 32 bits unexpectedly. The way to fix this warning is to replace 1 with 1ULL (unsigned long long) and that is fine to do as a way of future proofing this stuff even if it's not yet broken yet, I guess. Ahh, okay, I see what you're saying and I see what I did wrong. I'm going to update the patch to: - rec->rec_lh_cookie += 1 << ibits; + rec->rec_lh_cookie += (1ULL << ibits); Lidza > >> >> hash = (lh->lh_cookie >> ibits) & LNET_LH_HASH_MASK; >> >> -- >> 1.9.1 >> >> >> >> _______________________________________________ >> lustre-devel mailing list >> lustre-devel@xxxxxxxxxxxxxxxx >> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel