Re: [PATCH v3] f_midi_complete to call tasklet_hi_schedule

kernel test robot
2025-02-08T12:10:51Z

Hi Jill,

kernel test robot noticed the following build errors:

[auto build test ERROR on usb/usb-testing]
[also build test ERROR on usb/usb-next usb/usb-linus westeri-thunderbolt/next linus/master v6.14-rc1 next-20250207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Jill-Donahue/f_midi_complete-to-call-tasklet_hi_schedule/20250208-043845
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/r/20250207203441.945196-1-jilliandonahue58%40gmail.com
patch subject: [PATCH v3] f_midi_complete to call tasklet_hi_schedule
config: i386-buildonly-randconfig-003-20250208 (https://download.01.org/0day-ci/archive/20250208/202502081928.T2cRhulq-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250208/202502081928.T2cRhulq-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/202502081928.T2cRhulq-lkp@intel.com/

All errors (new ones prefixed by >>):

drivers/usb/gadget/function/f_midi.c: In function 'f_midi_complete':
>> drivers/usb/gadget/function/f_midi.c:286:50: error: 'struct f_midi' has no member named 'tasklet'
286 | tasklet_hi_schedule(&midi->tasklet);
| ^~

vim +286 drivers/usb/gadget/function/f_midi.c

269
270 static void
271 f_midi_complete(struct usb_ep *ep, struct usb_request *req)
272 {
273 struct f_midi *midi = ep->driver_data;
274 struct usb_composite_dev *cdev = midi->func.config->cdev;
275 int status = req->status;
276
277 switch (status) {
278 case 0: /* normal completion */
279 if (ep == midi->out_ep) {
280 /* We received stuff. req is queued again, below */
281 f_midi_handle_out_data(ep, req);
282 } else if (ep == midi->in_ep) {
283 /* Our transmit completed. See if there's more to go.
284 * f_midi_transmit eats req, don't queue it again. */
285 req->length = 0;
> 286 tasklet_hi_schedule(&midi->tasklet);
287 return;
288 }
289 break;
290
291 /* this endpoint is normally active while we're configured */
292 case -ECONNABORTED: /* hardware forced ep reset */
293 case -ECONNRESET: /* request dequeued */
294 case -ESHUTDOWN: /* disconnect from host */
295 VDBG(cdev, "%s gone (%d), %d/%d\n", ep->name, status,
296 req->actual, req->length);
297 if (ep == midi->out_ep) {
298 f_midi_handle_out_data(ep, req);
299 /* We don't need to free IN requests because it's handled
300 * by the midi->in_req_fifo. */
301 free_ep_req(ep, req);
302 }
303 return;
304
305 case -EOVERFLOW: /* buffer overrun on read means that
306 * we didn't provide a big enough buffer.
307 */
308 default:
309 DBG(cdev, "%s complete --> %d, %d/%d\n", ep->name,
310 status, req->actual, req->length);
311 break;
312 case -EREMOTEIO: /* short read */
313 break;
314 }
315
316 status = usb_ep_queue(ep, req, GFP_ATOMIC);
317 if (status) {
318 ERROR(cdev, "kill %s: resubmit %d bytes --> %d\n",
319 ep->name, req->length, status);
320 usb_ep_set_halt(ep);
321 /* FIXME recover later ... somehow */
322 }
323 }
324

--
0-DAY CI Kernel Test Service