void line6_dumpreq_destruct(struct line6_dump_request *l6dr) { if (l6dr->reqbufs[0].buffer == NULL) return; line6_dumpreq_destructbuf(l6dr, 0); l6dr->ok = 1; del_timer_sync(&l6dr->timer); }
/* Variax destructor. */ static void variax_destruct(struct usb_interface *interface) { struct usb_line6_variax *variax = usb_get_intfdata(interface); if (variax == NULL) return; line6_cleanup_audio(&variax->line6); del_timer(&variax->startup_timer1); del_timer(&variax->startup_timer2); cancel_work_sync(&variax->startup_work); /* free dump request data: */ line6_dumpreq_destructbuf(&variax->dumpreq, 2); line6_dumpreq_destructbuf(&variax->dumpreq, 1); line6_dumpreq_destruct(&variax->dumpreq); kfree(variax->buffer_activate); }
/* Variax destructor. */ static void variax_destruct(struct usb_interface *interface) { struct usb_line6_variax *variax = usb_get_intfdata(interface); struct usb_line6 *line6; if (variax == NULL) return; line6 = &variax->line6; if (line6 == NULL) return; line6_cleanup_audio(line6); /* free dump request data: */ line6_dumpreq_destructbuf(&variax->dumpreq, 2); line6_dumpreq_destructbuf(&variax->dumpreq, 1); line6_dumpreq_destruct(&variax->dumpreq); kfree(variax->buffer_activate); del_timer_sync(&variax->activate_timer); }