Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a1c9895 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: gadget: qc_rndis: Properly handle rndis_ipa_init failure"

parents d5a9fc2f e2ec1e39
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -1240,25 +1240,25 @@ rndis_qc_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],

	_rndis_qc = rndis;

	status = usb_add_function(c, &rndis->port.func);
	if (rndis->xport == USB_GADGET_XPORT_BAM2BAM_IPA) {
		status = rndis_ipa_init(&rndis_ipa_params);
		if (status) {
		kfree(rndis);
			pr_err("%s: failed to init rndis_ipa\n", __func__);
			goto fail;
		}
	}

	if (rndis->xport != USB_GADGET_XPORT_BAM2BAM_IPA)
		return status;

	status = rndis_ipa_init(&rndis_ipa_params);
	status = usb_add_function(c, &rndis->port.func);
	if (status) {
		pr_err("%s: failed to initialize rndis_ipa\n", __func__);
		kfree(rndis);
		if (rndis->xport == USB_GADGET_XPORT_BAM2BAM_IPA)
			rndis_ipa_cleanup(rndis_ipa_params.private);
		goto fail;
	} else {
		pr_debug("%s: rndis_ipa successful created\n", __func__);
		return status;
	}

	return 0;

fail:
	kfree(rndis);
	_rndis_qc = NULL;
	rndis_exit();
	return status;