static unsigned int ata_unique_id = 1;
 static struct workqueue_struct *ata_wq;
 
+struct workqueue_struct *ata_aux_wq;
+
 int atapi_enabled = 1;
 module_param(atapi_enabled, int, 0444);
 MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices (0=off, 1=on)");
        if (!ata_wq)
                return -ENOMEM;
 
+       ata_aux_wq = create_singlethread_workqueue("ata_aux");
+       if (!ata_aux_wq) {
+               destroy_workqueue(ata_wq);
+               return -ENOMEM;
+       }
+
        printk(KERN_DEBUG "libata version " DRV_VERSION " loaded.\n");
        return 0;
 }
 static void __exit ata_exit(void)
 {
        destroy_workqueue(ata_wq);
+       destroy_workqueue(ata_aux_wq);
 }
 
 module_init(ata_init);