[09/11] KVM: PPC: Book3S: Improve a size determination in two functions

Submitted by SF Markus Elfring on Jan. 20, 2017, 6:27 p.m.

Details

Message ID f2b94132-efd8-df81-35b3-a4990dceb05f@users.sourceforge.net
State New
Headers show

Commit Message

SF Markus Elfring Jan. 20, 2017, 6:27 p.m.
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Fri, 20 Jan 2017 16:28:43 +0100

Replace the specification of data structures by pointer dereferences
as the parameter for the operator "sizeof" to make the corresponding size
determination a bit safer according to the Linux coding style convention.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 arch/powerpc/kvm/book3s_xics.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

kbuild test robot Jan. 21, 2017, 6:24 a.m.
Hi Markus,

[auto build test ERROR on next-20170119]
[also build test ERROR on v4.10-rc4]
[cannot apply to v4.9-rc8 v4.9-rc7 v4.9-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/SF-Markus-Elfring/PowerPC-KVM-Fine-tuning-for-some-function-implementations/20170121-121537
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   arch/powerpc/kvm/book3s_xics.c: In function 'kvmppc_xics_create_ics':
>> arch/powerpc/kvm/book3s_xics.c:1035:16: error: incompatible type for argument 1 of 'kzalloc'
     ics = kzalloc(*ics), GFP_KERNEL);
                   ^
   In file included from include/linux/kvm_host.h:21:0,
                    from arch/powerpc/kvm/book3s_xics.c:11:
   include/linux/slab.h:634:21: note: expected 'size_t {aka long unsigned int}' but argument is of type 'struct kvmppc_ics'
    static inline void *kzalloc(size_t size, gfp_t flags)
                        ^~~~~~~
>> arch/powerpc/kvm/book3s_xics.c:1035:8: error: too few arguments to function 'kzalloc'
     ics = kzalloc(*ics), GFP_KERNEL);
           ^~~~~~~
   In file included from include/linux/kvm_host.h:21:0,
                    from arch/powerpc/kvm/book3s_xics.c:11:
   include/linux/slab.h:634:21: note: declared here
    static inline void *kzalloc(size_t size, gfp_t flags)
                        ^~~~~~~
   arch/powerpc/kvm/book3s_xics.c:1035:21: warning: left-hand operand of comma expression has no effect [-Wunused-value]
     ics = kzalloc(*ics), GFP_KERNEL);
                        ^
   arch/powerpc/kvm/book3s_xics.c:1035:21: warning: statement with no effect [-Wunused-value]
>> arch/powerpc/kvm/book3s_xics.c:1035:33: error: expected ';' before ')' token
     ics = kzalloc(*ics), GFP_KERNEL);
                                    ^
>> arch/powerpc/kvm/book3s_xics.c:1035:33: error: expected statement before ')' token

vim +/kzalloc +1035 arch/powerpc/kvm/book3s_xics.c

  1029	
  1030		/* ICS already exists - somebody else got here first */
  1031		if (xics->ics[icsid])
  1032			goto out;
  1033	
  1034		/* Create the ICS */
> 1035		ics = kzalloc(*ics), GFP_KERNEL);
  1036		if (!ics)
  1037			goto out;
  1038	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
kbuild test robot Jan. 21, 2017, 6:37 a.m.
Hi Markus,

[auto build test ERROR on next-20170119]
[also build test ERROR on v4.10-rc4]
[cannot apply to v4.9-rc8 v4.9-rc7 v4.9-rc6]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/SF-Markus-Elfring/PowerPC-KVM-Fine-tuning-for-some-function-implementations/20170121-121537
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   arch/powerpc/kvm/book3s_xics.c: In function 'kvmppc_xics_create_ics':
   arch/powerpc/kvm/book3s_xics.c:1035:16: error: incompatible type for argument 1 of 'kzalloc'
     ics = kzalloc(*ics), GFP_KERNEL);
                   ^
   In file included from include/linux/kvm_host.h:21:0,
                    from arch/powerpc/kvm/book3s_xics.c:11:
   include/linux/slab.h:634:21: note: expected 'size_t {aka long unsigned int}' but argument is of type 'struct kvmppc_ics'
    static inline void *kzalloc(size_t size, gfp_t flags)
                        ^~~~~~~
   arch/powerpc/kvm/book3s_xics.c:1035:8: error: too few arguments to function 'kzalloc'
     ics = kzalloc(*ics), GFP_KERNEL);
           ^~~~~~~
   In file included from include/linux/kvm_host.h:21:0,
                    from arch/powerpc/kvm/book3s_xics.c:11:
   include/linux/slab.h:634:21: note: declared here
    static inline void *kzalloc(size_t size, gfp_t flags)
                        ^~~~~~~
>> arch/powerpc/kvm/book3s_xics.c:1035:21: error: left-hand operand of comma expression has no effect [-Werror=unused-value]
     ics = kzalloc(*ics), GFP_KERNEL);
                        ^
>> arch/powerpc/kvm/book3s_xics.c:1035:21: error: statement with no effect [-Werror=unused-value]
   arch/powerpc/kvm/book3s_xics.c:1035:33: error: expected ';' before ')' token
     ics = kzalloc(*ics), GFP_KERNEL);
                                    ^
   arch/powerpc/kvm/book3s_xics.c:1035:33: error: expected statement before ')' token
   cc1: all warnings being treated as errors

vim +1035 arch/powerpc/kvm/book3s_xics.c

  1029	
  1030		/* ICS already exists - somebody else got here first */
  1031		if (xics->ics[icsid])
  1032			goto out;
  1033	
  1034		/* Create the ICS */
> 1035		ics = kzalloc(*ics), GFP_KERNEL);
  1036		if (!ics)
  1037			goto out;
  1038	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Patch hide | download patch | download mbox

diff --git a/arch/powerpc/kvm/book3s_xics.c b/arch/powerpc/kvm/book3s_xics.c
index 3740f9efcf06..d45c1b59b70a 100644
--- a/arch/powerpc/kvm/book3s_xics.c
+++ b/arch/powerpc/kvm/book3s_xics.c
@@ -1032,7 +1032,7 @@  static struct kvmppc_ics *kvmppc_xics_create_ics(struct kvm *kvm,
 		goto out;
 
 	/* Create the ICS */
-	ics = kzalloc(sizeof(struct kvmppc_ics), GFP_KERNEL);
+	ics = kzalloc(*ics), GFP_KERNEL);
 	if (!ics)
 		goto out;
 
@@ -1064,7 +1064,7 @@  int kvmppc_xics_create_icp(struct kvm_vcpu *vcpu, unsigned long server_num)
 	if (kvmppc_xics_find_server(vcpu->kvm, server_num))
 		return -EEXIST;
 
-	icp = kzalloc(sizeof(struct kvmppc_icp), GFP_KERNEL);
+	icp = kzalloc(sizeof(*icp), GFP_KERNEL);
 	if (!icp)
 		return -ENOMEM;