-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build fails on Oracle Linux 9.4: error: implicit declaration of function ‘napi_reschedule’ #62
Comments
Getting the same build error if building from the release tarball.
|
Ah but
|
We ended up applying this patch to make it build on OL 9.4. The resulting module seems to work. 🙈 diff -Naru a/build/gve_ethtool.c b/build/gve_ethtool.c
--- a/build/gve_ethtool.c 2024-08-28 22:10:09.000000000 +0000
+++ b/build/gve_ethtool.c 2024-10-02 10:27:44.826795990 +0000
@@ -555,11 +555,6 @@
static void gve_get_ringparam(struct net_device *netdev,
struct ethtool_ringparam *cmd
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 7)
- ,
- struct kernel_ethtool_ringparam *kernel_cmd,
- struct netlink_ext_ack *extack
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 7) */
)
{
struct gve_priv *priv = netdev_priv(netdev);
@@ -628,11 +623,6 @@
static int gve_set_ringparam(struct net_device *netdev,
struct ethtool_ringparam *cmd
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 7)
- ,
- struct kernel_ethtool_ringparam *kernel_cmd,
- struct netlink_ext_ack *extack
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8, 7) */
)
{
struct gve_priv *priv = netdev_priv(netdev);
diff -Naru a/build/gve_linux_version.h b/build/gve_linux_version.h
--- a/build/gve_linux_version.h 2024-08-28 22:10:09.000000000 +0000
+++ b/build/gve_linux_version.h 2024-10-02 10:27:31.110280426 +0000
@@ -9,7 +9,7 @@
#ifndef LINUX_VERSION_CODE
#include "gve_linux_version.h"
-#include <linux/version.h>
+#include "/usr/include/linux/version.h"
#else
#define KERNEL_VERSION(a,b,c) ((((a) << 16) + (b) << 8) + (c))
#endif
diff -Naru a/build/gve_main.c b/build/gve_main.c
--- a/build/gve_main.c 2024-08-28 22:10:09.000000000 +0000
+++ b/build/gve_main.c 2024-10-02 10:27:39.370193084 +0000
@@ -21,7 +21,6 @@
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/utsname.h>
-#include <linux/version.h>
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0))
#include <net/netdev_queues.h>
#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)) */
diff -Naru a/build/gve_utils.c b/build/gve_utils.c
--- a/build/gve_utils.c 2024-08-28 22:10:09.000000000 +0000
+++ b/build/gve_utils.c 2024-10-02 10:27:49.301290392 +0000
@@ -114,11 +114,7 @@
{
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9,2) || (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8,8) && RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9,0))
- netif_napi_add(priv->dev, &block->napi, gve_poll);
-#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9,2) || (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8,8) && RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9,0)) */
netif_napi_add(priv->dev, &block->napi, gve_poll, NAPI_POLL_WEIGHT);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0) || RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(9,2) || (RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(8,8) && RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(9,0)) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)
napi_hash_add(&block->napi);
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) && LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0) */ |
Hi, is the issue getting resolved? I tried to install the v1.4.3 driver rpm package in the rhel-9 image(which is using 9.4 version too), and it works well. I wonder if there is anything different between the Oracle Linux 9.4 image with the rhel-9 image. Also we support to compile the GVE driver on all the supported images in GCP but looks like this Oracle Linux 9.4 image is not part of it?
|
The big difference with Oracle Linux is that they have a different kernel, 5.15 with some Oracle maintained patches. https://github.com/oracle/linux-uek |
The text was updated successfully, but these errors were encountered: