lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202103091850.oTy1R5k6-lkp@intel.com>
Date:   Tue, 9 Mar 2021 18:10:32 +0800
From:   kernel test robot <lkp@...el.com>
To:     Loic Poulain <loic.poulain@...aro.org>, kuba@...nel.org,
        davem@...emloft.net
Cc:     kbuild-all@...org, linux-arm-msm@...r.kernel.org,
        aleksander@...ksander.es, linux-kernel@...r.kernel.org,
        netdev@...r.kernel.org, bjorn.andersson@...aro.org,
        gregkh@...uxfoundation.org, manivannan.sadhasivam@...aro.org,
        hemantk@...eaurora.org
Subject: Re: [PATCH net-next v3] net: Add Qcom WWAN control driver

Hi Loic,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Loic-Poulain/net-Add-Qcom-WWAN-control-driver/20210309-163643
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git d310ec03a34e92a77302edb804f7d68ee4f01ba0
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/f4fcd3ed7ac5f29a28988eed9f5516f874073802
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Loic-Poulain/net-Add-Qcom-WWAN-control-driver/20210309-163643
        git checkout f4fcd3ed7ac5f29a28988eed9f5516f874073802
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   In file included from include/linux/kernel.h:10,
                    from drivers/net/wwan/mhi_wwan_ctrl.c:4:
   include/linux/scatterlist.h: In function 'sg_set_buf':
   arch/m68k/include/asm/page_mm.h:174:49: warning: ordered comparison of pointer with null pointer [-Wextra]
     174 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
         |                                                 ^~
   include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
      78 | # define unlikely(x) __builtin_expect(!!(x), 0)
         |                                          ^
   include/linux/scatterlist.h:137:2: note: in expansion of macro 'BUG_ON'
     137 |  BUG_ON(!virt_addr_valid(buf));
         |  ^~~~~~
   include/linux/scatterlist.h:137:10: note: in expansion of macro 'virt_addr_valid'
     137 |  BUG_ON(!virt_addr_valid(buf));
         |          ^~~~~~~~~~~~~~~
   In file included from include/linux/kernel.h:14,
                    from drivers/net/wwan/mhi_wwan_ctrl.c:4:
   drivers/net/wwan/mhi_wwan_ctrl.c: In function 'mhi_wwan_ctrl_probe':
>> drivers/net/wwan/mhi_wwan_ctrl.c:442:48: error: 'MHI_MAX_MTU' undeclared (first use in this function); did you mean 'ETH_MAX_MTU'?
     442 |  wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
         |                                                ^~~~~~~~~~~
   include/linux/minmax.h:18:39: note: in definition of macro '__typecheck'
      18 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                                       ^
   include/linux/minmax.h:42:24: note: in expansion of macro '__safe_cmp'
      42 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:110:27: note: in expansion of macro '__careful_cmp'
     110 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   drivers/net/wwan/mhi_wwan_ctrl.c:442:17: note: in expansion of macro 'min_t'
     442 |  wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
         |                 ^~~~~
   drivers/net/wwan/mhi_wwan_ctrl.c:442:48: note: each undeclared identifier is reported only once for each function it appears in
     442 |  wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
         |                                                ^~~~~~~~~~~
   include/linux/minmax.h:18:39: note: in definition of macro '__typecheck'
      18 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                                       ^
   include/linux/minmax.h:42:24: note: in expansion of macro '__safe_cmp'
      42 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:110:27: note: in expansion of macro '__careful_cmp'
     110 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   drivers/net/wwan/mhi_wwan_ctrl.c:442:17: note: in expansion of macro 'min_t'
     442 |  wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
         |                 ^~~~~
   include/linux/minmax.h:42:2: error: first argument to '__builtin_choose_expr' not a constant
      42 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |  ^~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:110:27: note: in expansion of macro '__careful_cmp'
     110 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   drivers/net/wwan/mhi_wwan_ctrl.c:442:17: note: in expansion of macro 'min_t'
     442 |  wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
         |                 ^~~~~
   drivers/net/wwan/mhi_wwan_ctrl.c: At top level:
>> drivers/net/wwan/mhi_wwan_ctrl.c:504:53: error: 'MHI_MAX_MTU' undeclared here (not in a function); did you mean 'ETH_MAX_MTU'?
     504 |  { .chan = MHI_WWAN_CTRL_PROTO_QCDM, .driver_data = MHI_MAX_MTU },
         |                                                     ^~~~~~~~~~~
         |                                                     ETH_MAX_MTU


