Missing files
This commit is contained in:
@@ -1,14 +1,28 @@
|
|||||||
From 919ea304abf495a7142639e51555508fa1b23a30 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: test <test@example.com>
|
From: builder <builder@localhost>
|
||||||
Date: Sat, 9 May 2026 16:59:28 +0000
|
Date: Sun, 10 May 2026 00:00:00 +0000
|
||||||
Subject: [PATCH 2/2] cdx: do not fail module init for absent optional offloads
|
Subject: [PATCH] cdx: keep optional offload init failures non-fatal
|
||||||
|
|
||||||
|
The CDX module currently treats several board-specific acceleration paths as
|
||||||
|
mandatory. On boards without VWD/WiFi OH ports, fragmentation BMan pools, or
|
||||||
|
DPA IPsec OH ports, module init either fails or can crash before returning an
|
||||||
|
error.
|
||||||
|
|
||||||
|
Keep the CDX core loadable when those optional resources are absent:
|
||||||
|
|
||||||
|
- warn and continue when VWD/WiFi init fails;
|
||||||
|
- skip the vendor fragmentation module on this platform, because it can
|
||||||
|
dereference a missing BMan pool;
|
||||||
|
- warn and continue when DPA IPsec init fails;
|
||||||
|
- only initialize DPA IPsec follow-up buffer pools when IPsec init succeeds.
|
||||||
|
---
|
||||||
|
cdx/cdx_main.c | 47 +++++++++++++++++++++--------------------------
|
||||||
|
1 file changed, 21 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
diff --git a/cdx/cdx_main.c b/cdx/cdx_main.c
|
diff --git a/cdx/cdx_main.c b/cdx/cdx_main.c
|
||||||
index ec763cb..641121b 100644
|
|
||||||
--- a/cdx/cdx_main.c
|
--- a/cdx/cdx_main.c
|
||||||
+++ b/cdx/cdx_main.c
|
+++ b/cdx/cdx_main.c
|
||||||
@@ -195,16 +195,17 @@ static int __init cdx_module_init(void)
|
@@ -178,31 +178,36 @@ static int __init cdx_module_init(void)
|
||||||
#ifdef CFG_WIFI_OFFLOAD
|
#ifdef CFG_WIFI_OFFLOAD
|
||||||
rc = dpaa_vwd_init();
|
rc = dpaa_vwd_init();
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
@@ -25,15 +39,48 @@ index ec763cb..641121b 100644
|
|||||||
- rc = -EIO;
|
- rc = -EIO;
|
||||||
- goto exit;
|
- goto exit;
|
||||||
- }
|
- }
|
||||||
|
+
|
||||||
+ /*
|
+ /*
|
||||||
+ * The vendor fragmentation path assumes its BMan pool/config exists and
|
+ * The vendor fragmentation path is optional for this platform and can
|
||||||
+ * can crash in bman_free_pool() when this board profile does not provide
|
+ * dereference a missing BMan pool before returning an error. Do not let a
|
||||||
+ * it. Keep CDX usable without the optional fragmentation offload path.
|
+ * missing fragmentation pool prevent the CDX core from loading.
|
||||||
+ */
|
+ */
|
||||||
+ printk(KERN_WARNING "%s::skipping cdx_init_frag_module on this platform\n", __func__);
|
+ printk(KERN_WARNING "%s::skipping cdx_init_frag_module on this platform\n",
|
||||||
|
+ __func__);
|
||||||
|
|
||||||
#ifdef DPA_IPSEC_OFFLOAD
|
#ifdef DPA_IPSEC_OFFLOAD
|
||||||
if (cdx_dpa_ipsec_init()) {
|
- if (cdx_dpa_ipsec_init()) {
|
||||||
--
|
- printk("%s::dpa_ipsec start failed\n", __func__);
|
||||||
2.47.3
|
- goto exit;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (cdx_init_scatter_gather_bpool()) {
|
||||||
|
- printk("%s::cdx_init_scatter_gather_bpool failed\n",__func__);
|
||||||
|
- rc = -ENOMEM;
|
||||||
|
- goto exit;
|
||||||
|
- }
|
||||||
|
- if (cdx_init_skb_2bfreed_bpool()) {
|
||||||
|
- printk("%s(%d) : cdx_init_skb_2bfreed_bpool failed\n", __func__,__LINE__);
|
||||||
|
- rc = -ENOMEM;
|
||||||
|
- goto exit;
|
||||||
|
+ rc = cdx_dpa_ipsec_init();
|
||||||
|
+ if (rc) {
|
||||||
|
+ printk(KERN_WARNING "%s::dpa_ipsec start failed rc %d; continuing without DPA IPsec offload\n",
|
||||||
|
+ __func__, rc);
|
||||||
|
+ rc = 0;
|
||||||
|
+ } else {
|
||||||
|
+ if (cdx_init_scatter_gather_bpool()) {
|
||||||
|
+ printk("%s::cdx_init_scatter_gather_bpool failed\n", __func__);
|
||||||
|
+ rc = -ENOMEM;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
+ if (cdx_init_skb_2bfreed_bpool()) {
|
||||||
|
+ printk("%s(%d) : cdx_init_skb_2bfreed_bpool failed\n", __func__, __LINE__);
|
||||||
|
+ rc = -ENOMEM;
|
||||||
|
+ goto exit;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--
|
||||||
|
2.45.0
|
||||||
|
|||||||
Reference in New Issue
Block a user