mirror of
https://github.com/qosmio/nss-packages.git
synced 2025-12-16 16:21:53 +00:00
58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
--- a/nss_hal/nss_hal.c
|
|
+++ b/nss_hal/nss_hal.c
|
|
@@ -302,6 +302,8 @@ int nss_hal_probe(struct platform_device
|
|
* Initialize the dummy netdevice.
|
|
*/
|
|
init_dummy_netdev(&nss_ctx->napi_ndev);
|
|
+ strcpy(nss_ctx->napi_ndev.name, "nss");
|
|
+ nss_ctx->napi_ndev.threaded = 1;
|
|
|
|
for (i = 0; i < npd->num_irq; i++) {
|
|
err = nss_hal_register_irq(nss_ctx, npd, &nss_ctx->napi_ndev, i);
|
|
--- a/nss_core.c
|
|
+++ b/nss_core.c
|
|
@@ -2423,8 +2423,7 @@ int nss_core_handle_napi(struct napi_str
|
|
int_ctx->cause |= int_cause;
|
|
} while ((int_ctx->cause) && (budget));
|
|
|
|
- if (int_ctx->cause == 0) {
|
|
- napi_complete(napi);
|
|
+ if (int_ctx->cause == 0 && napi_complete(napi)) {
|
|
|
|
/*
|
|
* Re-enable any further interrupt from this IRQ
|
|
@@ -2464,8 +2463,8 @@ int nss_core_handle_napi_sdma(struct nap
|
|
ctrl->consumer[0].dispatch.fp(ctrl->consumer[0].arg.kp);
|
|
|
|
#if !defined(NSS_HAL_IPQ806X_SUPPORT)
|
|
- napi_complete(napi);
|
|
- enable_irq(int_ctx->irq);
|
|
+ if (napi_complete(napi))
|
|
+ enable_irq(int_ctx->irq);
|
|
#endif
|
|
return 0;
|
|
}
|
|
@@ -2480,10 +2479,8 @@ int nss_core_handle_napi_queue(struct na
|
|
struct int_ctx_instance *int_ctx = container_of(napi, struct int_ctx_instance, napi);
|
|
|
|
processed = nss_core_handle_cause_queue(int_ctx, int_ctx->cause, budget);
|
|
- if (processed < budget) {
|
|
- napi_complete(napi);
|
|
+ if (processed < budget && napi_complete(napi))
|
|
enable_irq(int_ctx->irq);
|
|
- }
|
|
|
|
return processed;
|
|
}
|
|
@@ -2497,8 +2494,8 @@ int nss_core_handle_napi_non_queue(struc
|
|
struct int_ctx_instance *int_ctx = container_of(napi, struct int_ctx_instance, napi);
|
|
|
|
nss_core_handle_cause_nonqueue(int_ctx, int_ctx->cause, 0);
|
|
- napi_complete(napi);
|
|
- enable_irq(int_ctx->irq);
|
|
+ if (napi_complete(napi))
|
|
+ enable_irq(int_ctx->irq);
|
|
return 0;
|
|
}
|
|
|