vim +442 drivers/net/wwan/mhi_wwan_ctrl.c

   409	
   410	static int mhi_wwan_ctrl_probe(struct mhi_device *mhi_dev,
   411				 const struct mhi_device_id *id)
   412	{
   413		struct mhi_wwan_dev *wwandev;
   414		struct device *dev;
   415		int index, err;
   416	
   417		/* Create mhi_wwan data context */
   418		wwandev = kzalloc(sizeof(*wwandev), GFP_KERNEL);
   419		if (!wwandev)
   420			return -ENOMEM;
   421	
   422		/* Retrieve index */
   423		mutex_lock(&mhi_wwan_ctrl_drv_lock);
   424		index = idr_alloc(&mhi_wwan_ctrl_idr, wwandev, 0,
   425				  MHI_WWAN_CTRL_MAX_MINORS, GFP_KERNEL);
   426		mutex_unlock(&mhi_wwan_ctrl_drv_lock);
   427		if (index < 0) {
   428			err = index;
   429			goto err_free_wwandev;
   430		}
   431	
   432		/* Init mhi_wwan data */
   433		kref_init(&wwandev->ref_count);
   434		mutex_init(&wwandev->mhi_dev_lock);
   435		mutex_init(&wwandev->write_lock);
   436		init_waitqueue_head(&wwandev->ul_wq);
   437		init_waitqueue_head(&wwandev->dl_wq);
   438		spin_lock_init(&wwandev->dl_queue_lock);
   439		INIT_LIST_HEAD(&wwandev->dl_queue);
   440		wwandev->mhi_dev = mhi_dev;
   441		wwandev->minor = index;
 > 442		wwandev->mtu = min_t(size_t, id->driver_data, MHI_MAX_MTU);
   443		set_bit(MHI_WWAN_CONNECTED, &wwandev->flags);
   444	
   445		if (mhi_dev->dl_chan)
   446			set_bit(MHI_WWAN_DL_CAP, &wwandev->flags);
   447		if (mhi_dev->ul_chan)
   448			set_bit(MHI_WWAN_UL_CAP, &wwandev->flags);
   449	
   450		dev_set_drvdata(&mhi_dev->dev, wwandev);
   451	
   452		/* Creates a new device and registers it with sysfs */
   453		dev = device_create(mhi_wwan_ctrl_class, &mhi_dev->dev,
   454				    MKDEV(mhi_wwan_ctrl_major, index), wwandev,
   455				    "wwan_%s", dev_name(&mhi_dev->dev));
   456		if (IS_ERR(dev)) {
   457			err = PTR_ERR(dev);
   458			goto err_free_idr;
   459		}
   460	
   461		return 0;
   462	
   463	err_free_idr:
   464		mutex_lock(&mhi_wwan_ctrl_drv_lock);
   465		idr_remove(&mhi_wwan_ctrl_idr, wwandev->minor);
   466		mutex_unlock(&mhi_wwan_ctrl_drv_lock);
   467	err_free_wwandev:
   468		kfree(wwandev);
   469		dev_set_drvdata(&mhi_dev->dev, NULL);
   470	
   471		return err;
   472	};
   473	
   474	static void mhi_wwan_ctrl_remove(struct mhi_device *mhi_dev)
   475	{
   476		struct mhi_wwan_dev *wwandev = dev_get_drvdata(&mhi_dev->dev);
   477	
   478		dev_set_drvdata(&mhi_dev->dev, NULL);
   479	
   480		mutex_lock(&mhi_wwan_ctrl_drv_lock);
   481		idr_remove(&mhi_wwan_ctrl_idr, wwandev->minor);
   482		mutex_unlock(&mhi_wwan_ctrl_drv_lock);
   483	
   484		clear_bit(MHI_WWAN_CONNECTED, &wwandev->flags);
   485		device_destroy(mhi_wwan_ctrl_class, MKDEV(mhi_wwan_ctrl_major, wwandev->minor));
   486	
   487		/* Unlink mhi_dev from mhi_wwan_dev */
   488		mutex_lock(&wwandev->mhi_dev_lock);
   489		wwandev->mhi_dev = NULL;
   490		mutex_unlock(&wwandev->mhi_dev_lock);
   491	
   492		/* wake up any blocked user */
   493		wake_up_interruptible(&wwandev->dl_wq);
   494		wake_up_interruptible(&wwandev->ul_wq);
   495	
   496		kref_put(&wwandev->ref_count, mhi_wwan_ctrl_dev_release);
   497	}
   498	
   499	/* .driver_data stores max mtu */
   500	static const struct mhi_device_id mhi_wwan_ctrl_match_table[] = {
   501		{ .chan = MHI_WWAN_CTRL_PROTO_AT, .driver_data = 4096 },
   502		{ .chan = MHI_WWAN_CTRL_PROTO_MBIM, .driver_data = 4096 },
   503		{ .chan = MHI_WWAN_CTRL_PROTO_QMUX, .driver_data = 4096 },
 > 504		{ .chan = MHI_WWAN_CTRL_PROTO_QCDM, .driver_data = MHI_MAX_MTU },
   505		{ .chan = MHI_WWAN_CTRL_PROTO_FIREHOSE, .driver_data = MHI_MAX_MTU },
   506		{},
   507	};
   508	MODULE_DEVICE_TABLE(mhi, mhi_wwan_ctrl_match_table);
   509	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (59728 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