Commit 56f77227 authored by Govindarajulu Varadarajan's avatar Govindarajulu Varadarajan Committed by David S. Miller
Browse files

enic: do not overwrite error code



In failure path, we overwrite err to what vnic_rq_disable() returns. In
case it returns 0, enic_open() returns success in case of error.

Reported-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
Fixes: e8588e26 ("enic: enable rq before updating rq descriptors")
Signed-off-by: default avatarGovindarajulu Varadarajan <gvaradar@cisco.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8c43bd17
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -1920,7 +1920,7 @@ static int enic_open(struct net_device *netdev)
{
	struct enic *enic = netdev_priv(netdev);
	unsigned int i;
	int err;
	int err, ret;

	err = enic_request_intr(enic);
	if (err) {
@@ -1977,9 +1977,8 @@ static int enic_open(struct net_device *netdev)

err_out_free_rq:
	for (i = 0; i < enic->rq_count; i++) {
		err = vnic_rq_disable(&enic->rq[i]);
		if (err)
			return err;
		ret = vnic_rq_disable(&enic->rq[i]);
		if (!ret)
			vnic_rq_clean(&enic->rq[i], enic_free_rq_buf);
	}
	enic_dev_notify_unset(enic);