The branch main has been updated by bz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=21761f2ede4ebad13e78112b9409c1f20f946781

commit 21761f2ede4ebad13e78112b9409c1f20f946781
Author:     Bjoern A. Zeeb <b...@freebsd.org>
AuthorDate: 2024-03-31 17:27:45 +0000
Commit:     Bjoern A. Zeeb <b...@freebsd.org>
CommitDate: 2024-04-15 16:19:47 +0000

    LinuxKPI: napi_schedule() requires return value, implement 
napi_is_scheduled()
    
    A newer version of iwlwifi requires a return value from napi_schedule();
    unclear if the function always should have been bool. Add the bool to test
    based on the napi_schedule_prep() result.
    
    Also add napi_is_scheduled() for rtw89.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
    Reviewed by:    emaste (previous version)
    Differential Revision:  https://reviews.freebsd.org/D44591
---
 sys/compat/linuxkpi/common/include/linux/netdevice.h | 9 ++++++++-
 sys/compat/linuxkpi/common/src/linux_netdev.c        | 8 ++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/netdevice.h 
b/sys/compat/linuxkpi/common/include/linux/netdevice.h
index 95fbf2a0f48c..3d2b309909b4 100644
--- a/sys/compat/linuxkpi/common/include/linux/netdevice.h
+++ b/sys/compat/linuxkpi/common/include/linux/netdevice.h
@@ -230,7 +230,7 @@ void linuxkpi_netif_napi_add(struct net_device *, struct 
napi_struct *,
 void linuxkpi_netif_napi_del(struct napi_struct *);
 bool linuxkpi_napi_schedule_prep(struct napi_struct *);
 void linuxkpi___napi_schedule(struct napi_struct *);
-void linuxkpi_napi_schedule(struct napi_struct *);
+bool linuxkpi_napi_schedule(struct napi_struct *);
 void linuxkpi_napi_reschedule(struct napi_struct *);
 bool linuxkpi_napi_complete_done(struct napi_struct *, int);
 bool linuxkpi_napi_complete(struct napi_struct *);
@@ -272,6 +272,13 @@ netif_napi_add_tx(struct net_device *dev, struct 
napi_struct *napi,
        netif_napi_add(dev, napi, napi_poll);
 }
 
+static inline bool
+napi_is_scheduled(struct napi_struct *napi)
+{
+
+       return (test_bit(LKPI_NAPI_FLAG_IS_SCHEDULED, &napi->state));
+}
+
 /* -------------------------------------------------------------------------- 
*/
 
 static inline void
diff --git a/sys/compat/linuxkpi/common/src/linux_netdev.c 
b/sys/compat/linuxkpi/common/src/linux_netdev.c
index 4d00dbf5c9ff..fe00e929c168 100644
--- a/sys/compat/linuxkpi/common/src/linux_netdev.c
+++ b/sys/compat/linuxkpi/common/src/linux_netdev.c
@@ -184,7 +184,7 @@ linuxkpi___napi_schedule(struct napi_struct *napi)
        }
 }
 
-void
+bool
 linuxkpi_napi_schedule(struct napi_struct *napi)
 {
 
@@ -194,8 +194,12 @@ linuxkpi_napi_schedule(struct napi_struct *napi)
         * iwlwifi calls this sequence instead of napi_schedule()
         * to be able to test the prep result.
         */
-       if (napi_schedule_prep(napi))
+       if (napi_schedule_prep(napi)) {
                __napi_schedule(napi);
+               return (true);
+       }
+
+       return (false);
 }
 
 void

Reply via email to