Re: [PATCH] scsi/ata: Use unsigned int for cmd's type in ioctls in scsi_host_template

From: kbuild test robot
Date: Sat Oct 20 2018 - 00:53:32 EST


Hi Nathan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on scsi/for-next]
[also build test ERROR on v4.19-rc8 next-20181019]
[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/Nathan-Chancellor/scsi-ata-Use-unsigned-int-for-cmd-s-type-in-ioctls-in-scsi_host_template/20181020-120416
base: https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=powerpc

All errors (new ones prefixed by >>):

>> drivers/scsi//cxlflash/main.c:3170:11: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.ioctl = cxlflash_ioctl,
^~~~~~~~~~~~~~
drivers/scsi//cxlflash/main.c:3170:11: note: (near initialization for 'driver_template.ioctl')
cc1: some warnings being treated as errors
--
>> drivers/scsi//cxlflash/superpipe.c:2099:5: error: conflicting types for 'cxlflash_ioctl'
int cxlflash_ioctl(struct scsi_device *sdev, unsigned int cmd, void __user *arg)
^~~~~~~~~~~~~~
In file included from drivers/scsi//cxlflash/superpipe.c:29:0:
drivers/scsi//cxlflash/common.h:337:5: note: previous declaration of 'cxlflash_ioctl' was here
int cxlflash_ioctl(struct scsi_device *sdev, int cmd, void __user *arg);
^~~~~~~~~~~~~~

vim +/cxlflash_ioctl +2099 drivers/scsi//cxlflash/superpipe.c

2082
2083 /**
2084 * cxlflash_ioctl() - IOCTL handler for driver
2085 * @sdev: SCSI device associated with LUN.
2086 * @cmd: IOCTL command.
2087 * @arg: Userspace ioctl data structure.
2088 *
2089 * A read/write semaphore is used to implement a 'drain' of currently
2090 * running ioctls. The read semaphore is taken at the beginning of each
2091 * ioctl thread and released upon concluding execution. Additionally the
2092 * semaphore should be released and then reacquired in any ioctl execution
2093 * path which will wait for an event to occur that is outside the scope of
2094 * the ioctl (i.e. an adapter reset). To drain the ioctls currently running,
2095 * a thread simply needs to acquire the write semaphore.
2096 *
2097 * Return: 0 on success, -errno on failure
2098 */
> 2099 int cxlflash_ioctl(struct scsi_device *sdev, unsigned int cmd, void __user *arg)

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

Attachment: .config.gz
Description: application/gzip