Revert "ibmvnic: Fix releasing of sub-CRQ IRQs in interrupt context"
This reverts commit 8d7533e5aa.
It introduced kbuild failures, new version coming.
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									4c96f5b19c
								
							
						
					
					
						commit
						dbc34e73c2
					
				| @ -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); | ||||
| 
 | ||||
|  | ||||
| @ -1048,6 +1048,5 @@ struct ibmvnic_adapter { | ||||
| 	u8 map_id; | ||||
| 
 | ||||
| 	struct work_struct vnic_crq_init; | ||||
| 	struct work_struct ibmvnic_xport; | ||||
| 	bool failover; | ||||
| }; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user