| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/07/22 22:23 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies the Huawei Intelligent NIC (HINIC) driver, which is a physical PCI device driver. There is no software emulation for this device in QEMU or the Linux kernel, making these code paths impossible to reach in virtualized environments like GCE or QEMU.",
"WorthFuzzing": false
} |
| 1/1 | 2026/07/22 22:23 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 865421d4dc04a5328bb013f52e52b57366969748\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Wed Jul 22 22:23:27 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/drivers/net/ethernet/huawei/hinic/hinic_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_dev.h\nindex 52ea97c818b8ec..d9ab94910a2a79 100644\n--- a/drivers/net/ethernet/huawei/hinic/hinic_dev.h\n+++ b/drivers/net/ethernet/huawei/hinic/hinic_dev.h\n@@ -104,8 +104,6 @@ struct hinic_dev {\n \tu16\t\t\t\tnum_rss;\n \tu16\t\t\t\trss_limit;\n \tstruct hinic_rss_type\t\trss_type;\n-\tu8\t\t\t\t*rss_hkey_user;\n-\ts32\t\t\t\t*rss_indir_user;\n \tstruct hinic_intr_coal_info\t*rx_intr_coalesce;\n \tstruct hinic_intr_coal_info\t*tx_intr_coalesce;\n \tstruct hinic_sriov_info sriov_info;\ndiff --git a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c\nindex a8b129ce1b7e9f..f75e8563f23aee 100644\n--- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c\n+++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c\n@@ -1064,17 +1064,6 @@ static int __set_rss_rxfh(struct net_device *netdev,\n \tint err;\n \n \tif (indir) {\n-\t\tif (!nic_dev-\u003erss_indir_user) {\n-\t\t\tnic_dev-\u003erss_indir_user =\n-\t\t\t\tkzalloc(sizeof(u32) * HINIC_RSS_INDIR_SIZE,\n-\t\t\t\t\tGFP_KERNEL);\n-\t\t\tif (!nic_dev-\u003erss_indir_user)\n-\t\t\t\treturn -ENOMEM;\n-\t\t}\n-\n-\t\tmemcpy(nic_dev-\u003erss_indir_user, indir,\n-\t\t sizeof(u32) * HINIC_RSS_INDIR_SIZE);\n-\n \t\terr = hinic_rss_set_indir_tbl(nic_dev,\n \t\t\t\t\t nic_dev-\u003erss_tmpl_idx, indir);\n \t\tif (err)\n@@ -1082,16 +1071,6 @@ static int __set_rss_rxfh(struct net_device *netdev,\n \t}\n \n \tif (key) {\n-\t\tif (!nic_dev-\u003erss_hkey_user) {\n-\t\t\tnic_dev-\u003erss_hkey_user =\n-\t\t\t\tkzalloc(HINIC_RSS_KEY_SIZE * 2, GFP_KERNEL);\n-\n-\t\t\tif (!nic_dev-\u003erss_hkey_user)\n-\t\t\t\treturn -ENOMEM;\n-\t\t}\n-\n-\t\tmemcpy(nic_dev-\u003erss_hkey_user, key, HINIC_RSS_KEY_SIZE);\n-\n \t\terr = hinic_rss_set_template_tbl(nic_dev,\n \t\t\t\t\t\t nic_dev-\u003erss_tmpl_idx, key);\n \t\tif (err)\n"
} |
| 2/1 | 2026/07/22 22:23 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies the Huawei Intelligent NIC (HINIC) driver, which is a physical PCI device driver. There is no software emulation for this device in QEMU or the Linux kernel, making these code paths impossible to reach in virtualized environments like GCE or QEMU.",
"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). 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. 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. Do not list too generic configs (we already have them enabled). Only list those that specifically cover the modified code. 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 865421d4dc04a5328bb013f52e52b57366969748
Author: syz-cluster <triage@syzkaller.com>
Date: Wed Jul 22 22:23:27 2026 +0000
syz-cluster: applied patch under review
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_dev.h b/drivers/net/ethernet/huawei/hinic/hinic_dev.h
index 52ea97c818b8ec..d9ab94910a2a79 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_dev.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_dev.h
@@ -104,8 +104,6 @@ struct hinic_dev {
u16 num_rss;
u16 rss_limit;
struct hinic_rss_type rss_type;
- u8 *rss_hkey_user;
- s32 *rss_indir_user;
struct hinic_intr_coal_info *rx_intr_coalesce;
struct hinic_intr_coal_info *tx_intr_coalesce;
struct hinic_sriov_info sriov_info;
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
index a8b129ce1b7e9f..f75e8563f23aee 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
@@ -1064,17 +1064,6 @@ static int __set_rss_rxfh(struct net_device *netdev,
int err;
if (indir) {
- if (!nic_dev->rss_indir_user) {
- nic_dev->rss_indir_user =
- kzalloc(sizeof(u32) * HINIC_RSS_INDIR_SIZE,
- GFP_KERNEL);
- if (!nic_dev->rss_indir_user)
- return -ENOMEM;
- }
-
- memcpy(nic_dev->rss_indir_user, indir,
- sizeof(u32) * HINIC_RSS_INDIR_SIZE);
-
err = hinic_rss_set_indir_tbl(nic_dev,
nic_dev->rss_tmpl_idx, indir);
if (err)
@@ -1082,16 +1071,6 @@ static int __set_rss_rxfh(struct net_device *netdev,
}
if (key) {
- if (!nic_dev->rss_hkey_user) {
- nic_dev->rss_hkey_user =
- kzalloc(HINIC_RSS_KEY_SIZE * 2, GFP_KERNEL);
-
- if (!nic_dev->rss_hkey_user)
- return -ENOMEM;
- }
-
- memcpy(nic_dev->rss_hkey_user, key, HINIC_RSS_KEY_SIZE);
-
err = hinic_rss_set_template_tbl(nic_dev,
nic_dev->rss_tmpl_idx, key);
if (err)
|
| 3/2 | 2026/07/22 22:23 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 2537 output: 36 thoughts: 356 Thoughts: **Analyzing a HINIC Driver Patch** Okay, so this patch is touching `hinic_ethtool.c` and `hinic_dev.h` within the Huawei HINIC driver. Right off the bat, I see it's removing `rss_hkey_user` and `rss_indir_user` from the `hinic_dev` struct, and the related allocation/population code in `__set_rss_rxfh`. My initial thought is, "Can this be exploited virtually?" It's a PCI device driver, which usually points towards physical hardware. I need to figure out if this driver is even reachable in a virtualized environment. Given it's a PCI driver, fuzzing is usually a challenge without emulation or generic subsystem hooks. But is there emulation for HINIC? Probably not. Wait, didn't syzkaller start supporting PCI fuzzing? Yes, there are mechanisms like vPCI. The prompt is specifically calling out *impossibility* of reaching code paths in virtualized environments like GCE or QEMU, even with software-emulated hardware. Is HINIC emulated in QEMU? No. So it's probably unreachable in a typical virtualized environment. Syzkaller supports PCI fuzzing, but usually, we treat physical device drivers as unreachable unless there is a USB driver or a specific emulator is involved. Let me just double-check, yes, it's the Huawei Intelligent NIC. Okay, so it's a physical device. Let me perform a quick kernel search to make certain. |
| 4/2 | 2026/07/22 22:23 | tool | grepper |
0mArgs:{
"Expression": "HINIC",
"PathPrefix": "drivers/net/ethernet/huawei/hinic/"
}Results: {
"Output": "\nFull output is too long, showing 500 out of 5995 lines.\nUse more precise expression if possible.\n\ndrivers/net/ethernet/huawei/hinic/Kconfig-5-\ndrivers/net/ethernet/huawei/hinic/Kconfig:6:config HINIC\ndrivers/net/ethernet/huawei/hinic/Kconfig-7-\ttristate \"Huawei Intelligent PCIE Network Interface Card\"\n--\ndrivers/net/ethernet/huawei/hinic/Makefile-1-# SPDX-License-Identifier: GPL-2.0-only\ndrivers/net/ethernet/huawei/hinic/Makefile:2:obj-$(CONFIG_HINIC) += hinic.o\ndrivers/net/ethernet/huawei/hinic/Makefile-3-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_common.h-6-\ndrivers/net/ethernet/huawei/hinic/hinic_common.h:7:#ifndef HINIC_COMMON_H\ndrivers/net/ethernet/huawei/hinic/hinic_common.h:8:#define HINIC_COMMON_H\ndrivers/net/ethernet/huawei/hinic/hinic_common.h-9-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=83=static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-96-\tread_data-\u003einst = TBL_ID_FUNC_CFG_SM_INST;\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:97:\tread_data-\u003eentry_size = HINIC_FUNCTION_CONFIGURE_TABLE_SIZE;\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:98:\tread_data-\u003elt_index = HINIC_HWIF_FUNC_IDX(nic_dev-\u003ehwdev-\u003ehwif);\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:99:\tread_data-\u003elen = HINIC_FUNCTION_CONFIGURE_TABLE_SIZE;\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-100-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:101:\terr = hinic_port_msg_cmd(nic_dev-\u003ehwdev, HINIC_PORT_CMD_RD_LINE_TBL, read_data,\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-102-\t\t\t\t sizeof(*read_data), read_data, \u0026out_size);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=136=static ssize_t hinic_dbg_cmd_read(struct file *filp, char __user *buffer, size_t count,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-148-\tswitch (dbg-\u003etype) {\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:149:\tcase HINIC_DBG_SQ_INFO:\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-150-\t\tout = hinic_dbg_get_sq_info(dbg-\u003edev, dbg-\u003eobject, *desc);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-152-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:153:\tcase HINIC_DBG_RQ_INFO:\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-154-\t\tout = hinic_dbg_get_rq_info(dbg-\u003edev, dbg-\u003eobject, *desc);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-156-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:157:\tcase HINIC_DBG_FUNC_TABLE:\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-158-\t\tout = hinic_dbg_get_func_table(dbg-\u003edev, *desc);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=204=static void rem_dbg_files(struct hinic_debug_priv *dbg)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-205-{\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:206:\tif (dbg-\u003etype != HINIC_DBG_FUNC_TABLE)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-207-\t\tdebugfs_remove_recursive(dbg-\u003eroot);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=212=int hinic_sq_debug_add(struct hinic_dev *dev, u16 sq_id)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-223-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:224:\treturn create_dbg_files(dev, HINIC_DBG_SQ_INFO, sq, root, \u0026sq-\u003edbg, sq_fields,\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-225-\t\t\t\tARRAY_SIZE(sq_fields));\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=234=int hinic_rq_debug_add(struct hinic_dev *dev, u16 rq_id)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-245-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:246:\treturn create_dbg_files(dev, HINIC_DBG_RQ_INFO, rq, root, \u0026rq-\u003edbg, rq_fields,\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-247-\t\t\t\tARRAY_SIZE(rq_fields));\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=256=int hinic_func_table_debug_add(struct hinic_dev *dev)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-257-{\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:258:\tif (HINIC_IS_VF(dev-\u003ehwdev-\u003ehwif))\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-259-\t\treturn 0;\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-260-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:261:\treturn create_dbg_files(dev, HINIC_DBG_FUNC_TABLE, dev, dev-\u003efunc_tbl_dbgfs, \u0026dev-\u003edbg,\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-262-\t\t\t\tfunc_table_fields, ARRAY_SIZE(func_table_fields));\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=265=void hinic_func_table_debug_rem(struct hinic_dev *dev)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-266-{\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:267:\tif (!HINIC_IS_VF(dev-\u003ehwdev-\u003ehwif) \u0026\u0026 dev-\u003edbg)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-268-\t\trem_dbg_files(dev-\u003edbg);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=291=void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-292-{\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:293:\tif (!HINIC_IS_VF(nic_dev-\u003ehwdev-\u003ehwif))\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-294-\t\tnic_dev-\u003efunc_tbl_dbgfs = debugfs_create_dir(\"func_table\", nic_dev-\u003edbgfs_root);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c=297=void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev)\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-298-{\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c:299:\tif (!HINIC_IS_VF(nic_dev-\u003ehwdev-\u003ehwif))\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.c-300-\t\tdebugfs_remove_recursive(nic_dev-\u003efunc_tbl_dbgfs);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h-5-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h:6:#ifndef HINIC_DEBUGFS_H\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h:7:#define HINIC_DEBUGFS_H\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h-8-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h-13-\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h:14:#define HINIC_FUNCTION_CONFIGURE_TABLE_SIZE 64\ndrivers/net/ethernet/huawei/hinic/hinic_debugfs.h-15-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-6-\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:7:#ifndef HINIC_DEV_H\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:8:#define HINIC_DEV_H\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-9-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-20-\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:21:#define HINIC_DRV_NAME \"hinic\"\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-22-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-24-\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:25:#define HINIC_MAX_JUMBO_FRAME_SIZE 15872\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:26:#define HINIC_MAX_MTU_SIZE (HINIC_MAX_JUMBO_FRAME_SIZE - ETH_HLEN - ETH_FCS_LEN)\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:27:#define HINIC_MIN_MTU_SIZE 256\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-28-\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h=29=enum hinic_flags {\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:30:\tHINIC_LINK_UP = BIT(0),\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:31:\tHINIC_INTF_UP = BIT(1),\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:32:\tHINIC_RSS_ENABLE = BIT(2),\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:33:\tHINIC_LINK_DOWN = BIT(3),\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:34:\tHINIC_LP_TEST = BIT(4),\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-35-};\n--\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h=53=enum hinic_rss_hash_type {\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:54:\tHINIC_RSS_HASH_ENGINE_TYPE_XOR,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:55:\tHINIC_RSS_HASH_ENGINE_TYPE_TOEP,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:56:\tHINIC_RSS_HASH_ENGINE_TYPE_MAX,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-57-};\n--\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h=65=enum hinic_dbg_type {\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:66:\tHINIC_DBG_SQ_INFO,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:67:\tHINIC_DBG_RQ_INFO,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h:68:\tHINIC_DBG_FUNC_TABLE,\ndrivers/net/ethernet/huawei/hinic/hinic_dev.h-69-};\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c=23=static bool check_image_valid(struct hinic_devlink_priv *priv, const u8 *buf,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-31-\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c:32:\tif (fw_image-\u003efw_magic != HINIC_MAGIC_NUM) {\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-33-\t\tdev_err(\u0026priv-\u003ehwdev-\u003ehwif-\u003epdev-\u003edev, \"Wrong fw_magic read from file, fw_magic: 0x%x\\n\",\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c=122=static int hinic_flash_fw(struct hinic_devlink_priv *priv, const u8 *data,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-217-\t\t\terr = hinic_port_msg_cmd(priv-\u003ehwdev,\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c:218:\t\t\t\t\t\t HINIC_PORT_CMD_UPDATE_FW,\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-219-\t\t\t\t\t\t fw_update_msg,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c=242=static int hinic_firmware_update(struct hinic_devlink_priv *priv,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-261-\tif (err) {\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c:262:\t\tif (err == HINIC_FW_DISMATCH_ERROR) {\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.c-263-\t\t\tdev_err(\u0026priv-\u003ehwdev-\u003ehwif-\u003epdev-\u003edev, \"Firmware image doesn't match this card, please use newer image, err: %d\\n\",\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-5-\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h:6:#ifndef __HINIC_DEVLINK_H__\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h:7:#define __HINIC_DEVLINK_H__\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-8-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-12-#define MAX_FW_TYPE_NUM 30\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h:13:#define HINIC_MAGIC_NUM 0x18221100\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-14-#define UPDATEFW_IMAGE_HEAD_SIZE 1024\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-21-#define MAX_FW_FRAGMENT_LEN 1536\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h:22:#define HINIC_FW_DISMATCH_ERROR 10\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-23-\n--\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h=117=void hinic_health_reporters_destroy(struct hinic_devlink_priv *priv);\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h-118-\ndrivers/net/ethernet/huawei/hinic/hinic_devlink.h:119:#endif /* __HINIC_DEVLINK_H__ */\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=82=static struct hw2ethtool_link_mode\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:83:\thw_to_ethtool_link_mode_table[HINIC_LINK_MODE_NUMBERS] = {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-84-\t{\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-86-\t\t.speed = SPEED_10000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:87:\t\t.hw_link_mode = HINIC_10GE_BASE_KR,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-88-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-91-\t\t.speed = SPEED_40000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:92:\t\t.hw_link_mode = HINIC_40GE_BASE_KR4,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-93-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-96-\t\t.speed = SPEED_40000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:97:\t\t.hw_link_mode = HINIC_40GE_BASE_CR4,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-98-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-101-\t\t.speed = SPEED_100000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:102:\t\t.hw_link_mode = HINIC_100GE_BASE_KR4,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-103-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-106-\t\t.speed = SPEED_100000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:107:\t\t.hw_link_mode = HINIC_100GE_BASE_CR4,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-108-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-111-\t\t.speed = SPEED_25000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:112:\t\t.hw_link_mode = HINIC_25GE_BASE_KR_S,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-113-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-116-\t\t.speed = SPEED_25000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:117:\t\t.hw_link_mode = HINIC_25GE_BASE_CR_S,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-118-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-121-\t\t.speed = SPEED_25000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:122:\t\t.hw_link_mode = HINIC_25GE_BASE_KR,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-123-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-126-\t\t.speed = SPEED_25000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:127:\t\t.hw_link_mode = HINIC_25GE_BASE_CR,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-128-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-131-\t\t.speed = SPEED_1000,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:132:\t\t.hw_link_mode = HINIC_GE_BASE_KX,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-133-\t},\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=146=static void set_link_speed(struct ethtool_link_ksettings *link_ksettings,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-149-\tswitch (speed) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:150:\tcase HINIC_SPEED_10MB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-151-\t\tlink_ksettings-\u003ebase.speed = SPEED_10;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-153-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:154:\tcase HINIC_SPEED_100MB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-155-\t\tlink_ksettings-\u003ebase.speed = SPEED_100;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-157-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:158:\tcase HINIC_SPEED_1000MB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-159-\t\tlink_ksettings-\u003ebase.speed = SPEED_1000;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-161-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:162:\tcase HINIC_SPEED_10GB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-163-\t\tlink_ksettings-\u003ebase.speed = SPEED_10000;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-165-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:166:\tcase HINIC_SPEED_25GB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-167-\t\tlink_ksettings-\u003ebase.speed = SPEED_25000;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-169-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:170:\tcase HINIC_SPEED_40GB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-171-\t\tlink_ksettings-\u003ebase.speed = SPEED_40000;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-173-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:174:\tcase HINIC_SPEED_100GB_LINK:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-175-\t\tlink_ksettings-\u003ebase.speed = SPEED_100000;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=184=static int hinic_get_link_mode_index(enum hinic_link_mode link_mode)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-187-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:188:\tfor (i = 0; i \u003c HINIC_LINK_MODE_NUMBERS; i++) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-189-\t\tif (link_mode == hw_to_ethtool_link_mode_table[i].hw_link_mode)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=196=static void hinic_add_ethtool_link_mode(struct cmd_link_settings *link_settings,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-202-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:203:\tfor (link_mode = 0; link_mode \u003c HINIC_LINK_MODE_NUMBERS; link_mode++) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-204-\t\tif (hw_link_mode \u0026 ((u32)1 \u003c\u003c link_mode)) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-205-\t\t\tidx = hinic_get_link_mode_index(link_mode);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:206:\t\t\tif (idx \u003e= HINIC_LINK_MODE_NUMBERS)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-207-\t\t\t\tcontinue;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=219=static void hinic_link_port_type(struct cmd_link_settings *link_settings,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-222-\tswitch (port_type) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:223:\tcase HINIC_PORT_ELEC:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:224:\tcase HINIC_PORT_TP:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-225-\t\tETHTOOL_ADD_SUPPORTED_LINK_MODE(link_settings, TP);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-229-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:230:\tcase HINIC_PORT_AOC:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:231:\tcase HINIC_PORT_FIBRE:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-232-\t\tETHTOOL_ADD_SUPPORTED_LINK_MODE(link_settings, FIBRE);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-236-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:237:\tcase HINIC_PORT_COPPER:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-238-\t\tETHTOOL_ADD_SUPPORTED_LINK_MODE(link_settings, FIBRE);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-242-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:243:\tcase HINIC_PORT_BACKPLANE:\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-244-\t\tETHTOOL_ADD_SUPPORTED_LINK_MODE(link_settings, Backplane);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=255=static int hinic_get_link_ksettings(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-284-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:285:\tif (link_state == HINIC_LINK_STATE_UP) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-286-\t\tset_link_speed(link_ksettings, port_cap.speed);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-287-\t\tlink_ksettings-\u003ebase.duplex =\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:288:\t\t\t(port_cap.duplex == HINIC_DUPLEX_FULL) ?\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-289-\t\t\tDUPLEX_FULL : DUPLEX_HALF;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-291-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:292:\tif (!!(port_cap.autoneg_cap \u0026 HINIC_AUTONEG_SUPPORTED))\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-293-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-295-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:296:\tif (port_cap.autoneg_state == HINIC_AUTONEG_ACTIVE)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-297-\t\tlink_ksettings-\u003ebase.autoneg = AUTONEG_ENABLE;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-299-\terr = hinic_get_link_mode(nic_dev-\u003ehwdev, \u0026link_mode);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:300:\tif (err || link_mode.supported == HINIC_SUPPORTED_UNKNOWN ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:301:\t link_mode.advertised == HINIC_SUPPORTED_UNKNOWN)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-302-\t\treturn -EIO;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-308-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:309:\tif (!HINIC_IS_VF(nic_dev-\u003ehwdev-\u003ehwif)) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-310-\t\terr = hinic_get_hw_pause_info(nic_dev-\u003ehwdev, \u0026pause_info);\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=344=static bool hinic_is_support_speed(enum hinic_link_mode supported_link,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-349-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:350:\tfor (link_mode = 0; link_mode \u003c HINIC_LINK_MODE_NUMBERS; link_mode++) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-351-\t\tif (!(supported_link \u0026 ((u32)1 \u003c\u003c link_mode)))\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-354-\t\tidx = hinic_get_link_mode_index(link_mode);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:355:\t\tif (idx \u003e= HINIC_LINK_MODE_NUMBERS)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-356-\t\t\tcontinue;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=365=static bool hinic_is_speed_legal(struct hinic_dev *nic_dev, u32 speed)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-375-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:376:\tif (link_mode.supported == HINIC_SUPPORTED_UNKNOWN ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:377:\t link_mode.advertised == HINIC_SUPPORTED_UNKNOWN)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-378-\t\treturn false;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=457=static int hinic_set_settings_to_hw(struct hinic_dev *nic_dev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-480-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:481:\tsettings.func_id = HINIC_HWIF_FUNC_IDX(nic_dev-\u003ehwdev-\u003ehwif);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-482-\tsettings.valid_bitmap = set_settings;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-486-\terr = hinic_set_link_settings(nic_dev-\u003ehwdev, \u0026settings);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:487:\tif (err != HINIC_MGMT_CMD_UNSUPPORTED) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-488-\t\tif (err)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=529=static void hinic_get_drvinfo(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-532-\tstruct hinic_dev *nic_dev = netdev_priv(netdev);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:533:\tu8 mgmt_ver[HINIC_MGMT_VERSION_MAX_LEN] = {0};\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-534-\tstruct hinic_hwdev *hwdev = nic_dev-\u003ehwdev;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-537-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:538:\tstrscpy(info-\u003edriver, HINIC_DRV_NAME, sizeof(info-\u003edriver));\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-539-\tstrscpy(info-\u003ebus_info, pci_name(hwif-\u003epdev), sizeof(info-\u003ebus_info));\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=548=static void hinic_get_ringparam(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-554-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:555:\tring-\u003erx_max_pending = HINIC_MAX_QUEUE_DEPTH;\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:556:\tring-\u003etx_max_pending = HINIC_MAX_QUEUE_DEPTH;\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-557-\tring-\u003erx_pending = nic_dev-\u003erq_depth;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=561=static int check_ringparam_valid(struct hinic_dev *nic_dev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-569-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:570:\tif (ring-\u003etx_pending \u003e HINIC_MAX_QUEUE_DEPTH ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:571:\t ring-\u003etx_pending \u003c HINIC_MIN_QUEUE_DEPTH ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:572:\t ring-\u003erx_pending \u003e HINIC_MAX_QUEUE_DEPTH ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:573:\t ring-\u003erx_pending \u003c HINIC_MIN_QUEUE_DEPTH) {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-574-\t\tnetif_err(nic_dev, drv, nic_dev-\u003enetdev,\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-575-\t\t\t \"Queue depth out of range [%d-%d]\\n\",\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:576:\t\t\t HINIC_MIN_QUEUE_DEPTH, HINIC_MAX_QUEUE_DEPTH);\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-577-\t\treturn -EINVAL;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=677=static int set_queue_coalesce(struct hinic_dev *nic_dev, u16 q_id,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-695-\t */\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:696:\tif (!(nic_dev-\u003eflags \u0026 HINIC_INTF_UP) ||\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-697-\t q_id \u003e= nic_dev-\u003enum_qps)\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=922=static int hinic_get_rxfh_fields(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-930-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:931:\tif (!(nic_dev-\u003eflags \u0026 HINIC_RSS_ENABLE))\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-932-\t\treturn 0;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1004=static int hinic_set_rxfh_fields(struct net_device *dev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1013-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1014:\tif (!(nic_dev-\u003eflags \u0026 HINIC_RSS_ENABLE))\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1015-\t\treturn -EOPNOTSUPP;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1090=static int hinic_get_rxfh(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1096-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1097:\tif (!(nic_dev-\u003eflags \u0026 HINIC_RSS_ENABLE))\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1098-\t\treturn -EOPNOTSUPP;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1124=static int hinic_set_rxfh(struct net_device *netdev,\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1130-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1131:\tif (!(nic_dev-\u003eflags \u0026 HINIC_RSS_ENABLE))\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1132-\t\treturn -EOPNOTSUPP;\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1139-\t\tnic_dev-\u003erss_hash_engine = (rxfh-\u003ehfunc == ETH_RSS_HASH_XOR) ?\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1140:\t\t\tHINIC_RSS_HASH_ENGINE_TYPE_XOR :\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1141:\t\t\tHINIC_RSS_HASH_ENGINE_TYPE_TOEP;\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1142-\t\terr = hinic_rss_set_hash_engine\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1154=static u32 hinic_get_rxfh_key_size(struct net_device *netdev)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1155-{\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1156:\treturn HINIC_RSS_KEY_SIZE;\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1157-}\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1159=static u32 hinic_get_rxfh_indir_size(struct net_device *netdev)\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1160-{\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1161:\treturn HINIC_RSS_INDIR_SIZE;\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1162-}\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1163-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1164:#define HINIC_FUNC_STAT(_stat_item) {\t\\\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1165-\t.name = #_stat_item, \\\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1170=static struct hinic_stats hinic_function_stats[] = {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1171:\tHINIC_FUNC_STAT(tx_unicast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1172:\tHINIC_FUNC_STAT(tx_unicast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1173:\tHINIC_FUNC_STAT(tx_multicast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1174:\tHINIC_FUNC_STAT(tx_multicast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1175:\tHINIC_FUNC_STAT(tx_broadcast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1176:\tHINIC_FUNC_STAT(tx_broadcast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1177-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1178:\tHINIC_FUNC_STAT(rx_unicast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1179:\tHINIC_FUNC_STAT(rx_unicast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1180:\tHINIC_FUNC_STAT(rx_multicast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1181:\tHINIC_FUNC_STAT(rx_multicast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1182:\tHINIC_FUNC_STAT(rx_broadcast_pkts_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1183:\tHINIC_FUNC_STAT(rx_broadcast_bytes_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1184-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1185:\tHINIC_FUNC_STAT(tx_discard_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1186:\tHINIC_FUNC_STAT(rx_discard_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1187:\tHINIC_FUNC_STAT(tx_err_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1188:\tHINIC_FUNC_STAT(rx_err_vport),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1189-};\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1191=static char hinic_test_strings[][ETH_GSTRING_LEN] = {\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1195-\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1196:#define HINIC_PORT_STAT(_stat_item) { \\\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c-1197-\t.name = #_stat_item, \\\n--\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c=1202=static struct hinic_stats hinic_port_stats[] = {\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1203:\tHINIC_PORT_STAT(mac_rx_total_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1204:\tHINIC_PORT_STAT(mac_rx_total_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1205:\tHINIC_PORT_STAT(mac_rx_bad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1206:\tHINIC_PORT_STAT(mac_rx_bad_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1207:\tHINIC_PORT_STAT(mac_rx_good_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1208:\tHINIC_PORT_STAT(mac_rx_good_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1209:\tHINIC_PORT_STAT(mac_rx_uni_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1210:\tHINIC_PORT_STAT(mac_rx_multi_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1211:\tHINIC_PORT_STAT(mac_rx_broad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1212:\tHINIC_PORT_STAT(mac_tx_total_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1213:\tHINIC_PORT_STAT(mac_tx_total_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1214:\tHINIC_PORT_STAT(mac_tx_bad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1215:\tHINIC_PORT_STAT(mac_tx_bad_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1216:\tHINIC_PORT_STAT(mac_tx_good_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1217:\tHINIC_PORT_STAT(mac_tx_good_oct_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1218:\tHINIC_PORT_STAT(mac_tx_uni_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1219:\tHINIC_PORT_STAT(mac_tx_multi_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1220:\tHINIC_PORT_STAT(mac_tx_broad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1221:\tHINIC_PORT_STAT(mac_rx_fragment_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1222:\tHINIC_PORT_STAT(mac_rx_undersize_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1223:\tHINIC_PORT_STAT(mac_rx_undermin_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1224:\tHINIC_PORT_STAT(mac_rx_64_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1225:\tHINIC_PORT_STAT(mac_rx_65_127_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1226:\tHINIC_PORT_STAT(mac_rx_128_255_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1227:\tHINIC_PORT_STAT(mac_rx_256_511_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1228:\tHINIC_PORT_STAT(mac_rx_512_1023_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1229:\tHINIC_PORT_STAT(mac_rx_1024_1518_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1230:\tHINIC_PORT_STAT(mac_rx_1519_2047_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1231:\tHINIC_PORT_STAT(mac_rx_2048_4095_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1232:\tHINIC_PORT_STAT(mac_rx_4096_8191_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1233:\tHINIC_PORT_STAT(mac_rx_8192_9216_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1234:\tHINIC_PORT_STAT(mac_rx_9217_12287_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1235:\tHINIC_PORT_STAT(mac_rx_12288_16383_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1236:\tHINIC_PORT_STAT(mac_rx_1519_max_good_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1237:\tHINIC_PORT_STAT(mac_rx_1519_max_bad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1238:\tHINIC_PORT_STAT(mac_rx_oversize_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1239:\tHINIC_PORT_STAT(mac_rx_jabber_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1240:\tHINIC_PORT_STAT(mac_rx_pause_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1241:\tHINIC_PORT_STAT(mac_rx_pfc_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1242:\tHINIC_PORT_STAT(mac_rx_pfc_pri0_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1243:\tHINIC_PORT_STAT(mac_rx_pfc_pri1_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1244:\tHINIC_PORT_STAT(mac_rx_pfc_pri2_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1245:\tHINIC_PORT_STAT(mac_rx_pfc_pri3_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1246:\tHINIC_PORT_STAT(mac_rx_pfc_pri4_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1247:\tHINIC_PORT_STAT(mac_rx_pfc_pri5_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1248:\tHINIC_PORT_STAT(mac_rx_pfc_pri6_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1249:\tHINIC_PORT_STAT(mac_rx_pfc_pri7_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1250:\tHINIC_PORT_STAT(mac_rx_control_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1251:\tHINIC_PORT_STAT(mac_rx_sym_err_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1252:\tHINIC_PORT_STAT(mac_rx_fcs_err_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1253:\tHINIC_PORT_STAT(mac_rx_send_app_good_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1254:\tHINIC_PORT_STAT(mac_rx_send_app_bad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1255:\tHINIC_PORT_STAT(mac_tx_fragment_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1256:\tHINIC_PORT_STAT(mac_tx_undersize_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1257:\tHINIC_PORT_STAT(mac_tx_undermin_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1258:\tHINIC_PORT_STAT(mac_tx_64_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1259:\tHINIC_PORT_STAT(mac_tx_65_127_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1260:\tHINIC_PORT_STAT(mac_tx_128_255_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1261:\tHINIC_PORT_STAT(mac_tx_256_511_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1262:\tHINIC_PORT_STAT(mac_tx_512_1023_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1263:\tHINIC_PORT_STAT(mac_tx_1024_1518_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1264:\tHINIC_PORT_STAT(mac_tx_1519_2047_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1265:\tHINIC_PORT_STAT(mac_tx_2048_4095_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1266:\tHINIC_PORT_STAT(mac_tx_4096_8191_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1267:\tHINIC_PORT_STAT(mac_tx_8192_9216_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1268:\tHINIC_PORT_STAT(mac_tx_9217_12287_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1269:\tHINIC_PORT_STAT(mac_tx_12288_16383_oct_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1270:\tHINIC_PORT_STAT(mac_tx_1519_max_good_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1271:\tHINIC_PORT_STAT(mac_tx_1519_max_bad_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1272:\tHINIC_PORT_STAT(mac_tx_oversize_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1273:\tHINIC_PORT_STAT(mac_tx_jabber_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1274:\tHINIC_PORT_STAT(mac_tx_pause_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1275:\tHINIC_PORT_STAT(mac_tx_pfc_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1276:\tHINIC_PORT_STAT(mac_tx_pfc_pri0_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1277:\tHINIC_PORT_STAT(mac_tx_pfc_pri1_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1278:\tHINIC_PORT_STAT(mac_tx_pfc_pri2_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1279:\tHINIC_PORT_STAT(mac_tx_pfc_pri3_pkt_num),\ndrivers/net/ethernet/huawei/hinic/hinic_ethtool.c:1280:\tHINIC_PORT_STAT(mac_tx_pfc_pri4_pkt_num),\n\n"
} |
| 5/2 | 2026/07/22 22:23 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 20201 output: 89 thoughts: 237 Thoughts: **My Assessment of the Huawei Intelligent PCIE NIC Driver** Okay, so I'm looking at this driver, specifically for the Huawei Intelligent PCIE Network Interface Card. Straight away, I see it's dealing with physical hardware. That's my first clue. Let me quickly consider if any software emulation exists for this NIC. No, it doesn't seem like there is. Alright, then my next thought is about virtualization. Is it accessible in environments like GCE or QEMU? Again, the answer is no, not directly; it would require pass-through, which is hardly ideal. So, realistically, this driver's code paths are unreachable in standard virtualized environments. This means it's pretty much a write-off in terms of fuzzing applicability because it falls into a category that my criteria excludes. Wait, now that I look at the prompt more closely, it tells me to return `WorthFuzzing=false` if the patch has modifications that are impossible to reach in virtualized environments like GCE or QEMU, even with software-emulated hardware. This driver, being a physical PCI device driver with no software emulation, falls squarely into that category. Therefore, I'm confident in returning `WorthFuzzing=false`. It's a waste of resources to fuzz code that can't be executed in the target fuzzing environment. |
| 6/2 | 2026/07/22 22:23 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch modifies the Huawei Intelligent NIC (HINIC) driver, which is a physical PCI device driver. There is no software emulation for this device in QEMU or the Linux kernel, making these code paths impossible to reach in virtualized environments like GCE or QEMU.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch modifies the Huawei Intelligent NIC (HINIC) driver, which is a physical PCI device driver. There is no software emulation for this device in QEMU or the Linux kernel, making these code paths impossible to reach in virtualized environments like GCE or QEMU.",
"WorthFuzzing": false
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|