if (val) {
                /* Deliver any queued events. */
-               list_for_each_entry_safe(msg, msg2, &intf->waiting_events,
-                                        link) {
-                       list_del(&msg->link);
-                       list_add_tail(&msg->link, &msgs);
-               }
+               list_for_each_entry_safe(msg, msg2, &intf->waiting_events, link)
+                       list_move_tail(&msg->link, &msgs);
                intf->waiting_events_count = 0;
        }
 
 
 
        /* Move list entry to beginnig of list so that oldest partial
         * datagrams percolate to the end of the list */
-       list_del(lh);
-       list_add(lh, pdgl);
+       list_move(lh, pdgl);
 
        return 0;
 }
 
 static void __queue_complete_req(struct pending_request *req)
 {
        struct file_info *fi = req->file_info;
-       list_del(&req->list);
-       list_add_tail(&req->list, &fi->req_complete);
+       list_move_tail(&req->list, &fi->req_complete);
 
        up(&fi->complete_sem);
        wake_up_interruptible(&fi->poll_wait_complete);
 
 void ib_mark_mad_done(struct ib_mad_send_wr_private *mad_send_wr)
 {
        mad_send_wr->timeout = 0;
-       if (mad_send_wr->refcount == 1) {
-               list_del(&mad_send_wr->agent_list);
-               list_add_tail(&mad_send_wr->agent_list,
+       if (mad_send_wr->refcount == 1)
+               list_move_tail(&mad_send_wr->agent_list,
                              &mad_send_wr->mad_agent_priv->done_list);
-       }
 }
 
 static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv,
                queued_send_wr = container_of(mad_list,
                                        struct ib_mad_send_wr_private,
                                        mad_list);
-               list_del(&mad_list->list);
-               list_add_tail(&mad_list->list, &send_queue->list);
+               list_move_tail(&mad_list->list, &send_queue->list);
        }
        spin_unlock_irqrestore(&send_queue->lock, flags);
 
 
                        goto out;
 
                mad_send_wr->refcount++;
-               list_del(&mad_send_wr->agent_list);
-               list_add_tail(&mad_send_wr->agent_list,
+               list_move_tail(&mad_send_wr->agent_list,
                              &mad_send_wr->mad_agent_priv->send_list);
        }
 out:
 
 
                        if (mcast) {
                                /* Destroy the send only entry */
-                               list_del(&mcast->list);
-                               list_add_tail(&mcast->list, &remove_list);
+                               list_move_tail(&mcast->list, &remove_list);
 
                                rb_replace_node(&mcast->rb_node,
                                                &nmcast->rb_node,
                        rb_erase(&mcast->rb_node, &priv->multicast_tree);
 
                        /* Move to the remove list */
-                       list_del(&mcast->list);
-                       list_add_tail(&mcast->list, &remove_list);
+                       list_move_tail(&mcast->list, &remove_list);
                }
        }
 
 
        /* Already quiesced ? */
        if (atomic_read(®->pending))
                list_del_init(®->list);
+       else
+               list_move(®->list, &rh->quiesced_regions);
 
-       else {
-               list_del_init(®->list);
-               list_add(®->list, &rh->quiesced_regions);
-       }
        spin_unlock_irq(&rh->region_lock);
 
        return 1;
 
                        return 0;
                buf = list_entry(q->queued.next, struct cx88_buffer, vb.queue);
                if (NULL == prev) {
-                       list_del(&buf->vb.queue);
-                       list_add_tail(&buf->vb.queue,&q->active);
+                       list_move_tail(&buf->vb.queue, &q->active);
                        start_video_dma(dev, q, buf);
                        buf->vb.state = STATE_ACTIVE;
                        buf->count    = q->count++;
                } else if (prev->vb.width  == buf->vb.width  &&
                           prev->vb.height == buf->vb.height &&
                           prev->fmt       == buf->fmt) {
-                       list_del(&buf->vb.queue);
-                       list_add_tail(&buf->vb.queue,&q->active);
+                       list_move_tail(&buf->vb.queue, &q->active);
                        buf->vb.state = STATE_ACTIVE;
                        buf->count    = q->count++;
                        prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
 
 
        list_for_each_entry(pch, &new_channels, list) {
                if (pch->file.index == unit) {
-                       list_del(&pch->list);
-                       list_add(&pch->list, &all_channels);
+                       list_move(&pch->list, &all_channels);
                        return pch;
                }
        }
 
                }
        }
        /* re-insert all entries from the failed_list into ipm_list */
