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

Commit dbc34e73 authored by David S. Miller's avatar David S. Miller
Browse files

Revert "ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context"



This reverts commit 8d7533e5.

It introduced kbuild failures, new version coming.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4c96f5b1
Loading
Loading
Loading
Loading
+11 −24
Original line number Diff line number Diff line
@@ -3232,27 +3232,6 @@ static void ibmvnic_free_inflight(struct ibmvnic_adapter *adapter)
	spin_unlock_irqrestore(&adapter->inflight_lock, flags);
}

static void ibmvnic_xport_event(struct work_struct *work)
{
	struct ibmvnic_adapter *adapter = container_of(work,
						       struct ibmvnic_adapter,
						       ibmvnic_xport);
	struct device *dev = &adapter->vdev->dev;
	int rc;

	ibmvnic_free_inflight(adapter);
	release_sub_crqs(adapter);
	if (adapter->migrated) {
		rc = ibmvnic_reenable_crq_queue(adapter);
		if (rc)
			dev_err(dev, "Error after enable rc=%ld\n", rc);
		adapter->migrated = false;
		rc = ibmvnic_send_crq_init(adapter);
		if (rc)
			dev_err(dev, "Error sending init rc=%ld\n", rc);
	}
}

static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
			       struct ibmvnic_adapter *adapter)
{
@@ -3288,7 +3267,15 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
		if (gen_crq->cmd == IBMVNIC_PARTITION_MIGRATED) {
			dev_info(dev, "Re-enabling adapter\n");
			adapter->migrated = true;
			schedule_work(&adapter->ibmvnic_xport);
			ibmvnic_free_inflight(adapter);
			release_sub_crqs(adapter);
			rc = ibmvnic_reenable_crq_queue(adapter);
			if (rc)
				dev_err(dev, "Error after enable rc=%ld\n", rc);
			adapter->migrated = false;
			rc = ibmvnic_send_crq_init(adapter);
			if (rc)
				dev_err(dev, "Error sending init rc=%ld\n", rc);
		} else if (gen_crq->cmd == IBMVNIC_DEVICE_FAILOVER) {
			dev_info(dev, "Backing device failover detected\n");
			netif_carrier_off(netdev);
@@ -3297,7 +3284,8 @@ static void ibmvnic_handle_crq(union ibmvnic_crq *crq,
			/* The adapter lost the connection */
			dev_err(dev, "Virtual Adapter failed (rc=%d)\n",
				gen_crq->cmd);
			schedule_work(&adapter->ibmvnic_xport);
			ibmvnic_free_inflight(adapter);
			release_sub_crqs(adapter);
		}
		return;
	case IBMVNIC_CRQ_CMD_RSP:
@@ -3738,7 +3726,6 @@ static int ibmvnic_probe(struct vio_dev *dev, const struct vio_device_id *id)
	SET_NETDEV_DEV(netdev, &dev->dev);

	INIT_WORK(&adapter->vnic_crq_init, handle_crq_init_rsp);
	INIT_WORK(&adapter->ibmvnic_xport, ibmvnic_xport_event);

	spin_lock_init(&adapter->stats_lock);

+0 −1
Original line number Diff line number Diff line
@@ -1048,6 +1048,5 @@ struct ibmvnic_adapter {
	u8 map_id;

	struct work_struct vnic_crq_init;
	struct work_struct ibmvnic_xport;
	bool failover;
};