diff options
Diffstat (limited to 'drivers/net/usb/hso.c')
| -rw-r--r-- | drivers/net/usb/hso.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 1164c52e2c0..8e90891f0e4 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -2184,19 +2184,20 @@ static void hso_create_rfkill(struct hso_device *hso_dev,  			     struct usb_interface *interface)  {  	struct hso_net *hso_net = dev2net(hso_dev); -	struct device *dev = hso_dev->dev; +	struct device *dev = &hso_net->net->dev;  	char *rfkn;  	hso_net->rfkill = rfkill_allocate(&interface_to_usbdev(interface)->dev, -				 RFKILL_TYPE_WLAN); +				 RFKILL_TYPE_WWAN);  	if (!hso_net->rfkill) { -		dev_err(dev, "%s - Out of memory", __func__); +		dev_err(dev, "%s - Out of memory\n", __func__);  		return;  	}  	rfkn = kzalloc(20, GFP_KERNEL);  	if (!rfkn) {  		rfkill_free(hso_net->rfkill); -		dev_err(dev, "%s - Out of memory", __func__); +		hso_net->rfkill = NULL; +		dev_err(dev, "%s - Out of memory\n", __func__);  		return;  	}  	snprintf(rfkn, 20, "hso-%d", @@ -2209,7 +2210,8 @@ static void hso_create_rfkill(struct hso_device *hso_dev,  		kfree(rfkn);  		hso_net->rfkill->name = NULL;  		rfkill_free(hso_net->rfkill); -		dev_err(dev, "%s - Failed to register rfkill", __func__); +		hso_net->rfkill = NULL; +		dev_err(dev, "%s - Failed to register rfkill\n", __func__);  		return;  	}  }  |