Coverity: irdma_prm_get_pbles(): Integer handling issues
Hello!
This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20210608 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan
You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:
Wed Jun 2 19:55:19 2021 -0300
915cc7ac0f8e ("RDMA/irdma: Add miscellaneous utility definitions")
Coverity reported the following:
*** CID 1505157: Integer handling issues (OVERFLOW_BEFORE_WIDEN) /drivers/infiniband/hw/irdma/utils.c: 2329 in irdma_prm_get_pbles()
2323 struct list_head *chunk_entry = pprm->clist.next; 2324 u32 offset; 2325 unsigned long flags; 2326 *vaddr = 0; 2327 *fpm_addr = 0;
2328
vvv CID 1505157: Integer handling issues (OVERFLOW_BEFORE_WIDEN)
vvv Potentially overflowing expression "1 << pprm->pble_shift" with type "int" (32 bits, signed) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type "u64" (64 bits, unsigned).
2329 bits_needed = (mem_size + (1 << pprm->pble_shift) - 1) >> pprm->pble_shift;
2330
2331 spin_lock_irqsave(&pprm->prm_lock, flags);
2332 while (chunk_entry != &pprm->clist) {
2333 pchunk = (struct irdma_chunk *)chunk_entry;
2334 bit_idx = bitmap_find_next_zero_area(pchunk->bitmapbuf,If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):
Addresses-Coverity-ID: 1505157 ("Integer handling issues")
Thanks for your attention!
Signature · 1 line
Coverity-bot
Quoted 41 lines
Subject: Coverity:
irdma_prm_get_pbles(): Integer handling issuesHello!
This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20210608 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scanYou're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:
Wed Jun 2 19:55:19 2021 -0300
915cc7ac0f8e("RDMA/irdma: Add miscellaneous utility definitions")Coverity reported the following:
*** CID 1505157: Integer handling issues (
OVERFLOW_BEFORE_WIDEN) /drivers/infiniband/hw/irdma/utils.c: 2329 inirdma_prm_get_pbles()2323 struct list_head *chunk_entry = pprm->clist.next; 2324 u32 offset; 2325 unsigned long flags; 2326 *vaddr = 0; 2327 *fpm_addr = 0;2328
vvv CID 1505157: Integer handling issues (OVERFLOW_BEFORE_WIDEN)
vvv Potentially overflowing expression "1 <<pprm->pble_shift" with type "int"
(32 bits, signed) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type "u64" (64 bits, unsigned).
2329bits_needed= (mem_size+ (1 <<pprm->pble_shift) - 1) >> pprm-Quoted 1 line
pble_shift;2330
2331 spin_lock_irqsave(&pprm->prm_lock, flags); 2332 while (chunk_entry != &pprm->clist) { 2333 pchunk = (struct irdma_chunk *)chunk_entry; 2334 bit_idx = bitmap_find_next_zero_area(pchunk->bitmapbuf,If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):
Quoted 5 lines
Reported-by coverity-bot <[email protected]>Addresses-Coverity-ID: 1505157 ("Integer handling issues")
Fixes 915cc7ac0f8e ("RDMA/irdma: Add miscellaneous utility definitions")Thanks for your attention!
This appears to be a bug. We will send a fix.
Shiraz