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: <202305161642.PZQ4S8o2-lkp@intel.com>
Date:   Tue, 16 May 2023 16:45:20 +0800
From:   kernel test robot <lkp@...el.com>
To:     Brad Larson <blarson@....com>, linux-arm-kernel@...ts.infradead.org
Cc:     oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
        linux-mmc@...r.kernel.org, linux-spi@...r.kernel.org,
        adrian.hunter@...el.com, alcooperx@...il.com,
        andy.shevchenko@...il.com, arnd@...db.de, blarson@....com,
        brendan.higgins@...ux.dev, briannorris@...omium.org,
        catalin.marinas@....com, conor+dt@...nel.org, davidgow@...gle.com,
        gsomlo@...il.com, gerg@...ux-m68k.org, hal.feng@...rfivetech.com,
        hasegawa-hitomi@...itsu.com, j.neuschaefer@....net, joel@....id.au,
        kernel@...il.dk, krzk@...nel.org,
        krzysztof.kozlowski+dt@...aro.org, lee@...nel.org,
        lee.jones@...aro.org, broonie@...nel.org, p.zabel@...gutronix.de,
        rdunlap@...radead.org, robh+dt@...nel.org, samuel@...lland.org
Subject: Re: [PATCH v14 8/8] soc: amd: Add support for AMD Pensando SoC
 Controller

Hi Brad,

kernel test robot noticed the following build warnings:

[auto build test WARNING on e922ba281a8d84f640d8c8e18a385d032c19e185]

url:    https://github.com/intel-lab-lkp/linux/commits/Brad-Larson/dt-bindings-arm-add-AMD-Pensando-boards/20230516-032312
base:   e922ba281a8d84f640d8c8e18a385d032c19e185
patch link:    https://lore.kernel.org/r/20230515181606.65953-9-blarson%40amd.com
patch subject: [PATCH v14 8/8] soc: amd: Add support for AMD Pensando SoC Controller
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20230516/202305161642.PZQ4S8o2-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/48a90df35083d2f3788e171ff0af01ddc8cd871b
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Brad-Larson/dt-bindings-arm-add-AMD-Pensando-boards/20230516-032312
        git checkout 48a90df35083d2f3788e171ff0af01ddc8cd871b
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sh SHELL=/bin/bash drivers/soc/amd/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202305161642.PZQ4S8o2-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/soc/amd/pensando-ctrl.c: In function 'penctrl_ioctl':
>> drivers/soc/amd/pensando-ctrl.c:91:36: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      91 |         if (copy_from_user(tx_buf, (void __user *)msg->tx_buf, msg->len)) {
         |                                    ^
   drivers/soc/amd/pensando-ctrl.c:114:26: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     114 |         if (copy_to_user((void __user *)msg->rx_buf, rx_buf, msg->len))
         |                          ^


vim +91 drivers/soc/amd/pensando-ctrl.c

    34	
    35	static long
    36	penctrl_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
    37	{
    38		void __user *in_arg = (void __user *)arg;
    39		struct penctrl_device *penctrl;
    40		u8 tx_buf[PENCTRL_MAX_MSG_LEN];
    41		u8 rx_buf[PENCTRL_MAX_MSG_LEN];
    42		struct spi_transfer t[2] = {};
    43		struct penctrl_spi_xfer *msg;
    44		struct spi_device *spi;
    45		unsigned int num_msgs;
    46		struct spi_message m;
    47		u32 size;
    48		int ret;
    49	
    50		/* Check for a valid command */
    51		if (_IOC_TYPE(cmd) != PENCTRL_IOC_MAGIC)
    52			return -ENOTTY;
    53	
    54		if (_IOC_NR(cmd) > PENCTRL_IOC_MAXNR)
    55			return -ENOTTY;
    56	
    57		if (((_IOC_DIR(cmd) & _IOC_READ)) && !access_ok(in_arg, _IOC_SIZE(cmd)))
    58			return -EFAULT;
    59	
    60		if (((_IOC_DIR(cmd) & _IOC_WRITE)) && !access_ok(in_arg, _IOC_SIZE(cmd)))
    61			return -EFAULT;
    62	
    63		/* Get a reference to the SPI device */
    64		penctrl = filp->private_data;
    65		if (!penctrl)
    66			return -ESHUTDOWN;
    67	
    68		spi = spi_dev_get(penctrl->spi);
    69		if (!spi)
    70			return -ESHUTDOWN;
    71	
    72		/* Verify and prepare SPI message */
    73		size = _IOC_SIZE(cmd);
    74		num_msgs = size / sizeof(struct penctrl_spi_xfer);
    75		if (num_msgs > 2 || size == 0 || size % sizeof(struct penctrl_spi_xfer)) {
    76			ret = -EINVAL;
    77			goto out_unlock;
    78		}
    79		msg = memdup_user((struct penctrl_spi_xfer *)arg, size);
    80		if (IS_ERR(msg)) {
    81			ret = PTR_ERR(msg);
    82			goto out_unlock;
    83		}
    84		if (msg->len > PENCTRL_MAX_MSG_LEN) {
    85			ret = -EINVAL;
    86			goto out_unlock;
    87		}
    88	
    89		t[0].tx_buf = tx_buf;
    90		t[0].len = msg->len;
  > 91		if (copy_from_user(tx_buf, (void __user *)msg->tx_buf, msg->len)) {
    92			ret = -EFAULT;
    93			goto out_unlock;
    94		}
    95		if (num_msgs > 1) {
    96			msg++;
    97			if (msg->len > PENCTRL_MAX_MSG_LEN) {
    98				ret = -EINVAL;
    99				goto out_unlock;
   100			}
   101			t[1].rx_buf = rx_buf;
   102			t[1].len = msg->len;
   103		}
   104		spi_message_init_with_transfers(&m, t, num_msgs);
   105	
   106		/* Perform the transfer */
   107		mutex_lock(&spi_lock);
   108		ret = spi_sync(spi, &m);
   109		mutex_unlock(&spi_lock);
   110	
   111		if (ret || (num_msgs == 1))
   112			goto out_unlock;
   113	
   114		if (copy_to_user((void __user *)msg->rx_buf, rx_buf, msg->len))
   115			ret = -EFAULT;
   116	
   117	out_unlock:
   118		spi_dev_put(spi);
   119		return ret;
   120	}
   121	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