Re: [PATCH 4/9] firewire: don't use PREPARE_DELAYED_WORK

From: Tejun Heo
Date: Fri Mar 07 2014 - 10:18:40 EST


On Wed, Mar 05, 2014 at 10:34:32PM +0100, Stefan Richter wrote:
> On Feb 21 Stefan Richter wrote:
> > On Feb 20 Tejun Heo wrote:
> > > PREPARE_[DELAYED_]WORK() are being phased out. They have few users
> > > and a nasty surprise in terms of reentrancy guarantee as workqueue
> > > considers work items to be different if they don't have the same work
> > > function.
> > >
> > > firewire core-device and sbp2 have been been multiplexing work items
> > > with multiple work functions. Introduce fw_device_workfn() and
> > > sbp2_lu_workfn() which invoke fw_device->workfn and
> > > sbp2_logical_unit->workfn respectively and always use the two
> > > functions as the work functions and update the users to set the
> > > ->workfn fields instead of overriding work functions using
> > > PREPARE_DELAYED_WORK().
> > >
> > > It would probably be best to route this with other related updates
> > > through the workqueue tree.
> > >
> > > Compile tested.
> > >
> > > Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> > > Cc: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
> > > Cc: linux1394-devel@xxxxxxxxxxxxxxxxxxxxx
> >
> > Acked-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>
>
> Actually, there is something missing in the changelog:
>
> This fixes a variety of possible regressions since a2c1c57be8d9
> "workqueue: consider work function when searching for busy work items"
> due to which fw_workqueue lost its required non-reentrancy property.
>
> Cc: stable@xxxxxxxxxx # v3.9+
> Cc: stable@xxxxxxxxxx # v3.8.2+
> Cc: stable@xxxxxxxxxx # v3.4.60+
> Cc: stable@xxxxxxxxxx # v3.2.40+
>
> Tejun, will you be adding these and push the patch at the latest before
> v3.15-rc1? Otherwise, I will take over the patch and push it still this
> week, i.e. before v3.14-rc6.

I'll push this one through wq/for-3.14-fixes and route the others
through wq/for-3.15.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/