static void backend_disconnect(struct backend_info *be)
 {
-       if (be->vif) {
+       struct xenvif *vif = be->vif;
+
+       if (vif) {
                unsigned int queue_index;
 
-               xen_unregister_watchers(be->vif);
+               xen_unregister_watchers(vif);
 #ifdef CONFIG_DEBUG_FS
-               xenvif_debugfs_delif(be->vif);
+               xenvif_debugfs_delif(vif);
 #endif /* CONFIG_DEBUG_FS */
-               xenvif_disconnect_data(be->vif);
-               for (queue_index = 0; queue_index < be->vif->num_queues; ++queue_index)
-                       xenvif_deinit_queue(&be->vif->queues[queue_index]);
-
-               spin_lock(&be->vif->lock);
-               vfree(be->vif->queues);
-               be->vif->num_queues = 0;
-               be->vif->queues = NULL;
-               spin_unlock(&be->vif->lock);
-
-               xenvif_disconnect_ctrl(be->vif);
+               xenvif_disconnect_data(vif);
+               for (queue_index = 0;
+                    queue_index < vif->num_queues;
+                    ++queue_index)
+                       xenvif_deinit_queue(&vif->queues[queue_index]);
+
+               spin_lock(&vif->lock);
+               vfree(vif->queues);
+               vif->num_queues = 0;
+               vif->queues = NULL;
+               spin_unlock(&vif->lock);
+
+               xenvif_disconnect_ctrl(vif);
        }
 }