flush_scheduled_work() is being deprecated.  Directly flush or cancel
work items instead.
* u_ether, isp1301_omap, speedtch conversions are straight-forward.
* ochi-hcd should only flush when quirk_nec() is true as otherwise the
  work wouldn't have been initialized.
* In oti6858, cancel_delayed_work() + flush_scheduled_work() ->
  cancel_delayed_work_sync().
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Duncan Sands <duncan.sands@free.fr>
Cc: linux-usb@vger.kernel.org
        del_timer_sync(&instance->resubmit_timer);
        usb_free_urb(int_urb);
 
-       flush_scheduled_work();
+       flush_work_sync(&instance->status_check_work);
 }
 
 static int speedtch_pre_reset(struct usb_interface *intf)
 
                return;
 
        unregister_netdev(the_dev->net);
+       flush_work_sync(&the_dev->work);
        free_netdev(the_dev->net);
 
-       /* assuming we used keventd, it must quiesce too */
-       flush_scheduled_work();
-
        the_dev = NULL;
 }
 
 
 
        ohci_dump (ohci, 1);
 
-       flush_scheduled_work();
+       if (quirk_nec(ohci))
+               flush_work_sync(&ohci->nec_work);
 
        ohci_usb_reset (ohci);
        ohci_writel (ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);
 
        isp->timer.data = 0;
        set_bit(WORK_STOP, &isp->todo);
        del_timer_sync(&isp->timer);
-       flush_scheduled_work();
+       flush_work_sync(&isp->work);
 
        put_device(&i2c->dev);
        the_transceiver = NULL;
 
        dbg("%s(): after buf_clear()", __func__);
 
        /* cancel scheduled setup */
-       cancel_delayed_work(&priv->delayed_setup_work);
-       cancel_delayed_work(&priv->delayed_write_work);
-       flush_scheduled_work();
+       cancel_delayed_work_sync(&priv->delayed_setup_work);
+       cancel_delayed_work_sync(&priv->delayed_write_work);
 
        /* shutdown our urbs */
        dbg("%s(): shutting down urbs", __func__);