Staging: w35und: replace switch error handling with gotos in wb35_hw_init()
Impact: cleanup This patch replaces the switch-based error handling in wb35_hw_init() with regular gotos. Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
6ab3212720
commit
2659851122
|
@ -178,15 +178,15 @@ static const struct ieee80211_ops wbsoft_ops = {
|
|||
// conf_tx: hal_set_cwmin()/hal_set_cwmax;
|
||||
};
|
||||
|
||||
static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
|
||||
static int wb35_hw_init(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct wbsoft_priv *priv = hw->priv;
|
||||
struct hw_data * pHwData;
|
||||
u8 *pMacAddr;
|
||||
u8 *pMacAddr2;
|
||||
u32 InitStep = 0;
|
||||
u8 EEPROM_region;
|
||||
u8 HwRadioOff;
|
||||
int err;
|
||||
|
||||
//
|
||||
// Setting default value for Linux
|
||||
|
@ -209,10 +209,11 @@ static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
|
|||
priv->sLocalPara.WepKeyDetectTimerCount= 2 * 100; /// 2 seconds
|
||||
|
||||
// Initial USB hal
|
||||
InitStep = 1;
|
||||
pHwData = &priv->sHwData;
|
||||
if (!hal_init_hardware(hw))
|
||||
if (!hal_init_hardware(hw)) {
|
||||
err = -EINVAL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
EEPROM_region = hal_get_region_from_EEPROM( pHwData );
|
||||
if (EEPROM_region != REGION_AUTO)
|
||||
|
@ -229,21 +230,12 @@ static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
|
|||
if (hal_software_set(pHwData) & 0x00000001)
|
||||
priv->sLocalPara.boAntennaDiversity = true;
|
||||
|
||||
//
|
||||
// For TS module
|
||||
//
|
||||
InitStep = 2;
|
||||
|
||||
// For MDS module
|
||||
InitStep = 3;
|
||||
Mds_initial(priv);
|
||||
|
||||
//=======================================
|
||||
// Initialize the SME, SCAN, MLME, ROAM
|
||||
//=======================================
|
||||
InitStep = 4;
|
||||
InitStep = 5;
|
||||
InitStep = 6;
|
||||
|
||||
// If no user-defined address in the registry, use the addresss "burned" on the NIC instead.
|
||||
pMacAddr = priv->sLocalPara.ThisMacAddress;
|
||||
|
@ -277,19 +269,12 @@ static unsigned char wb35_hw_init(struct ieee80211_hw *hw)
|
|||
hal_driver_init_OK(pHwData) = 1; // Notify hal that the driver is ready now.
|
||||
//set a tx power for reference.....
|
||||
// sme_set_tx_power_level(priv, 12); FIXME?
|
||||
return true;
|
||||
return 0;
|
||||
|
||||
error:
|
||||
switch (InitStep) {
|
||||
case 5:
|
||||
case 4:
|
||||
case 3: Mds_Destroy( priv );
|
||||
case 2:
|
||||
case 1: hal_halt( pHwData, NULL );
|
||||
case 0: break;
|
||||
}
|
||||
hal_halt(pHwData, NULL);
|
||||
|
||||
return false;
|
||||
return err;
|
||||
}
|
||||
|
||||
static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id_table)
|
||||
|
@ -341,10 +326,9 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
|
|||
pWbUsb->IsUsb20 = 1;
|
||||
}
|
||||
|
||||
if (!wb35_hw_init(dev)) {
|
||||
err = -EINVAL;
|
||||
err = wb35_hw_init(dev);
|
||||
if (err)
|
||||
goto error_free_hw;
|
||||
}
|
||||
|
||||
SET_IEEE80211_DEV(dev, &udev->dev);
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue