| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/08/18 04:40 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The patch modifies the Marvell OcteonTX2 network driver, which requires physical PCIe hardware not emulated in standard QEMU. Therefore, the code is unreachable in virtualized fuzzing environments.",
"WorthFuzzing": false
} |
| 1/1 | 2026/08/18 04:40 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 3450e0846ffb5ad592e65a15b9c121c8624a7392\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Tue Aug 18 04:40:18 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h\nindex 714e47f68d932..96e1b93f81223 100644\n--- a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h\n+++ b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h\n@@ -427,7 +427,8 @@ M(MCS_CUSTOM_TAG_CFG_GET, 0xa021, mcs_custom_tag_cfg_get,\t\t\t\\\n \n /* Messages initiated by AF (range 0xC00 - 0xEFF) */\n #define MBOX_UP_CGX_MESSAGES\t\t\t\t\t\t\\\n-M(CGX_LINK_EVENT,\t0xC00, cgx_link_event, cgx_link_info_msg, msg_rsp)\n+M(CGX_LINK_EVENT,\t0xC00, cgx_link_event, cgx_link_info_msg, msg_rsp) \\\n+M(CGX_PTP_RX_INFO,\t0xC01, cgx_ptp_rx_info,\tcgx_ptp_rx_info_msg, msg_rsp)\n \n #define MBOX_UP_CPT_MESSAGES\t\t\t\t\t\t\\\n M(CPT_INST_LMTST,\t0xD00, cpt_inst_lmtst, cpt_inst_lmtst_req, msg_rsp)\n@@ -647,6 +648,11 @@ struct cgx_link_info_msg {\n \tstruct cgx_link_user_info link_info;\n };\n \n+struct cgx_ptp_rx_info_msg {\n+\tstruct mbox_msghdr hdr;\n+\tu8 ptp_en;\n+};\n+\n struct cgx_pause_frm_cfg {\n \tstruct mbox_msghdr hdr;\n \tu8 set;\ndiff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c\nindex 87d21889dc49e..cb95f3fb60ae7 100644\n--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c\n+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c\n@@ -820,6 +820,24 @@ int rvu_mbox_handler_cgx_promisc_disable(struct rvu *rvu, struct msg_req *req,\n \treturn 0;\n }\n \n+static void cgx_notify_up_ptp_info(struct rvu *rvu, int pf, bool enable)\n+{\n+\tstruct cgx_ptp_rx_info_msg *msg;\n+\n+\t/* Send mbox message to PF */\n+\tmsg = otx2_mbox_alloc_msg_cgx_ptp_rx_info(rvu, pf);\n+\tif (!msg) {\n+\t\tdev_err(rvu-\u003edev, \"failed to alloc message\\n\");\n+\t\treturn;\n+\t}\n+\n+\tmsg-\u003eptp_en = enable;\n+\n+\totx2_mbox_wait_for_zero(\u0026rvu-\u003eafpf_wq_info.mbox_up, pf);\n+\n+\totx2_mbox_msg_send_up(\u0026rvu-\u003eafpf_wq_info.mbox_up, pf);\n+}\n+\n static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)\n {\n \tstruct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc);\n@@ -837,6 +855,8 @@ static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)\n \tif (!is_pf_cgxmapped(rvu, pf))\n \t\treturn -EPERM;\n \n+\tcgx_notify_up_ptp_info(rvu, pf, enable);\n+\n \trvu_get_cgx_lmac_id(rvu-\u003epf2cgxlmac_map[pf], \u0026cgx_id, \u0026lmac_id);\n \tcgxd = rvu_cgx_pdata(cgx_id, rvu);\n \ndiff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h\nindex eecee612b7b2c..13b54287facf7 100644\n--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h\n+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h\n@@ -286,6 +286,7 @@ enum vfperm {\n struct otx2_vf_config {\n \tstruct otx2_nic *pf;\n \tstruct delayed_work link_event_work;\n+\tstruct delayed_work ptp_info_work;\n \tbool intf_down; /* interface was either configured or not */\n \tu8 mac[ETH_ALEN];\n \tu16 vlan;\n@@ -324,6 +325,7 @@ struct otx2_ptp {\n \tu64 thresh;\n \n \tstruct ptp_pin_desc extts_config;\n+\tbool ptp_en;\n \tu64 (*convert_rx_ptp_tstmp)(u64 timestamp);\n \tu64 (*convert_tx_ptp_tstmp)(u64 timestamp);\n \tu64 (*ptp_tstamp2nsec)(const struct timecounter *time_counter, u64 timestamp);\ndiff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c\nindex c995f29008590..8e2443041ee8b 100644\n--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c\n+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c\n@@ -44,6 +44,7 @@ MODULE_LICENSE(\"GPL v2\");\n MODULE_DEVICE_TABLE(pci, otx2_pf_id_table);\n \n static void otx2_vf_link_event_task(struct work_struct *work);\n+static void otx2_vf_ptp_info_task(struct work_struct *work);\n \n enum {\n \tTYPE_PFAF,\n@@ -960,6 +961,30 @@ int otx2_mbox_up_handler_cgx_link_event(struct otx2_nic *pf,\n \treturn 0;\n }\n \n+int otx2_mbox_up_handler_cgx_ptp_rx_info(struct otx2_nic *pf,\n+\t\t\t\t\t struct cgx_ptp_rx_info_msg *msg,\n+\t\t\t\t\t struct msg_rsp *rsp)\n+{\n+\tint i;\n+\n+\tif (!pf-\u003eptp)\n+\t\treturn 0;\n+\n+\tpf-\u003eptp-\u003eptp_en = msg-\u003eptp_en;\n+\n+\t/* notify VFs about ptp event */\n+\tfor (i = 0; i \u003c pci_num_vf(pf-\u003epdev); i++) {\n+\t\tstruct otx2_vf_config *config = \u0026pf-\u003evf_configs[i];\n+\t\tstruct delayed_work *dwork = \u0026config-\u003eptp_info_work;\n+\n+\t\tif (config-\u003eintf_down)\n+\t\t\tcontinue;\n+\n+\t\tschedule_delayed_work(dwork, msecs_to_jiffies(100));\n+\t}\n+\treturn 0;\n+}\n+\n static int otx2_process_mbox_msg_up(struct otx2_nic *pf,\n \t\t\t\t struct mbox_msghdr *req)\n {\n@@ -3041,6 +3066,8 @@ static int otx2_sriov_vfcfg_init(struct otx2_nic *pf)\n \t\tpf-\u003evf_configs[i].trusted = false;\n \t\tINIT_DELAYED_WORK(\u0026pf-\u003evf_configs[i].link_event_work,\n \t\t\t\t otx2_vf_link_event_task);\n+\t\tINIT_DELAYED_WORK(\u0026pf-\u003evf_configs[i].ptp_info_work,\n+\t\t\t\t otx2_vf_ptp_info_task);\n \t}\n \n \treturn 0;\n@@ -3055,6 +3082,7 @@ static void otx2_sriov_vfcfg_cleanup(struct otx2_nic *pf)\n \n \tfor (i = 0; i \u003c pf-\u003etotal_vfs; i++) {\n \t\tcancel_delayed_work_sync(\u0026pf-\u003evf_configs[i].link_event_work);\n+\t\tcancel_delayed_work_sync(\u0026pf-\u003evf_configs[i].ptp_info_work);\n \t\totx2_set_vf_permissions(pf, i, OTX2_RESET_VF_PERM);\n \t}\n }\n@@ -3417,6 +3445,37 @@ static void otx2_vf_link_event_task(struct work_struct *work)\n \tmutex_unlock(\u0026pf-\u003embox.lock);\n }\n \n+static void otx2_vf_ptp_info_task(struct work_struct *work)\n+{\n+\tstruct cgx_ptp_rx_info_msg *req;\n+\tstruct otx2_vf_config *config;\n+\tstruct mbox_msghdr *msghdr;\n+\tstruct otx2_nic *pf;\n+\tint vf_idx;\n+\n+\tconfig = container_of(work, struct otx2_vf_config,\n+\t\t\t ptp_info_work.work);\n+\tvf_idx = config - config-\u003epf-\u003evf_configs;\n+\tpf = config-\u003epf;\n+\n+\tif (config-\u003eintf_down || !pf-\u003eptp)\n+\t\treturn;\n+\n+\tmsghdr = otx2_mbox_alloc_msg_rsp(\u0026pf-\u003embox_pfvf[0].mbox_up, vf_idx,\n+\t\t\t\t\t sizeof(*req), sizeof(struct msg_rsp));\n+\tif (!msghdr) {\n+\t\tdev_err(pf-\u003edev, \"Failed to create VF%d ptp info event\\n\", vf_idx);\n+\t\treturn;\n+\t}\n+\n+\treq = (struct cgx_ptp_rx_info_msg *)msghdr;\n+\treq-\u003ehdr.id = MBOX_MSG_CGX_PTP_RX_INFO;\n+\treq-\u003ehdr.sig = OTX2_MBOX_REQ_SIG;\n+\treq-\u003eptp_en = pf-\u003eptp-\u003eptp_en;\n+\n+\totx2_sync_mbox_up_msg(\u0026pf-\u003embox_pfvf[0], vf_idx);\n+}\n+\n static int otx2_sriov_enable(struct pci_dev *pdev, int numvfs)\n {\n \tstruct net_device *netdev = pci_get_drvdata(pdev);\ndiff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c\nindex b022f52c68450..60f81062007b2 100644\n--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c\n+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c\n@@ -141,6 +141,20 @@ static int otx2vf_process_mbox_msg_up(struct otx2_nic *vf,\n \t\terr = otx2_mbox_up_handler_cgx_link_event(\n \t\t\t\tvf, (struct cgx_link_info_msg *)req, rsp);\n \t\treturn err;\n+\tcase MBOX_MSG_CGX_PTP_RX_INFO:\n+\t\trsp = (struct msg_rsp *)otx2_mbox_alloc_msg(\u0026vf-\u003embox.mbox_up,\n+\t\t\t\t\t\t0, sizeof(struct msg_rsp));\n+\t\tif (!rsp)\n+\t\t\treturn -ENOMEM;\n+\n+\t\trsp-\u003ehdr.id = MBOX_MSG_CGX_PTP_RX_INFO;\n+\t\trsp-\u003ehdr.sig = OTX2_MBOX_RSP_SIG;\n+\t\trsp-\u003ehdr.pcifunc = req-\u003epcifunc;\n+\t\trsp-\u003ehdr.rc = 0;\n+\t\terr = otx2_mbox_up_handler_cgx_ptp_rx_info(vf,\n+\t\t\t\t\t\t\t (struct cgx_ptp_rx_info_msg *)req,\n+\t\t\t\t\t\t\t rsp);\n+\t\treturn err;\n \tdefault:\n \t\totx2_reply_invalid_msg(\u0026vf-\u003embox.mbox_up, 0, 0, req-\u003eid);\n \t\treturn -ENODEV;\n"
} |
| 2/1 | 2026/08/18 04:40 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies the Marvell OcteonTX2 network driver, which requires physical PCIe hardware not emulated in standard QEMU. Therefore, the code is unreachable in virtualized fuzzing environments.",
"WorthFuzzing": false
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). - Code in vendor-specific PCIe switch, SmartNIC, or GPU drivers (e.g., mlxsw, pds_core, qed, ionic, amdgpu) that require physical PCIe hardware cards not emulated in standard QEMU. - Driver .remove, .shutdown, or pci_unregister_driver teardown callbacks (e.g., igb_remove) that are executed only during PCI hot-unplug or sysfs driver unbind operations. If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. Prefer non-static, non-inlined API entrypoint functions over internal static helper functions (which are inlined by the compiler and do not have distinct symbol addresses). 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Also check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed for Kbuild to compile the code statically into vmlinux. List them in the EnableConfigs output array, and DO NOT add a 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4"). Prefer calling several tools at the same time to save round-trips. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt: For your convenience, here is the diff of the changes:
commit 3450e0846ffb5ad592e65a15b9c121c8624a7392
Author: syz-cluster <triage@syzkaller.com>
Date: Tue Aug 18 04:40:18 2026 +0000
syz-cluster: applied patch under review
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
index 714e47f68d932..96e1b93f81223 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
+++ b/drivers/net/ethernet/marvell/octeontx2/af/mbox.h
@@ -427,7 +427,8 @@ M(MCS_CUSTOM_TAG_CFG_GET, 0xa021, mcs_custom_tag_cfg_get, \
/* Messages initiated by AF (range 0xC00 - 0xEFF) */
#define MBOX_UP_CGX_MESSAGES \
-M(CGX_LINK_EVENT, 0xC00, cgx_link_event, cgx_link_info_msg, msg_rsp)
+M(CGX_LINK_EVENT, 0xC00, cgx_link_event, cgx_link_info_msg, msg_rsp) \
+M(CGX_PTP_RX_INFO, 0xC01, cgx_ptp_rx_info, cgx_ptp_rx_info_msg, msg_rsp)
#define MBOX_UP_CPT_MESSAGES \
M(CPT_INST_LMTST, 0xD00, cpt_inst_lmtst, cpt_inst_lmtst_req, msg_rsp)
@@ -647,6 +648,11 @@ struct cgx_link_info_msg {
struct cgx_link_user_info link_info;
};
+struct cgx_ptp_rx_info_msg {
+ struct mbox_msghdr hdr;
+ u8 ptp_en;
+};
+
struct cgx_pause_frm_cfg {
struct mbox_msghdr hdr;
u8 set;
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
index 87d21889dc49e..cb95f3fb60ae7 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c
@@ -820,6 +820,24 @@ int rvu_mbox_handler_cgx_promisc_disable(struct rvu *rvu, struct msg_req *req,
return 0;
}
+static void cgx_notify_up_ptp_info(struct rvu *rvu, int pf, bool enable)
+{
+ struct cgx_ptp_rx_info_msg *msg;
+
+ /* Send mbox message to PF */
+ msg = otx2_mbox_alloc_msg_cgx_ptp_rx_info(rvu, pf);
+ if (!msg) {
+ dev_err(rvu->dev, "failed to alloc message\n");
+ return;
+ }
+
+ msg->ptp_en = enable;
+
+ otx2_mbox_wait_for_zero(&rvu->afpf_wq_info.mbox_up, pf);
+
+ otx2_mbox_msg_send_up(&rvu->afpf_wq_info.mbox_up, pf);
+}
+
static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)
{
struct rvu_pfvf *pfvf = rvu_get_pfvf(rvu, pcifunc);
@@ -837,6 +855,8 @@ static int rvu_cgx_ptp_rx_cfg(struct rvu *rvu, u16 pcifunc, bool enable)
if (!is_pf_cgxmapped(rvu, pf))
return -EPERM;
+ cgx_notify_up_ptp_info(rvu, pf, enable);
+
rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id);
cgxd = rvu_cgx_pdata(cgx_id, rvu);
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
index eecee612b7b2c..13b54287facf7 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
@@ -286,6 +286,7 @@ enum vfperm {
struct otx2_vf_config {
struct otx2_nic *pf;
struct delayed_work link_event_work;
+ struct delayed_work ptp_info_work;
bool intf_down; /* interface was either configured or not */
u8 mac[ETH_ALEN];
u16 vlan;
@@ -324,6 +325,7 @@ struct otx2_ptp {
u64 thresh;
struct ptp_pin_desc extts_config;
+ bool ptp_en;
u64 (*convert_rx_ptp_tstmp)(u64 timestamp);
u64 (*convert_tx_ptp_tstmp)(u64 timestamp);
u64 (*ptp_tstamp2nsec)(const struct timecounter *time_counter, u64 timestamp);
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
index c995f29008590..8e2443041ee8b 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
@@ -44,6 +44,7 @@ MODULE_LICENSE("GPL v2");
MODULE_DEVICE_TABLE(pci, otx2_pf_id_table);
static void otx2_vf_link_event_task(struct work_struct *work);
+static void otx2_vf_ptp_info_task(struct work_struct *work);
enum {
TYPE_PFAF,
@@ -960,6 +961,30 @@ int otx2_mbox_up_handler_cgx_link_event(struct otx2_nic *pf,
return 0;
}
+int otx2_mbox_up_handler_cgx_ptp_rx_info(struct otx2_nic *pf,
+ struct cgx_ptp_rx_info_msg *msg,
+ struct msg_rsp *rsp)
+{
+ int i;
+
+ if (!pf->ptp)
+ return 0;
+
+ pf->ptp->ptp_en = msg->ptp_en;
+
+ /* notify VFs about ptp event */
+ for (i = 0; i < pci_num_vf(pf->pdev); i++) {
+ struct otx2_vf_config *config = &pf->vf_configs[i];
+ struct delayed_work *dwork = &config->ptp_info_work;
+
+ if (config->intf_down)
+ continue;
+
+ schedule_delayed_work(dwork, msecs_to_jiffies(100));
+ }
+ return 0;
+}
+
static int otx2_process_mbox_msg_up(struct otx2_nic *pf,
struct mbox_msghdr *req)
{
@@ -3041,6 +3066,8 @@ static int otx2_sriov_vfcfg_init(struct otx2_nic *pf)
pf->vf_configs[i].trusted = false;
INIT_DELAYED_WORK(&pf->vf_configs[i].link_event_work,
otx2_vf_link_event_task);
+ INIT_DELAYED_WORK(&pf->vf_configs[i].ptp_info_work,
+ otx2_vf_ptp_info_task);
}
return 0;
@@ -3055,6 +3082,7 @@ static void otx2_sriov_vfcfg_cleanup(struct otx2_nic *pf)
for (i = 0; i < pf->total_vfs; i++) {
cancel_delayed_work_sync(&pf->vf_configs[i].link_event_work);
+ cancel_delayed_work_sync(&pf->vf_configs[i].ptp_info_work);
otx2_set_vf_permissions(pf, i, OTX2_RESET_VF_PERM);
}
}
@@ -3417,6 +3445,37 @@ static void otx2_vf_link_event_task(struct work_struct *work)
mutex_unlock(&pf->mbox.lock);
}
+static void otx2_vf_ptp_info_task(struct work_struct *work)
+{
+ struct cgx_ptp_rx_info_msg *req;
+ struct otx2_vf_config *config;
+ struct mbox_msghdr *msghdr;
+ struct otx2_nic *pf;
+ int vf_idx;
+
+ config = container_of(work, struct otx2_vf_config,
+ ptp_info_work.work);
+ vf_idx = config - config->pf->vf_configs;
+ pf = config->pf;
+
+ if (config->intf_down || !pf->ptp)
+ return;
+
+ msghdr = otx2_mbox_alloc_msg_rsp(&pf->mbox_pfvf[0].mbox_up, vf_idx,
+ sizeof(*req), sizeof(struct msg_rsp));
+ if (!msghdr) {
+ dev_err(pf->dev, "Failed to create VF%d ptp info event\n", vf_idx);
+ return;
+ }
+
+ req = (struct cgx_ptp_rx_info_msg *)msghdr;
+ req->hdr.id = MBOX_MSG_CGX_PTP_RX_INFO;
+ req->hdr.sig = OTX2_MBOX_REQ_SIG;
+ req->ptp_en = pf->ptp->ptp_en;
+
+ otx2_sync_mbox_up_msg(&pf->mbox_pfvf[0], vf_idx);
+}
+
static int otx2_sriov_enable(struct pci_dev *pdev, int numvfs)
{
struct net_device *netdev = pci_get_drvdata(pdev);
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
index b022f52c68450..60f81062007b2 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c
@@ -141,6 +141,20 @@ static int otx2vf_process_mbox_msg_up(struct otx2_nic *vf,
err = otx2_mbox_up_handler_cgx_link_event(
vf, (struct cgx_link_info_msg *)req, rsp);
return err;
+ case MBOX_MSG_CGX_PTP_RX_INFO:
+ rsp = (struct msg_rsp *)otx2_mbox_alloc_msg(&vf->mbox.mbox_up,
+ 0, sizeof(struct msg_rsp));
+ if (!rsp)
+ return -ENOMEM;
+
+ rsp->hdr.id = MBOX_MSG_CGX_PTP_RX_INFO;
+ rsp->hdr.sig = OTX2_MBOX_RSP_SIG;
+ rsp->hdr.pcifunc = req->pcifunc;
+ rsp->hdr.rc = 0;
+ err = otx2_mbox_up_handler_cgx_ptp_rx_info(vf,
+ (struct cgx_ptp_rx_info_msg *)req,
+ rsp);
+ return err;
default:
otx2_reply_invalid_msg(&vf->mbox.mbox_up, 0, 0, req->id);
return -ENODEV;
|
| 3/2 | 2026/08/18 04:40 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5245 output: 72 thoughts: 583 Thoughts: **My Assessment of the Patch's Fuzzing Potential** Okay, let's break this down. I've got a patch that introduces a new mailbox message, `CGX_PTP_RX_INFO`, within the Marvell OcteonTX2 network driver. The code's spread across `rvu_cgx.c`, `otx2_pf.c`, and `otx2_vf.c`. It's pretty clear this is a hardware-specific driver designed for Marvell's OcteonTX2 NICs. Now, the instructions are clear: if the patch's changes are limited to vendor-specific drivers that need *physical* PCIe hardware not emulated in standard QEMU, then it's not worth fuzzing, and we should return `WorthFuzzing=false`. The OcteonTX2 definitely fits that description. It's a vendor-specific SmartNIC driver, and my understanding is that it relies on specific Marvell hardware or, at best, a non-standard Marvell-specific emulation environment that isn't replicated in something like a standard QEMU setup. I've double-checked, and there's no way to reliably run and test this code in the usual virtualized environments we use for fuzzing, like GCE or vanilla QEMU. It's simply unreachable. To confirm my understanding, I checked the path again: `drivers/net/ethernet/marvell/octeontx2/`. Yep, it's a specific Ethernet driver. No generic code is touched. I confirmed this by checking the modified files: `af/mbox.h`, `af/rvu_cgx.c`, `nic/otx2_common.h`, `nic/otx2_pf.c`, and `nic/otx2_vf.c`. All those files are in the `marvell/octeontx2` directory. Therefore, the reasoning is straightforward: this patch modifies OcteonTX2 code that needs physical PCIe hardware not available in standard fuzzing environments. So, the result is `WorthFuzzing: false`. `FocusSymbols` and `EnableConfigs` will be empty. I'll use `set-results` to record this assessment. |
| 4/2 | 2026/08/18 04:40 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch modifies the Marvell OcteonTX2 network driver, which requires physical PCIe hardware not emulated in standard QEMU. Therefore, the code is unreachable in virtualized fuzzing environments.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies the Marvell OcteonTX2 network driver, which requires physical PCIe hardware not emulated in standard QEMU. Therefore, the code is unreachable in virtualized fuzzing environments.",
"WorthFuzzing": false
} |
| 5/1 | 2026/08/18 04:40 | action | If |
0mArgs:{
"WorthFuzzing": false
}Results: null |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|