Commit 6e07ebd84 (drivers/net: remove unnecessary
flush_scheduled_work() calls) incorrectly removed the flush call
without replacing it with the appropriate work specific operation.
Fix it by flushing vdev->reset_task explicitly.
Pointed out by Jon Mason.
Signed-off-by: Tejun Heo <[email protected]>
Cc: Jon Mason <[email protected]>
---
drivers/net/vxge/vxge-main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 537ad87..1ac9b56 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -3439,6 +3439,8 @@ static void vxge_device_unregister(struct __vxge_hw_device *hldev)
strncpy(buf, dev->name, IFNAMSIZ);
+ flush_work_sync(&vdev->reset_task);
+
/* in 2.6 will call stop() if device is up */
unregister_netdev(dev);
On Wed, Dec 15, 2010 at 06:03:29AM -0800, Tejun Heo wrote:
> Commit 6e07ebd84 (drivers/net: remove unnecessary
> flush_scheduled_work() calls) incorrectly removed the flush call
> without replacing it with the appropriate work specific operation.
> Fix it by flushing vdev->reset_task explicitly.
>
> Pointed out by Jon Mason.
>
> Signed-off-by: Tejun Heo <[email protected]>
> Cc: Jon Mason <[email protected]>
Acked-by: Jon Mason <[email protected]>
> ---
> drivers/net/vxge/vxge-main.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
> index 537ad87..1ac9b56 100644
> --- a/drivers/net/vxge/vxge-main.c
> +++ b/drivers/net/vxge/vxge-main.c
> @@ -3439,6 +3439,8 @@ static void vxge_device_unregister(struct __vxge_hw_device *hldev)
>
> strncpy(buf, dev->name, IFNAMSIZ);
>
> + flush_work_sync(&vdev->reset_task);
> +
> /* in 2.6 will call stop() if device is up */
> unregister_netdev(dev);
>
From: Jon Mason <[email protected]>
Date: Wed, 15 Dec 2010 08:29:00 -0600
> On Wed, Dec 15, 2010 at 06:03:29AM -0800, Tejun Heo wrote:
>> Commit 6e07ebd84 (drivers/net: remove unnecessary
>> flush_scheduled_work() calls) incorrectly removed the flush call
>> without replacing it with the appropriate work specific operation.
>> Fix it by flushing vdev->reset_task explicitly.
>>
>> Pointed out by Jon Mason.
>>
>> Signed-off-by: Tejun Heo <[email protected]>
>> Cc: Jon Mason <[email protected]>
> Acked-by: Jon Mason <[email protected]>
I'll apply this, thanks.