From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79ABDC5517A for ; Mon, 9 Nov 2020 19:36:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 30515206D8 for ; Mon, 9 Nov 2020 19:36:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729871AbgKITgt (ORCPT ); Mon, 9 Nov 2020 14:36:49 -0500 Received: from mx2.suse.de ([195.135.220.15]:35946 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726691AbgKITgt (ORCPT ); Mon, 9 Nov 2020 14:36:49 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id E6505B028; Mon, 9 Nov 2020 19:36:47 +0000 (UTC) Date: Mon, 9 Nov 2020 11:14:10 -0800 From: Davidlohr Bueso To: Oliver Neukum Cc: Johan Hovold , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Davidlohr Bueso Subject: Re: [PATCH] usb/mos7720: process deferred urbs in a workqueue Message-ID: <20201109191410.wjywxb5c6ylvekom@linux-p48b.lan> References: <20201102211450.5722-1-dave@stgolabs.net> <20201103204014.3ue37owcras6cx7p@linux-p48b.lan> <20201104110657.GW4085@localhost> <20201104162534.GY4085@localhost> <20201105001307.lelve65nif344cfs@linux-p48b.lan> <20201105082540.GA4085@localhost> <20201106061713.lgghl4xnvdmkvges@linux-p48b.lan> <574f338f6f0b81fe1e4109f74c6dfcb45aca0d53.camel@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <574f338f6f0b81fe1e4109f74c6dfcb45aca0d53.camel@suse.com> User-Agent: NeoMutt/20180716 Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org On Mon, 09 Nov 2020, Oliver Neukum wrote: >Am Donnerstag, den 05.11.2020, 22:17 -0800 schrieb Davidlohr Bueso: >> @@ -1888,16 +1732,8 @@ static void mos7720_release(struct usb_serial *serial) >> usb_set_serial_data(serial, NULL); >> mos_parport->serial = NULL; >> >> - /* if tasklet currently scheduled, wait for it to complete */ >> - tasklet_kill(&mos_parport->urb_tasklet); >> - >> - /* unlink any urbs sent by the tasklet */ >> - spin_lock_irqsave(&mos_parport->listlock, flags); >> - list_for_each_entry(urbtrack, >> - &mos_parport->active_urbs, >> - urblist_entry) >> - usb_unlink_urb(urbtrack->urb); >> - spin_unlock_irqrestore(&mos_parport->listlock, flags); >> + /* if work is currently scheduled, wait for it to complete */ >> + cancel_work_sync(&mos_parport->work); >> parport_del_port(mos_parport->pp); >> >> kref_put(&mos_parport->ref_count, destroy_mos_parport); > >Hi, > >do you really want to cancel as opposed to wait for work in release()? Well I tried to maintain the current semantics here. tasklet_kill() is equivalent to cancel_work_sync() in that they both wait for the delayed execution to finish running and guarantee that it is no longer queued. Thanks, Davidlohr