[kbuild] drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit type?
CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Ben Skeggs CC: Lyude Paul tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 0a50438c84363bd37fe18fe432888ae9a074dcab commit: 8b9d5d63a7193156b6b397c4f5078efbc200695f drm/nouveau/bo: split buffer move functions into their own source files date: 9 months ago :: branch date: 4 hours ago :: commit date: 9 months ago config: riscv-randconfig-m031-20210405 (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit type? vim +39 drivers/gpu/drm/nouveau/nouveau_bo5039.c 8b9d5d63a71931 Ben Skeggs 2020-06-22 33 8b9d5d63a71931 Ben Skeggs 2020-06-22 34 int 8b9d5d63a71931 Ben Skeggs 2020-06-22 35 nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, 8b9d5d63a71931 Ben Skeggs 2020-06-22 36 struct ttm_mem_reg *old_reg, struct ttm_mem_reg *new_reg) 8b9d5d63a71931 Ben Skeggs 2020-06-22 37 { 8b9d5d63a71931 Ben Skeggs 2020-06-22 38 struct nouveau_mem *mem = nouveau_mem(old_reg); 8b9d5d63a71931 Ben Skeggs 2020-06-22 @39 u64 length = (new_reg->num_pages << PAGE_SHIFT); 8b9d5d63a71931 Ben Skeggs 2020-06-22 40 u64 src_offset = mem->vma[0].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 41 u64 dst_offset = mem->vma[1].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 42 int src_tiled = !!mem->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 43 int dst_tiled = !!nouveau_mem(new_reg)->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 44 int ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 45 8b9d5d63a71931 Ben Skeggs 2020-06-22 46 while (length) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 47 u32 amount, stride, height; 8b9d5d63a71931 Ben Skeggs 2020-06-22 48 8b9d5d63a71931 Ben Skeggs 2020-06-22 49 ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 50 if (ret) 8b9d5d63a71931 Ben Skeggs 2020-06-22 51 return ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 52 8b9d5d63a71931 Ben Skeggs 2020-06-22 53 amount = min(length, (u64)(4 * 1024 * 1024)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 54 stride = 16 * 4; 8b9d5d63a71931 Ben Skeggs 2020-06-22 55 height = amount / stride; 8b9d5d63a71931 Ben Skeggs 2020-06-22 56 8b9d5d63a71931 Ben Skeggs 2020-06-22 57 if (src_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 58 BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 59 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 60 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 61 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 62 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 63 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 64 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 65 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 66 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 67 BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 68 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 69 } 8b9d5d63a71931 Ben Skeggs 2020-06-22 70 if (dst_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 71 BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 72 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 73 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 74 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 75 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 76 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 77 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 78 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 79 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 80 BEGIN_NV04(chan, NvSubCopy, 0x021c, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 81 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 82 } 8b9d5d63a71931 Ben Skeggs 2020-06-22 83 8b9d5d63a71931 Ben Skeggs 2020-06-22 84 BEGIN_NV04(chan,
[kbuild] drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit
CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Ben Skeggs CC: Lyude Paul tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 13391c60da3308ed9980de0168f74cce6c62ac1d commit: 8b9d5d63a7193156b6b397c4f5078efbc200695f drm/nouveau/bo: split buffer move functions into their own source files date: 6 months ago :: branch date: 7 hours ago :: commit date: 6 months ago config: riscv-randconfig-m031-20210125 (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit type? vim +39 drivers/gpu/drm/nouveau/nouveau_bo5039.c 8b9d5d63a71931 Ben Skeggs 2020-06-22 33 8b9d5d63a71931 Ben Skeggs 2020-06-22 34 int 8b9d5d63a71931 Ben Skeggs 2020-06-22 35 nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, 8b9d5d63a71931 Ben Skeggs 2020-06-22 36 struct ttm_mem_reg *old_reg, struct ttm_mem_reg *new_reg) 8b9d5d63a71931 Ben Skeggs 2020-06-22 37 { 8b9d5d63a71931 Ben Skeggs 2020-06-22 38 struct nouveau_mem *mem = nouveau_mem(old_reg); 8b9d5d63a71931 Ben Skeggs 2020-06-22 @39 u64 length = (new_reg->num_pages << PAGE_SHIFT); 8b9d5d63a71931 Ben Skeggs 2020-06-22 40 u64 src_offset = mem->vma[0].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 41 u64 dst_offset = mem->vma[1].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 42 int src_tiled = !!mem->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 43 int dst_tiled = !!nouveau_mem(new_reg)->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 44 int ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 45 8b9d5d63a71931 Ben Skeggs 2020-06-22 46 while (length) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 47 u32 amount, stride, height; 8b9d5d63a71931 Ben Skeggs 2020-06-22 48 8b9d5d63a71931 Ben Skeggs 2020-06-22 49 ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 50 if (ret) 8b9d5d63a71931 Ben Skeggs 2020-06-22 51 return ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 52 8b9d5d63a71931 Ben Skeggs 2020-06-22 53 amount = min(length, (u64)(4 * 1024 * 1024)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 54 stride = 16 * 4; 8b9d5d63a71931 Ben Skeggs 2020-06-22 55 height = amount / stride; 8b9d5d63a71931 Ben Skeggs 2020-06-22 56 8b9d5d63a71931 Ben Skeggs 2020-06-22 57 if (src_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 58 BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 59 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 60 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 61 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 62 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 63 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 64 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 65 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 66 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 67 BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 68 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 69 } 8b9d5d63a71931 Ben Skeggs 2020-06-22 70 if (dst_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 71 BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 72 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 73 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 74 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 75 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 76 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 77 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 78 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 79 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 80 BEGIN_NV04(chan, NvSubCopy, 0x021c, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 81 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 82 } 8b9d5d63a71931 Ben Skeggs 2020-06-22 83 8b9d5d63a71931 Ben Skeggs 2020-06-22 84 BEGIN_NV04(chan,
[kbuild] drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit
CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Ben Skeggs CC: Lyude Paul tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 729e3d091984487f7aa1ebfabfe594e5b317ed0f commit: 8b9d5d63a7193156b6b397c4f5078efbc200695f drm/nouveau/bo: split buffer move functions into their own source files date: 7 weeks ago :: branch date: 10 hours ago :: commit date: 7 weeks ago config: riscv-randconfig-m031-20200911 (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/gpu/drm/nouveau/nouveau_bo5039.c:39 nv50_bo_move_m2mf() warn: should 'new_reg->num_pages << (12)' be a 64 bit type? # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8b9d5d63a7193156b6b397c4f5078efbc200695f git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 8b9d5d63a7193156b6b397c4f5078efbc200695f vim +39 drivers/gpu/drm/nouveau/nouveau_bo5039.c 8b9d5d63a71931 Ben Skeggs 2020-06-22 33 8b9d5d63a71931 Ben Skeggs 2020-06-22 34 int 8b9d5d63a71931 Ben Skeggs 2020-06-22 35 nv50_bo_move_m2mf(struct nouveau_channel *chan, struct ttm_buffer_object *bo, 8b9d5d63a71931 Ben Skeggs 2020-06-22 36 struct ttm_mem_reg *old_reg, struct ttm_mem_reg *new_reg) 8b9d5d63a71931 Ben Skeggs 2020-06-22 37 { 8b9d5d63a71931 Ben Skeggs 2020-06-22 38 struct nouveau_mem *mem = nouveau_mem(old_reg); 8b9d5d63a71931 Ben Skeggs 2020-06-22 @39 u64 length = (new_reg->num_pages << PAGE_SHIFT); 8b9d5d63a71931 Ben Skeggs 2020-06-22 40 u64 src_offset = mem->vma[0].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 41 u64 dst_offset = mem->vma[1].addr; 8b9d5d63a71931 Ben Skeggs 2020-06-22 42 int src_tiled = !!mem->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 43 int dst_tiled = !!nouveau_mem(new_reg)->kind; 8b9d5d63a71931 Ben Skeggs 2020-06-22 44 int ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 45 8b9d5d63a71931 Ben Skeggs 2020-06-22 46 while (length) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 47 u32 amount, stride, height; 8b9d5d63a71931 Ben Skeggs 2020-06-22 48 8b9d5d63a71931 Ben Skeggs 2020-06-22 49 ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 50 if (ret) 8b9d5d63a71931 Ben Skeggs 2020-06-22 51 return ret; 8b9d5d63a71931 Ben Skeggs 2020-06-22 52 8b9d5d63a71931 Ben Skeggs 2020-06-22 53 amount = min(length, (u64)(4 * 1024 * 1024)); 8b9d5d63a71931 Ben Skeggs 2020-06-22 54 stride = 16 * 4; 8b9d5d63a71931 Ben Skeggs 2020-06-22 55 height = amount / stride; 8b9d5d63a71931 Ben Skeggs 2020-06-22 56 8b9d5d63a71931 Ben Skeggs 2020-06-22 57 if (src_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 58 BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 59 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 60 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 61 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 62 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 63 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 64 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 65 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 66 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 67 BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 68 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 69 } 8b9d5d63a71931 Ben Skeggs 2020-06-22 70 if (dst_tiled) { 8b9d5d63a71931 Ben Skeggs 2020-06-22 71 BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); 8b9d5d63a71931 Ben Skeggs 2020-06-22 72 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 73 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 74 OUT_RING (chan, stride); 8b9d5d63a71931 Ben Skeggs 2020-06-22 75 OUT_RING (chan, height); 8b9d5d63a71931 Ben Skeggs 2020-06-22 76 OUT_RING (chan, 1); 8b9d5d63a71931 Ben Skeggs 2020-06-22 77 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 78 OUT_RING (chan, 0); 8b9d5d63a71931 Ben Skeggs 2020-06-22 79 } else { 8b9d5d63a71931 Ben Skeggs 2020-06-22 80