static void iwl_free_fw_desc(struct iwl_priv *priv, struct fw_desc *desc)
 {
        if (desc->v_addr)
-               dma_free_coherent(priv->bus->dev, desc->len,
+               dma_free_coherent(bus(priv)->dev, desc->len,
                                  desc->v_addr, desc->p_addr);
        desc->v_addr = NULL;
        desc->len = 0;
                return -EINVAL;
        }
 
-       desc->v_addr = dma_alloc_coherent(priv->bus->dev, len,
+       desc->v_addr = dma_alloc_coherent(bus(priv)->dev, len,
                                          &desc->p_addr, GFP_KERNEL);
        if (!desc->v_addr)
                return -ENOMEM;
                       priv->firmware_name);
 
        return request_firmware_nowait(THIS_MODULE, 1, priv->firmware_name,
-                                      priv->bus->dev,
+                                      bus(priv)->dev,
                                       GFP_KERNEL, priv, iwl_ucode_callback);
 }
 
        iwl_dealloc_ucode(priv);
  out_unbind:
        complete(&priv->firmware_loading_complete);
-       device_release_driver(priv->bus->dev);
+       device_release_driver(bus(priv)->dev);
        release_firmware(ucode_raw);
 }
 
                            WIPHY_FLAG_DISABLE_BEACON_HINTS |
                            WIPHY_FLAG_IBSS_RSN;
 
-       if (priv->ucode_wowlan.code.len && device_can_wakeup(priv->bus->dev)) {
+       if (priv->ucode_wowlan.code.len && device_can_wakeup(bus(priv)->dev)) {
                hw->wiphy->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT |
                                          WIPHY_WOWLAN_DISCONNECT |
                                          WIPHY_WOWLAN_EAP_IDENTITY_REQ |
        if (ret)
                goto error;
 
-       device_set_wakeup_enable(priv->bus->dev, true);
+       device_set_wakeup_enable(bus(priv)->dev, true);
 
        /* Now let the ucode operate on its own */
        iwl_write32(bus(priv), CSR_UCODE_DRV_GP1_SET,
 
        priv->shrd->wowlan = false;
 
-       device_set_wakeup_enable(priv->bus->dev, false);
+       device_set_wakeup_enable(bus(priv)->dev, false);
 
        iwlagn_prepare_restart(priv);
 
        }
 
        priv = hw->priv;
-       priv->bus = bus;
        priv->shrd = &priv->_shrd;
        bus->shrd = priv->shrd;
        priv->shrd->bus = bus;
 
        /* At this point both hw and priv are allocated. */
 
-       SET_IEEE80211_DEV(hw, priv->bus->dev);
+       SET_IEEE80211_DEV(hw, bus(priv)->dev);
 
        IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n");
        priv->cfg = cfg;
 
        if ((priv->bands[IEEE80211_BAND_5GHZ].n_channels == 0) &&
             priv->cfg->sku & EEPROM_SKU_CAP_BAND_52GHZ) {
                char buf[32];
-               bus_get_hw_id(priv->bus, buf, sizeof(buf));
+               bus_get_hw_id(bus(priv), buf, sizeof(buf));
                IWL_INFO(priv, "Incorrectly detected BG card as ABG. "
                        "Please send your %s to maintainer.\n", buf);
                priv->cfg->sku &= ~EEPROM_SKU_CAP_BAND_52GHZ;
        iwl_set_bit(bus(priv), CSR_HW_IF_CONFIG_REG,
                                    CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A);
 
-       bus_apm_config(priv->bus);
+       bus_apm_config(bus(priv));
 
        /* Configure analog phase-lock-loop before activating to D0A */
        if (priv->cfg->base_params->pll_cfg_val)
 
        if (priv->testmode_trace.trace_enabled) {
                if (priv->testmode_trace.cpu_addr &&
                    priv->testmode_trace.dma_addr)
-                       dma_free_coherent(priv->bus->dev,
+                       dma_free_coherent(bus(priv)->dev,
                                        priv->testmode_trace.total_size,
                                        priv->testmode_trace.cpu_addr,
                                        priv->testmode_trace.dma_addr);
        struct iwl_priv *priv = hw->priv;
        struct sk_buff *skb;
        int status = 0;
-       struct device *dev = priv->bus->dev;
+       struct device *dev = bus(priv)->dev;
 
        switch (nla_get_u32(tb[IWL_TM_ATTR_COMMAND])) {
        case IWL_TM_CMD_APP2DEV_BEGIN_TRACE: