/* Takes jobs of the Q and sends them to the hardware, then puts it on the Q to wait for completion.  */
static void start_io(ctlr_info_t *h)
/* Takes jobs of the Q and sends them to the hardware, then puts it on the Q to wait for completion.  */
static void start_io(ctlr_info_t *h)
{
	CommandList_struct *c;
	while (!hlist_empty(&h->reqQ)) {
		c = hlist_entry(h->reqQ.first, CommandList_struct, list);
		if ((h->access.fifo_full(h))) {
			printk(KERN_WARNING "cciss: fifo full\n");
			break;
		}
		removeQ(c);
		h->Qdepth--;
		h->access.submit_command(h, c);
		addQ(&h->cmpQ, c);
	}
}