* [linux-next:master 8744/9027] drivers/hid/hidraw.c:143:70: sparse: sparse: non size-preserving pointer to integer cast
@ 2024-06-28 15:06 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-06-28 15:06 UTC (permalink / raw)
To: Benjamin Tissoires; +Cc: oe-kbuild-all, Linux Memory Management List
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 642a16ca7994a50d7de85715996a8ce171a5bdfb
commit: 67eccf151d76a9939ad8a50c6db5cb486b01df24 [8744/9027] HID: add source argument to HID low level functions
config: i386-randconfig-r132-20240628 (https://download.01.org/0day-ci/archive/20240628/202406282242.Fk738zzy-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240628/202406282242.Fk738zzy-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406282242.Fk738zzy-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/hid/hidraw.c:143:70: sparse: sparse: non size-preserving pointer to integer cast
drivers/hid/hidraw.c:154:63: sparse: sparse: non size-preserving pointer to integer cast
drivers/hid/hidraw.c:231:63: sparse: sparse: non size-preserving pointer to integer cast
vim +143 drivers/hid/hidraw.c
101
102 /*
103 * The first byte of the report buffer is expected to be a report number.
104 */
105 static ssize_t hidraw_send_report(struct file *file, const char __user *buffer, size_t count, unsigned char report_type)
106 {
107 unsigned int minor = iminor(file_inode(file));
108 struct hid_device *dev;
109 __u8 *buf;
110 int ret = 0;
111
112 lockdep_assert_held(&minors_rwsem);
113
114 if (!hidraw_table[minor] || !hidraw_table[minor]->exist) {
115 ret = -ENODEV;
116 goto out;
117 }
118
119 dev = hidraw_table[minor]->hid;
120
121 if (count > HID_MAX_BUFFER_SIZE) {
122 hid_warn(dev, "pid %d passed too large report\n",
123 task_pid_nr(current));
124 ret = -EINVAL;
125 goto out;
126 }
127
128 if (count < 2) {
129 hid_warn(dev, "pid %d passed too short report\n",
130 task_pid_nr(current));
131 ret = -EINVAL;
132 goto out;
133 }
134
135 buf = memdup_user(buffer, count);
136 if (IS_ERR(buf)) {
137 ret = PTR_ERR(buf);
138 goto out;
139 }
140
141 if ((report_type == HID_OUTPUT_REPORT) &&
142 !(dev->quirks & HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP)) {
> 143 ret = __hid_hw_output_report(dev, buf, count, (__u64)file);
144 /*
145 * compatibility with old implementation of USB-HID and I2C-HID:
146 * if the device does not support receiving output reports,
147 * on an interrupt endpoint, fallback to SET_REPORT HID command.
148 */
149 if (ret != -ENOSYS)
150 goto out_free;
151 }
152
153 ret = __hid_hw_raw_request(dev, buf[0], buf, count, report_type,
154 HID_REQ_SET_REPORT, (__u64)file);
155
156 out_free:
157 kfree(buf);
158 out:
159 return ret;
160 }
161
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-06-28 15:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-28 15:06 [linux-next:master 8744/9027] drivers/hid/hidraw.c:143:70: sparse: sparse: non size-preserving pointer to integer cast kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.