QI_LENGTH
for (index = 0; index < QI_LENGTH; index++) {
qi->free_tail = (qi->free_tail + 1) % QI_LENGTH;
head = ((head >> qi_shift(iommu)) + QI_LENGTH - 1) % QI_LENGTH;
head = ((head >> shift) - 1 + QI_LENGTH) % QI_LENGTH;
tail = ((tail >> shift) - 1 + QI_LENGTH) % QI_LENGTH;
head = (head - 1 + QI_LENGTH) % QI_LENGTH;
wait_index = (index + count) % QI_LENGTH;
offset = ((index + i) % QI_LENGTH) << shift;
qi->desc_status[(index + i) % QI_LENGTH] = QI_IN_USE;
qi->free_head = (qi->free_head + count + 1) % QI_LENGTH;
qi->desc_status[(index + i) % QI_LENGTH] = QI_FREE;
qi->free_cnt = QI_LENGTH;
qi->desc_status = kzalloc_objs(int, QI_LENGTH, GFP_ATOMIC);