-       list_for_each_entry_safe(ipm, tmp, &failed_list, list) {
-               list_del_init(&ipm->list);
-               list_add_tail(&ipm->list, &card->ipm_list);
-       }
+       list_for_each_entry_safe(ipm, tmp, &failed_list, list)
+               list_move_tail(&ipm->list, &card->ipm_list);
+
        spin_unlock_irqrestore(&card->ipm_lock, flags);
 }
 
 
                cp->host_status &= ~HS_SKIPMASK;
                cp->start.schedule.l_paddr = 
                        cpu_to_scr(NCB_SCRIPT_PHYS (np, select));
-               list_del(&cp->link_ccbq);
-               list_add_tail(&cp->link_ccbq, &lp->skip_ccbq);
+               list_move_tail(&cp->link_ccbq, &lp->skip_ccbq);
                if (cp->queued) {
                        --lp->queuedccbs;
                }
 
                        }
 
                        /* Remove device from the new list and add it to DB */
-                       list_del(&fcport->list);
-                       list_add_tail(&fcport->list, &ha->fcports);
+                       list_move_tail(&fcport->list, &ha->fcports);
 
                        /* Login and update database */
                        qla2x00_fabric_dev_login(ha, fcport, &next_loopid);
 
        urb_entry_t *urb_entry = __urb_list_entry(urb, epid);
        assert(urb_entry);
 
-       list_del(&urb_entry->list);
-       list_add_tail(&urb_entry->list, &urb_list[epid]);
+       list_move_tail(&urb_entry->list, &urb_list[epid]);
 }
 
 /* Get the next urb in the list. */
 
                wrap = list_entry(tmp, struct whiteheat_urb_wrap, list);
                urb = wrap->urb;
                usb_kill_urb(urb);
-               list_del(tmp);
-               list_add(tmp, &info->rx_urbs_free);
-       }
-       list_for_each_safe(tmp, tmp2, &info->rx_urb_q) {
-               list_del(tmp);
-               list_add(tmp, &info->rx_urbs_free);
+               list_move(tmp, &info->rx_urbs_free);
        }
+       list_for_each_safe(tmp, tmp2, &info->rx_urb_q)
+               list_move(tmp, &info->rx_urbs_free);
+
        list_for_each_safe(tmp, tmp2, &info->tx_urbs_submitted) {
                wrap = list_entry(tmp, struct whiteheat_urb_wrap, list);
                urb = wrap->urb;
                usb_kill_urb(urb);
-               list_del(tmp);
-               list_add(tmp, &info->tx_urbs_free);
+               list_move(tmp, &info->tx_urbs_free);
        }
        spin_unlock_irqrestore(&info->lock, flags);
 
                err("%s - Not my urb!", __FUNCTION__);
                return;
        }
-       list_del(&wrap->list);
-       list_add(&wrap->list, &info->tx_urbs_free);
+       list_move(&wrap->list, &info->tx_urbs_free);
        spin_unlock(&info->lock);
 
        if (urb->status) {
                                wrap = list_entry(tmp, struct whiteheat_urb_wrap, list);
                                urb = wrap->urb;
                                usb_kill_urb(urb);
-                               list_del(tmp);
-                               list_add(tmp, &info->rx_urbs_free);
+                               list_move(tmp, &info->rx_urbs_free);
                        }
                        break;
                }