Although the possible values for CB's ID are only 32 bits, there are a few
places in the code where this field is shifted and passed into a function
which expects 64 bits.

Reported-by: kernel test robot <l...@intel.com>
Signed-off-by: Oded Gabbay <oded.gab...@gmail.com>
---
 drivers/misc/habanalabs/common/command_buffer.c | 2 +-
 drivers/misc/habanalabs/common/debugfs.c        | 2 +-
 drivers/misc/habanalabs/common/habanalabs.h     | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/habanalabs/common/command_buffer.c 
b/drivers/misc/habanalabs/common/command_buffer.c
index 7c38c4f7f9c0..33aee64f37aa 100644
--- a/drivers/misc/habanalabs/common/command_buffer.c
+++ b/drivers/misc/habanalabs/common/command_buffer.c
@@ -173,7 +173,7 @@ int hl_cb_create(struct hl_device *hdev, struct hl_cb_mgr 
*mgr,
                goto release_cb;
        }
 
-       cb->id = rc;
+       cb->id = (u64) rc;
 
        kref_init(&cb->refcount);
        spin_lock_init(&cb->lock);
diff --git a/drivers/misc/habanalabs/common/debugfs.c 
b/drivers/misc/habanalabs/common/debugfs.c
index c50c6fc9e905..25775b12139b 100644
--- a/drivers/misc/habanalabs/common/debugfs.c
+++ b/drivers/misc/habanalabs/common/debugfs.c
@@ -110,7 +110,7 @@ static int command_buffers_show(struct seq_file *s, void 
*data)
                        seq_puts(s, 
"---------------------------------------------------------------\n");
                }
                seq_printf(s,
-                       "   %03d        %d    0x%08x      %d          %d        
  %d\n",
+                       "   %03llu        %d    0x%08x      %d          %d      
    %d\n",
                        cb->id, cb->ctx_id, cb->size,
                        kref_read(&cb->refcount),
                        cb->mmap, cb->cs_cnt);
diff --git a/drivers/misc/habanalabs/common/habanalabs.h 
b/drivers/misc/habanalabs/common/habanalabs.h
index 52a07c8d7d7c..2decf7be3e08 100644
--- a/drivers/misc/habanalabs/common/habanalabs.h
+++ b/drivers/misc/habanalabs/common/habanalabs.h
@@ -401,11 +401,11 @@ struct hl_cb_mgr {
  * @lock: spinlock to protect mmap/cs flows.
  * @debugfs_list: node in debugfs list of command buffers.
  * @pool_list: node in pool list of command buffers.
+ * @id: the CB's ID.
  * @kernel_address: Holds the CB's kernel virtual address.
  * @bus_address: Holds the CB's DMA address.
  * @mmap_size: Holds the CB's size that was mmaped.
  * @size: holds the CB's size.
- * @id: the CB's ID.
  * @cs_cnt: holds number of CS that this CB participates in.
  * @ctx_id: holds the ID of the owner's context.
  * @mmap: true if the CB is currently mmaped to user.
@@ -418,11 +418,11 @@ struct hl_cb {
        spinlock_t              lock;
        struct list_head        debugfs_list;
        struct list_head        pool_list;
+       u64                     id;
        u64                     kernel_address;
        dma_addr_t              bus_address;
        u32                     mmap_size;
        u32                     size;
-       u32                     id;
        u32                     cs_cnt;
        u32                     ctx_id;
        u8                      mmap;
-- 
2.17.1

Reply via email to