Patch "IB/qib: Fix null pointer subtraction compiler warning" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    IB/qib: Fix null pointer subtraction compiler warning

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ib-qib-fix-null-pointer-subtraction-compiler-warning.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 404d8ee4fb767e1c2a19d57fb7e3a5b944bedb0b
Author: Jason Gunthorpe <jgg@xxxxxxxxxx>
Date:   Fri Sep 3 10:07:28 2021 -0300

    IB/qib: Fix null pointer subtraction compiler warning
    
    [ Upstream commit 84f969e1c48ed3825986e91a0786e363d57f69d1 ]
    
    >> drivers/infiniband/hw/qib/qib_sysfs.c:411:1: warning: performing pointer subtraction with a null pointer has undefined behavior
    +[-Wnull-pointer-subtraction]
       QIB_DIAGC_ATTR(rc_resends);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~
       drivers/infiniband/hw/qib/qib_sysfs.c:408:51: note: expanded from macro 'QIB_DIAGC_ATTR'
                       .counter = &((struct qib_ibport *)0)->rvp.n_##N - (u64 *)0,    \
    
    Use offsetof and accomplish the type check using static_assert.
    
    Fixes: 4a7aaf88c89f ("RDMA/qib: Use attributes for the port sysfs")
    Link: https://lore.kernel.org/r/0-v1-43ae3c759177+65-qib_type_jgg@xxxxxxxxxx
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Acked-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/infiniband/hw/qib/qib_sysfs.c b/drivers/infiniband/hw/qib/qib_sysfs.c
index d57e49de6650..452e2355d24e 100644
--- a/drivers/infiniband/hw/qib/qib_sysfs.c
+++ b/drivers/infiniband/hw/qib/qib_sysfs.c
@@ -403,9 +403,11 @@ static ssize_t diagc_attr_store(struct ib_device *ibdev, u32 port_num,
 }
 
 #define QIB_DIAGC_ATTR(N)                                                      \
+	static_assert(&((struct qib_ibport *)0)->rvp.n_##N != (u64 *)NULL);    \
 	static struct qib_diagc_attr qib_diagc_attr_##N = {                    \
 		.attr = __ATTR(N, 0664, diagc_attr_show, diagc_attr_store),    \
-		.counter = &((struct qib_ibport *)0)->rvp.n_##N - (u64 *)0,    \
+		.counter =                                                     \
+			offsetof(struct qib_ibport, rvp.n_##N) / sizeof(u64)   \
 	}
 
 QIB_DIAGC_ATTR(rc_resends);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux