Merge "mhi: device: netdev: Add flag to track napi scheduling"

This commit is contained in:
qctecmdr 2020-04-26 02:46:24 -07:00 • committed by Gerrit - the friendly Code Review server
commit de6c9b76af

View file

@ -111,6 +111,7 @@ struct mhi_netdev {
/* debug stats */
u32 abuffers, kbuffers, rbuffers;
bool napi_scheduled;
};
struct mhi_netdev_priv {
@ -451,6 +452,7 @@ static int mhi_netdev_alloc_thread(void *data)
/* replenish the ring */
napi_schedule(mhi_netdev->napi);
mhi_netdev->napi_scheduled = true;
/* wait for buffers to run low or thread to stop */
wait_event_interruptible(mhi_netdev->alloc_event,
@ -490,6 +492,7 @@ static int mhi_netdev_poll(struct napi_struct *napi, int budget)
if (rx_work < 0) {
MSG_ERR("Error polling ret:%d\n", rx_work);
napi_complete(napi);
mhi_netdev->napi_scheduled = false;
return 0;
}
@ -500,8 +503,10 @@ static int mhi_netdev_poll(struct napi_struct *napi, int budget)
mhi_netdev_queue(mhi_netdev, rsc_dev->mhi_dev);
/* complete work if # of packet processed less than allocated budget */
if (rx_work < budget)
if (rx_work < budget) {
napi_complete(napi);
mhi_netdev->napi_scheduled = false;
}
MSG_VERB("polled %d pkts\n", rx_work);
@ -837,6 +842,7 @@ static void mhi_netdev_status_cb(struct mhi_device *mhi_dev, enum MHI_CB mhi_cb)
return;
napi_schedule(mhi_netdev->napi);
mhi_netdev->napi_scheduled = true;
}
#ifdef CONFIG_DEBUG_FS
@ -1101,6 +1107,7 @@ static int mhi_netdev_probe(struct mhi_device *mhi_dev,
* by triggering a napi_poll
*/
napi_schedule(mhi_netdev->napi);
mhi_netdev->napi_scheduled = true;
return 0;
}