diff mbox

infiniband: shut up a maybe-uninitialized warning

Message ID 20160704150659.2883024-1-arnd@arndb.de (mailing list archive)
State Rejected
Headers show

Commit Message

Arnd Bergmann July 4, 2016, 3:06 p.m. UTC
The powerpc64 default configuration leads to warnings for the infiniband
core code:

infiniband/core/cma.c: In function 'cma_get_net_dev':
infiniband/core/cma.c:1242:12: warning: 'src_addr_storage.sin_addr.s_addr' may be used uninitialized in this function [-Wmaybe-uninitialized]

The code looks correct to me, and I don't see the warnings on the
other architectures, so this is a dumb change to add an unneeded
initialization to the variables in order to shut up the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: http://arm-soc.lixom.net/buildlogs/mainline/v4.7-rc6/buildall.powerpc.ppc64_defconfig.log.passed
---
 drivers/infiniband/core/cma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Doug Ledford Aug. 2, 2016, 5:45 p.m. UTC | #1
On Mon, 2016-07-04 at 17:06 +0200, Arnd Bergmann wrote:
> The powerpc64 default configuration leads to warnings for the
> infiniband
> core code:
> 
> infiniband/core/cma.c: In function 'cma_get_net_dev':
> infiniband/core/cma.c:1242:12: warning:
> 'src_addr_storage.sin_addr.s_addr' may be used uninitialized in this
> function [-Wmaybe-uninitialized]
> 
> The code looks correct to me, and I don't see the warnings on the
> other architectures, so this is a dumb change to add an unneeded
> initialization to the variables in order to shut up the warning.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Link: http://arm-soc.lixom.net/buildlogs/mainline/v4.7-
> rc6/buildall.powerpc.ppc64_defconfig.log.passed

I thought about taking this, but I also looked over the code and it
looks correct to me.  This is a semi-hot path in the connection bring
up code, so I'm loathe to put in sizeof(struct sockaddr_storage) * 2 of
needless memory writes.  So, I dropped this patch.  Hopefully, ppc64
compiler will straighten its warnings out soon.

> ---
>  drivers/infiniband/core/cma.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/core/cma.c
> b/drivers/infiniband/core/cma.c
> index a3c9930f1f93..924ac237310b 100644
> --- a/drivers/infiniband/core/cma.c
> +++ b/drivers/infiniband/core/cma.c
> @@ -1309,7 +1309,7 @@ static bool validate_net_dev(struct net_device
> *net_dev,
>  static struct net_device *cma_get_net_dev(struct ib_cm_event
> *ib_event,
>  					  const struct cma_req_info
> *req)
>  {
> -	struct sockaddr_storage listen_addr_storage,
> src_addr_storage;
> +	struct sockaddr_storage listen_addr_storage = {},
> src_addr_storage = {};
>  	struct sockaddr *listen_addr = (struct sockaddr
> *)&listen_addr_storage,
>  			*src_addr = (struct sockaddr
> *)&src_addr_storage;
>  	struct net_device *net_dev;
Arnd Bergmann Aug. 2, 2016, 8:05 p.m. UTC | #2
On Tuesday, August 2, 2016 1:45:25 PM CEST Doug Ledford wrote:
> On Mon, 2016-07-04 at 17:06 +0200, Arnd Bergmann wrote:
> > The powerpc64 default configuration leads to warnings for the
> > infiniband
> > core code:
> > 
> > infiniband/core/cma.c: In function 'cma_get_net_dev':
> > infiniband/core/cma.c:1242:12: warning:
> > 'src_addr_storage.sin_addr.s_addr' may be used uninitialized in this
> > function [-Wmaybe-uninitialized]
> > 
> > The code looks correct to me, and I don't see the warnings on the
> > other architectures, so this is a dumb change to add an unneeded
> > initialization to the variables in order to shut up the warning.
> > 
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Link: http://arm-soc.lixom.net/buildlogs/mainline/v4.7-
> > rc6/buildall.powerpc.ppc64_defconfig.log.passed
> 
> I thought about taking this, but I also looked over the code and it
> looks correct to me.  This is a semi-hot path in the connection bring
> up code, so I'm loathe to put in sizeof(struct sockaddr_storage) * 2 of
> needless memory writes.  So, I dropped this patch.  Hopefully, ppc64
> compiler will straighten its warnings out soon.

Ok, no worries. Linus just disabled the warning tree-wide for
all compilers, so it's gone from the autobuilder, and newer gcc
versions (4.9 or higher) should be fine too, even if someone
enables the warning manually or by passing W=1.

Thanks for having a look,

	Arnd

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index a3c9930f1f93..924ac237310b 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1309,7 +1309,7 @@  static bool validate_net_dev(struct net_device *net_dev,
 static struct net_device *cma_get_net_dev(struct ib_cm_event *ib_event,
 					  const struct cma_req_info *req)
 {
-	struct sockaddr_storage listen_addr_storage, src_addr_storage;
+	struct sockaddr_storage listen_addr_storage = {}, src_addr_storage = {};
 	struct sockaddr *listen_addr = (struct sockaddr *)&listen_addr_storage,
 			*src_addr = (struct sockaddr *)&src_addr_storage;
 	struct net_device *net_dev;