mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-13 23:29:10 -04:00
Merge branch 'net-hns3-use-seq_file-for-debugfs'
Jijie Shao says: ==================== net: hns3: use seq_file for debugfs Arnd reported that there are two build warning for on-stasck buffer oversize. As Arnd's suggestion, using seq file way to avoid the stack buffer or kmalloc buffer allocating. v2: https://lore.kernel.org/20250711061725.225585-1-shaojijie@huawei.com v1: https://lore.kernel.org/20250708130029.1310872-1-shaojijie@huawei.com ==================== Link: https://patch.msgid.link/20250714061037.2616413-1-shaojijie@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -339,6 +339,10 @@ enum hnae3_dbg_cmd {
|
||||
HNAE3_DBG_CMD_UNKNOWN,
|
||||
};
|
||||
|
||||
#define hnae3_seq_file_to_ae_dev(s) (dev_get_drvdata((s)->private))
|
||||
#define hnae3_seq_file_to_handle(s) \
|
||||
(((struct hnae3_ae_dev *)hnae3_seq_file_to_ae_dev(s))->handle)
|
||||
|
||||
enum hnae3_tc_map_mode {
|
||||
HNAE3_TC_MAP_MODE_PRIO,
|
||||
HNAE3_TC_MAP_MODE_DSCP,
|
||||
@@ -434,8 +438,11 @@ struct hnae3_ae_dev {
|
||||
u32 dev_version;
|
||||
DECLARE_BITMAP(caps, HNAE3_DEV_CAPS_MAX_NUM);
|
||||
void *priv;
|
||||
struct hnae3_handle *handle;
|
||||
};
|
||||
|
||||
typedef int (*read_func)(struct seq_file *s, void *data);
|
||||
|
||||
/* This struct defines the operation on the handle.
|
||||
*
|
||||
* init_ae_dev(): (mandatory)
|
||||
@@ -580,8 +587,6 @@ struct hnae3_ae_dev {
|
||||
* Delete clsflower rule
|
||||
* cls_flower_active
|
||||
* Check if any cls flower rule exist
|
||||
* dbg_read_cmd
|
||||
* Execute debugfs read command.
|
||||
* set_tx_hwts_info
|
||||
* Save information for 1588 tx packet
|
||||
* get_rx_hwts
|
||||
@@ -594,6 +599,8 @@ struct hnae3_ae_dev {
|
||||
* Get wake on lan info
|
||||
* set_wol
|
||||
* Config wake on lan
|
||||
* dbg_get_read_func
|
||||
* Return the read func for debugfs seq file
|
||||
*/
|
||||
struct hnae3_ae_ops {
|
||||
int (*init_ae_dev)(struct hnae3_ae_dev *ae_dev);
|
||||
@@ -748,8 +755,6 @@ struct hnae3_ae_ops {
|
||||
void (*enable_fd)(struct hnae3_handle *handle, bool enable);
|
||||
int (*add_arfs_entry)(struct hnae3_handle *handle, u16 queue_id,
|
||||
u16 flow_id, struct flow_keys *fkeys);
|
||||
int (*dbg_read_cmd)(struct hnae3_handle *handle, enum hnae3_dbg_cmd cmd,
|
||||
char *buf, int len);
|
||||
pci_ers_result_t (*handle_hw_ras_error)(struct hnae3_ae_dev *ae_dev);
|
||||
bool (*get_hw_reset_stat)(struct hnae3_handle *handle);
|
||||
bool (*ae_dev_resetting)(struct hnae3_handle *handle);
|
||||
@@ -796,6 +801,9 @@ struct hnae3_ae_ops {
|
||||
struct ethtool_wolinfo *wol);
|
||||
int (*set_wol)(struct hnae3_handle *handle,
|
||||
struct ethtool_wolinfo *wol);
|
||||
int (*dbg_get_read_func)(struct hnae3_handle *handle,
|
||||
enum hnae3_dbg_cmd cmd,
|
||||
read_func *func);
|
||||
};
|
||||
|
||||
struct hnae3_dcb_ops {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,15 +6,6 @@
|
||||
|
||||
#include "hnae3.h"
|
||||
|
||||
#define HNS3_DBG_READ_LEN 65536
|
||||
#define HNS3_DBG_READ_LEN_128KB 0x20000
|
||||
#define HNS3_DBG_READ_LEN_1MB 0x100000
|
||||
#define HNS3_DBG_READ_LEN_4MB 0x400000
|
||||
#define HNS3_DBG_READ_LEN_5MB 0x500000
|
||||
#define HNS3_DBG_WRITE_LEN 1024
|
||||
|
||||
#define HNS3_DBG_DATA_STR_LEN 32
|
||||
#define HNS3_DBG_INFO_LEN 256
|
||||
#define HNS3_DBG_ITEM_NAME_LEN 32
|
||||
#define HNS3_DBG_FILE_NAME_LEN 16
|
||||
|
||||
@@ -49,16 +40,9 @@ struct hns3_dbg_cmd_info {
|
||||
const char *name;
|
||||
enum hnae3_dbg_cmd cmd;
|
||||
enum hns3_dbg_dentry_type dentry;
|
||||
u32 buf_len;
|
||||
int (*init)(struct hnae3_handle *handle, unsigned int cmd);
|
||||
};
|
||||
|
||||
struct hns3_dbg_func {
|
||||
enum hnae3_dbg_cmd cmd;
|
||||
int (*dbg_dump)(struct hnae3_handle *handle, char *buf, int len);
|
||||
int (*dbg_dump_bd)(struct hns3_dbg_data *data, char *buf, int len);
|
||||
};
|
||||
|
||||
struct hns3_dbg_cap_info {
|
||||
const char *name;
|
||||
enum HNAE3_DEV_CAP_BITS cap_bit;
|
||||
|
||||
@@ -5299,6 +5299,8 @@ static int hns3_client_init(struct hnae3_handle *handle)
|
||||
struct net_device *netdev;
|
||||
int ret;
|
||||
|
||||
ae_dev->handle = handle;
|
||||
|
||||
handle->ae_algo->ops->get_tqps_and_rss_info(handle, &alloc_tqps,
|
||||
&max_rss_size);
|
||||
netdev = alloc_etherdev_mq(sizeof(struct hns3_nic_priv), alloc_tqps);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -92,6 +92,7 @@ struct hclge_dbg_func {
|
||||
int (*dbg_dump)(struct hclge_dev *hdev, char *buf, int len);
|
||||
int (*dbg_dump_reg)(struct hclge_dev *hdev, enum hnae3_dbg_cmd cmd,
|
||||
char *buf, int len);
|
||||
read_func dbg_read_func;
|
||||
};
|
||||
|
||||
struct hclge_dbg_status_dfx_info {
|
||||
|
||||
@@ -12864,7 +12864,7 @@ static const struct hnae3_ae_ops hclge_ops = {
|
||||
.get_fd_all_rules = hclge_get_all_rules,
|
||||
.enable_fd = hclge_enable_fd,
|
||||
.add_arfs_entry = hclge_add_fd_entry_by_arfs,
|
||||
.dbg_read_cmd = hclge_dbg_read_cmd,
|
||||
.dbg_get_read_func = hclge_dbg_get_read_func,
|
||||
.handle_hw_ras_error = hclge_handle_hw_ras_error,
|
||||
.get_hw_reset_stat = hclge_get_hw_reset_stat,
|
||||
.ae_dev_resetting = hclge_ae_dev_resetting,
|
||||
|
||||
@@ -1142,8 +1142,8 @@ int hclge_func_reset_cmd(struct hclge_dev *hdev, int func_id);
|
||||
int hclge_vport_start(struct hclge_vport *vport);
|
||||
void hclge_vport_stop(struct hclge_vport *vport);
|
||||
int hclge_set_vport_mtu(struct hclge_vport *vport, int new_mtu);
|
||||
int hclge_dbg_read_cmd(struct hnae3_handle *handle, enum hnae3_dbg_cmd cmd,
|
||||
char *buf, int len);
|
||||
int hclge_dbg_get_read_func(struct hnae3_handle *handle, enum hnae3_dbg_cmd cmd,
|
||||
read_func *func);
|
||||
u16 hclge_covert_handle_qid_global(struct hnae3_handle *handle, u16 queue_id);
|
||||
int hclge_notify_client(struct hclge_dev *hdev,
|
||||
enum hnae3_reset_notify_type type);
|
||||
|
||||
Reference in New Issue
Block a user