Commit 6a812157 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by John W. Linville
Browse files

[PATCH] libertas: fix error handling of card initialization



Subject says it all.

Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 51d84f50
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -198,10 +198,10 @@ static int if_usb_probe(struct usb_interface *intf,
		goto dealloc;

	if (wlan_add_mesh(priv))
		goto dealloc;
		goto err_add_mesh;

	if (libertas_activate_card(priv))
		goto dealloc;
		goto err_activate_card;

	if (libertas_found < MAX_DEVS) {
		libertas_devs[libertas_found] = priv->wlan_dev.netdev;
@@ -218,6 +218,12 @@ static int if_usb_probe(struct usb_interface *intf,
	 */
	return 0;

err_activate_card:
	unregister_netdev(priv->mesh_dev);
	free_netdev(priv->mesh_dev);
err_add_mesh:
	free_netdev(priv->wlan_dev.netdev);
	kfree(priv->adapter);
dealloc:
	if_usb_free(usb_cardp);

+1 −0
Original line number Diff line number Diff line
@@ -823,6 +823,7 @@ wlan_private *wlan_add_card(void *card)

err_kzalloc:
	free_netdev(dev);
	priv = NULL;
done:
	lbs_deb_leave_args(LBS_DEB_NET, "priv %p", priv);
	return priv;