tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git greybus head: cab4d7cd1ee96333007cb5d539286cd41ee99dde commit: 43fd84431f464681bc88b0d62367dcf86f93cdf1 [356/357] staging: greybus: vibrator: use proper API for vibrator devices config: x86_64-randconfig-s022-20210615 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?id=43fd84431f464681bc88b0d62367dcf86f93cdf1 git remote add staging https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git git fetch --no-tags staging greybus git checkout 43fd84431f464681bc88b0d62367dcf86f93cdf1 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): ld: drivers/staging/greybus/vibrator.o: in function `gb_vibrator_probe': >> drivers/staging/greybus/vibrator.c:224: undefined reference to `input_ff_create_memless' vim +224 drivers/staging/greybus/vibrator.c 158 159 static int gb_vibrator_probe(struct gb_bundle *bundle, 160 const struct greybus_bundle_id *id) 161 { 162 struct greybus_descriptor_cport *cport_desc; 163 struct gb_connection *connection; 164 struct gb_vibrator_device *vib; 165 struct device *dev; 166 int retval; 167 168 if (bundle->num_cports != 1) 169 return -ENODEV; 170 171 cport_desc = &bundle->cport_desc[0]; 172 if (cport_desc->protocol_id != GREYBUS_PROTOCOL_VIBRATOR) 173 return -ENODEV; 174 175 vib = kzalloc(sizeof(*vib), GFP_KERNEL); 176 if (!vib) 177 return -ENOMEM; 178 179 connection = gb_connection_create(bundle, le16_to_cpu(cport_desc->id), 180 NULL); 181 if (IS_ERR(connection)) { 182 retval = PTR_ERR(connection); 183 goto err_free_vib; 184 } 185 gb_connection_set_data(connection, vib); 186 187 vib->connection = connection; 188 189 greybus_set_drvdata(bundle, vib); 190 191 retval = gb_connection_enable(connection); 192 if (retval) 193 goto err_connection_destroy; 194 195 /* 196 * For now we create a device in sysfs for the vibrator, but odds are 197 * there is a "real" device somewhere in the kernel for this, but I 198 * can't find it at the moment... 199 */ 200 vib->minor = ida_simple_get(&minors, 0, 0, GFP_KERNEL); 201 if (vib->minor < 0) { 202 retval = vib->minor; 203 goto err_connection_disable; 204 } 205 dev = device_create(&vibrator_class, &bundle->dev, 206 MKDEV(0, 0), vib, "vibrator%d", vib->minor); 207 if (IS_ERR(dev)) { 208 retval = -EINVAL; 209 goto err_ida_remove; 210 } 211 vib->dev = dev; 212 213 INIT_DELAYED_WORK(&vib->delayed_work, gb_vibrator_worker); 214 215 INIT_WORK(&vib->play_work, gb_vibrator_play_work); 216 vib->input->name = "greybus-vibrator"; 217 vib->input->close = gb_vibrator_close; 218 vib->input->dev.parent = &bundle->dev; 219 vib->input->id.bustype = BUS_HOST; 220 221 input_set_drvdata(vib->input, vib); 222 input_set_capability(vib->input, EV_FF, FF_RUMBLE); 223 > 224 retval = input_ff_create_memless(vib->input, NULL, 225 gb_vibrator_play_effect); 226 if (retval) 227 goto err_device_remove; 228 229 gb_pm_runtime_put_autosuspend(bundle); 230 231 return 0; 232 233 err_device_remove: 234 device_unregister(vib->dev); 235 err_ida_remove: 236 ida_simple_remove(&minors, vib->minor); 237 err_connection_disable: 238 gb_connection_disable(connection); 239 err_connection_destroy: 240 gb_connection_destroy(connection); 241 err_free_vib: 242 kfree(vib); 243 244 return retval; 245 } 246 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org