Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6dca467a authored by Tejun Heo's avatar Tejun Heo
Browse files

s390: don't use flush_scheduled_work()



flush_scheduled_work() is deprecated and scheduled to be removed.

* tape_3590: Create and use tape_3590_wq instead of the system_wq.

* tape_block: Directly flush requeue_task on cleanup instead of using
  flush_scheduled_work().

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux390@de.ibm.com
Cc: linux-s390@vger.kernel.org
parent 9db8995b
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@
#include "tape_std.h"
#include "tape_3590.h"

static struct workqueue_struct *tape_3590_wq;

/*
 * Pointer to debug area.
 */
@@ -613,7 +615,7 @@ tape_3590_schedule_work(struct tape_device *device, enum tape_op op)
	p->device = tape_get_device(device);
	p->op = op;

	schedule_work(&p->work);
	queue_work(tape_3590_wq, &p->work);
	return 0;
}

@@ -1629,7 +1631,7 @@ fail_kmalloc:
static void
tape_3590_cleanup_device(struct tape_device *device)
{
	flush_scheduled_work();
	flush_workqueue(tape_3590_wq);
	tape_std_unassign(device);

	kfree(device->discdata);
@@ -1733,11 +1735,17 @@ tape_3590_init(void)
#endif

	DBF_EVENT(3, "3590 init\n");

	tape_3590_wq = alloc_workqueue("tape_3590", 0, 0);
	if (!tape_3590_wq)
		return -ENOMEM;

	/* Register driver for 3590 tapes. */
	rc = ccw_driver_register(&tape_3590_driver);
	if (rc)
	if (rc) {
		destroy_workqueue(tape_3590_wq);
		DBF_EVENT(3, "3590 init failed\n");
	else
	} else
		DBF_EVENT(3, "3590 registered\n");
	return rc;
}
@@ -1746,7 +1754,7 @@ static void
tape_3590_exit(void)
{
	ccw_driver_unregister(&tape_3590_driver);

	destroy_workqueue(tape_3590_wq);
	debug_unregister(TAPE_DBF_AREA);
}

+1 −1
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ cleanup_queue:
void
tapeblock_cleanup_device(struct tape_device *device)
{
	flush_scheduled_work();
	flush_work_sync(&device->blk_data.requeue_task);
	tape_put_device(device);

	if (!device->blk_data.disk) {