2883 c->Request.CDB[9]= start_blk & 0xff;
2884 c->Request.CDB[10]= (creq->nr_sectors >> 24) & 0xff;
2885 c->Request.CDB[11]= (creq->nr_sectors >> 16) & 0xff;
2886 c->Request.CDB[12]= (creq->nr_sectors >> 8) & 0xff;
2887 c->Request.CDB[13]= creq->nr_sectors & 0xff;
2888 c->Request.CDB[14] = c->Request.CDB[15] = 0;
2889 }
2890 } else if (blk_pc_request(creq)) {
2891 c->Request.CDBLen = creq->cmd_len;
2892 memcpy(c->Request.CDB, creq->cmd, BLK_MAX_CDB);
2893 } else {
2894 printk(KERN_WARNING "cciss%d: bad request type %d\n", h->ctlr, creq->cmd_type);
2895 BUG();
2896 }
2897
2898 spin_lock_irq(q->queue_lock);
2899
2900 addQ(&(h->reqQ), c);
2901 h->Qdepth++;
2902 if (h->Qdepth > h->maxQsinceinit)
2903 h->maxQsinceinit = h->Qdepth;
2904
2905 goto queue;
2906full:
2907 blk_stop_queue(q);
2908startio:
2909
2910
2911
2912 start_io(h);
2913}
2914
2915static inline unsigned long get_next_completion(ctlr_info_t *h)
2916{
2917#ifdef CONFIG_CISS_SCSI_TAPE
2918
2919 if (h->scsi_rejects.ncompletions == 0)
2920 return h->access.command_completed(h);
2921 else {
2922 struct sendcmd_reject_list *srl;
2923 int n;