*/
        if (params->interval) {
                sdata->local->hw.conf.beacon_int = params->interval;
-               if (ieee80211_hw_config(sdata->local))
-                       return -EINVAL;
+               ieee80211_hw_config(sdata->local);
                /*
                 * We updated some parameter so if below bails out
                 * it's not an error.
 
               wiphy_name(local->hw.wiphy), chan->center_freq);
 #endif
 
-       if (local->open_count)
+       if (local->open_count) {
                ret = local->ops->config(local_to_hw(local), &local->hw.conf);
+               /*
+                * HW reconfiguration should never fail, the driver has told
+                * us what it can support so it should live up to that promise.
+                */
+               WARN_ON(ret);
+       }
 
        return ret;
 }
 
 
        if (local->hw_scanning) {
                local->hw_scanning = false;
-               if (ieee80211_hw_config(local))
-                       printk(KERN_DEBUG "%s: failed to restore operational "
-                              "channel after scan\n", wiphy_name(local->hw.wiphy));
-
+               ieee80211_hw_config(local);
                goto done;
        }
 
        local->sw_scanning = false;
-       if (ieee80211_hw_config(local))
-               printk(KERN_DEBUG "%s: failed to restore operational "
-                      "channel after scan\n", wiphy_name(local->hw.wiphy));
-
+       ieee80211_hw_config(local);
 
        netif_tx_lock_bh(local->mdev);
        netif_addr_lock(local->mdev);
 
                if (!skip) {
                        local->scan_channel = chan;
-                       if (ieee80211_hw_config(local)) {
-                               printk(KERN_DEBUG "%s: failed to set freq to "
-                                      "%d MHz for scan\n", wiphy_name(local->hw.wiphy),
-                                      chan->center_freq);
+                       if (ieee80211_hw_config(local))
                                skip = 1;
-                       }
                }
 
                /* advance state machine to next channel/band */
 
 
        if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
                if (sdata->vif.type == NL80211_IFTYPE_ADHOC &&
-                   chan->flags & IEEE80211_CHAN_NO_IBSS) {
-                       printk(KERN_DEBUG "%s: IBSS not allowed on frequency "
-                               "%d MHz\n", sdata->dev->name, chan->center_freq);
+                   chan->flags & IEEE80211_CHAN_NO_IBSS)
                        return ret;
-               }
                local->oper_channel = chan;
 
                if (local->sw_scanning || local->hw_scanning)
 
                ieee80211_led_radio(local, local->hw.conf.radio_enabled);
        }
 
-       if (need_reconfig) {
+       if (need_reconfig)
                ieee80211_hw_config(local);
-               /* The return value of hw_config is not of big interest here,
-                * as it doesn't say that it failed because of _this_ config
-                * change or something else. Ignore it. */
-       }
 
        return 0;
 }