Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / drivers / net / ethernet / marvell / prestera / prestera_main.c
index 73cd0a4..1402c78 100644 (file)
 #define PRESTERA_MAC_ADDR_NUM_MAX      255
 
 static struct workqueue_struct *prestera_wq;
+static struct workqueue_struct *prestera_owq;
+
+void prestera_queue_work(struct work_struct *work)
+{
+       queue_work(prestera_owq, work);
+}
 
 int prestera_port_pvid_set(struct prestera_port *port, u16 vid)
 {
@@ -1025,12 +1031,17 @@ static int __init prestera_module_init(void)
        if (!prestera_wq)
                return -ENOMEM;
 
+       prestera_owq = alloc_ordered_workqueue("prestera_ordered", 0);
+       if (!prestera_owq)
+               return -ENOMEM;
+
        return 0;
 }
 
 static void __exit prestera_module_exit(void)
 {
        destroy_workqueue(prestera_wq);
+       destroy_workqueue(prestera_owq);
 }
 
 module_init(prestera_module_init);