Commit 3d7e932d authored by zhoujiadong's avatar zhoujiadong Committed by openeuler-sync-bot
Browse files

scsi/hifc: Fix compile error in allyesconfigs

driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I6X8PA


CVE: NA

Reference: NA

---------------------------------

When using allyesconfig to configure the kernel,
errors may occur during the linking process when making.

Signed-off-by: default avatarzhoujiadong <zhoujiadong5@huawei.com>
Reviewed-by: default avatarWulike (Collin) <wulike1@huawei.com>
(cherry picked from commit 3d776c92)
parent d33708c3
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
#include "hifc_mgmt.h"
#include "hifc_cfg.h"

uint intr_mode;
static uint intr_mode;

int hifc_sync_time(void *hwdev, u64 time)
{
@@ -389,7 +389,7 @@ void hifc_free_irq(void *hwdev, enum hifc_service_type type, u32 irq_id)
	mutex_unlock(&irq_info->irq_mutex);
}

int init_cfg_mgmt(struct hifc_hwdev *dev)
static int init_cfg_mgmt(struct hifc_hwdev *dev)
{
	int err;
	struct cfg_mgmt_info *cfg_mgmt;
@@ -439,7 +439,7 @@ int init_cfg_mgmt(struct hifc_hwdev *dev)
	return err;
}

void free_cfg_mgmt(struct hifc_hwdev *dev)
static void free_cfg_mgmt(struct hifc_hwdev *dev)
{
	struct cfg_mgmt_info *cfg_mgmt = dev->cfg_mgmt;

@@ -472,7 +472,7 @@ void free_cfg_mgmt(struct hifc_hwdev *dev)
	kfree(cfg_mgmt);
}

int init_capability(struct hifc_hwdev *dev)
static int init_capability(struct hifc_hwdev *dev)
{
	int err;
	enum func_type type = HIFC_FUNC_TYPE(dev);
@@ -497,7 +497,7 @@ int init_capability(struct hifc_hwdev *dev)
	return 0;
}

void free_capability(struct hifc_hwdev *dev)
static void free_capability(struct hifc_hwdev *dev)
{
	sdk_info(dev->dev_hdl, "Free capability success");
}
+55 −55
Original line number Diff line number Diff line
@@ -43,11 +43,11 @@ struct ffm_intr_info {
#define HIFC_SELF_CMD_UP2PF_FFM         0x26

void *g_card_node_array[MAX_CARD_NUM] = {0};
void *g_card_vir_addr[MAX_CARD_NUM] = {0};
u64 g_card_phy_addr[MAX_CARD_NUM] = {0};
/* lock for g_card_vir_addr */
struct mutex	g_addr_lock;
int card_id;
void *g_hifc_card_vir_addr[MAX_CARD_NUM] = {0};
u64 g_hifc_card_phy_addr[MAX_CARD_NUM] = {0};
/* lock for g_hifc_card_vir_addr */
struct mutex	g_hifc_addr_lock;
int g_hifc_card_id;

/* dbgtool character device name, class name, dev path */
#define CHR_DEV_DBGTOOL "hifc_dbgtool_chr_dev"
@@ -59,15 +59,15 @@ struct dbgtool_k_glb_info {
	struct ffm_record_info *ffm;
};

dev_t dbgtool_dev_id; /* device id */
struct cdev dbgtool_chr_dev; /* struct of char device */
static dev_t dbgtool_dev_id; /* device id */
static struct cdev dbgtool_chr_dev; /* struct of char device */

/*lint -save -e104 -e808*/
struct class *dbgtool_d_class; /* struct of char class */
static struct class *dbgtool_d_class; /* struct of char class */
/*lint -restore*/

int g_dbgtool_init_flag;
int g_dbgtool_ref_cnt;
static int g_dbgtool_init_flag;
static int g_dbgtool_ref_cnt;

static int dbgtool_knl_open(struct inode *pnode,
			    struct file *pfile)
@@ -102,7 +102,7 @@ static bool is_valid_phy_addr(u64 offset)
	int i;

	for (i = 0; i < MAX_CARD_NUM; i++) {
		if (offset == g_card_phy_addr[i])
		if (offset == g_hifc_card_phy_addr[i])
			return true;
	}

@@ -127,9 +127,9 @@ int hifc_mem_mmap(struct file *filp, struct vm_area_struct *vma)
	}

	/* old version of tool set vma->vm_pgoff to 0 */
	phy_addr = offset ? offset : g_card_phy_addr[card_id];
	phy_addr = offset ? offset : g_hifc_card_phy_addr[g_hifc_card_id];
	if (!phy_addr) {
		pr_err("Card_id = %d physical address is 0\n", card_id);
		pr_err("Card_id = %d physical address is 0\n", g_hifc_card_id);
		return -EAGAIN;
	}

@@ -147,7 +147,7 @@ int hifc_mem_mmap(struct file *filp, struct vm_area_struct *vma)
 * @g_func_handle_array: global function handle
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_api_cmd_read(struct dbgtool_param *para,
static long dbgtool_knl_api_cmd_read(struct dbgtool_param *para,
			      void **g_func_handle_array)
{
	long ret = 0;
@@ -231,7 +231,7 @@ long dbgtool_knl_api_cmd_read(struct dbgtool_param *para,
 * @g_func_handle_array: global function handle
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_api_cmd_write(struct dbgtool_param *para,
static long dbgtool_knl_api_cmd_write(struct dbgtool_param *para,
			       void **g_func_handle_array)
{
	long ret = 0;
@@ -298,7 +298,7 @@ void chipif_get_all_pf_dev_info(struct pf_dev_info *dev_info, int card_idx,
	for (func_idx = 0; func_idx < 16; func_idx++) {
		hwdev = (struct hifc_hwdev *)g_func_handle_array[func_idx];

		dev_info[func_idx].phy_addr = g_card_phy_addr[card_idx];
		dev_info[func_idx].phy_addr = g_hifc_card_phy_addr[card_idx];

		if (!hwdev) {
			dev_info[func_idx].bar0_size = 0;
@@ -328,47 +328,47 @@ void chipif_get_all_pf_dev_info(struct pf_dev_info *dev_info, int card_idx,
 * @g_func_handle_array: global function handle
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_pf_dev_info_get(struct dbgtool_param *para,
static long dbgtool_knl_pf_dev_info_get(struct dbgtool_param *para,
				 void **g_func_handle_array)
{
	struct pf_dev_info dev_info[16] = { {0} };
	unsigned char *tmp;
	int i;

	mutex_lock(&g_addr_lock);
	if (!g_card_vir_addr[card_id]) {
		g_card_vir_addr[card_id] =
	mutex_lock(&g_hifc_addr_lock);
	if (!g_hifc_card_vir_addr[g_hifc_card_id]) {
		g_hifc_card_vir_addr[g_hifc_card_id] =
			(void *)__get_free_pages(GFP_KERNEL,
						 DBGTOOL_PAGE_ORDER);
		if (!g_card_vir_addr[card_id]) {
		if (!g_hifc_card_vir_addr[g_hifc_card_id]) {
			pr_err("Alloc dbgtool api chain fail!\n");
			mutex_unlock(&g_addr_lock);
			mutex_unlock(&g_hifc_addr_lock);
			return -EFAULT;
		}

		memset(g_card_vir_addr[card_id], 0,
		memset(g_hifc_card_vir_addr[g_hifc_card_id], 0,
		       PAGE_SIZE * (1 << DBGTOOL_PAGE_ORDER));

		g_card_phy_addr[card_id] =
			virt_to_phys(g_card_vir_addr[card_id]);
		if (!g_card_phy_addr[card_id]) {
			pr_err("phy addr for card %d is 0\n", card_id);
			free_pages((unsigned long)g_card_vir_addr[card_id],
		g_hifc_card_phy_addr[g_hifc_card_id] =
			virt_to_phys(g_hifc_card_vir_addr[g_hifc_card_id]);
		if (!g_hifc_card_phy_addr[g_hifc_card_id]) {
			pr_err("phy addr for card %d is 0\n", g_hifc_card_id);
			free_pages((unsigned long)g_hifc_card_vir_addr[g_hifc_card_id],
				   DBGTOOL_PAGE_ORDER);
			g_card_vir_addr[card_id] = NULL;
			mutex_unlock(&g_addr_lock);
			g_hifc_card_vir_addr[g_hifc_card_id] = NULL;
			mutex_unlock(&g_hifc_addr_lock);
			return -EFAULT;
		}

		tmp = g_card_vir_addr[card_id];
		tmp = g_hifc_card_vir_addr[g_hifc_card_id];
		for (i = 0; i < (1 << DBGTOOL_PAGE_ORDER); i++) {
			SetPageReserved(virt_to_page(tmp));
			tmp += PAGE_SIZE;
		}
	}
	mutex_unlock(&g_addr_lock);
	mutex_unlock(&g_hifc_addr_lock);

	chipif_get_all_pf_dev_info(dev_info, card_id, g_func_handle_array);
	chipif_get_all_pf_dev_info(dev_info, g_hifc_card_id, g_func_handle_array);

	/* Copy the dev_info to user mode */
	if (copy_to_user(para->param.dev_info, dev_info,
@@ -386,7 +386,7 @@ long dbgtool_knl_pf_dev_info_get(struct dbgtool_param *para,
 * @dbgtool_info: the dbgtool info
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_ffm_info_rd(struct dbgtool_param *para,
static long dbgtool_knl_ffm_info_rd(struct dbgtool_param *para,
			     struct dbgtool_k_glb_info *dbgtool_info)
{
	/* Copy the ffm_info to user mode */
@@ -404,7 +404,7 @@ long dbgtool_knl_ffm_info_rd(struct dbgtool_param *para,
 * @para: unused
 * @dbgtool_info: the dbgtool info
 */
void dbgtool_knl_ffm_info_clr(struct dbgtool_param *para,
static void dbgtool_knl_ffm_info_clr(struct dbgtool_param *para,
			      struct dbgtool_k_glb_info *dbgtool_info)
{
	dbgtool_info->ffm->ffm_num = 0;
@@ -416,7 +416,7 @@ void dbgtool_knl_ffm_info_clr(struct dbgtool_param *para,
 * @g_func_handle_array: global function handle
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_msg_to_up(struct dbgtool_param *para,
static long dbgtool_knl_msg_to_up(struct dbgtool_param *para,
			   void **g_func_handle_array)
{
	long ret = 0;
@@ -500,29 +500,29 @@ long dbgtool_knl_msg_to_up(struct dbgtool_param *para,
	return ret;
}

long dbgtool_knl_free_mem(int id)
long hifc_dbgtool_knl_free_mem(int id)
{
	unsigned char *tmp;
	int i;

	mutex_lock(&g_addr_lock);
	mutex_lock(&g_hifc_addr_lock);

	if (!g_card_vir_addr[id]) {
		mutex_unlock(&g_addr_lock);
	if (!g_hifc_card_vir_addr[id]) {
		mutex_unlock(&g_hifc_addr_lock);
		return 0;
	}

	tmp = g_card_vir_addr[id];
	tmp = g_hifc_card_vir_addr[id];
	for (i = 0; i < (1 << DBGTOOL_PAGE_ORDER); i++) {
		ClearPageReserved(virt_to_page(tmp));
		tmp += PAGE_SIZE;
	}

	free_pages((unsigned long)g_card_vir_addr[id], DBGTOOL_PAGE_ORDER);
	g_card_vir_addr[id] = NULL;
	g_card_phy_addr[id] = 0;
	free_pages((unsigned long)g_hifc_card_vir_addr[id], DBGTOOL_PAGE_ORDER);
	g_hifc_card_vir_addr[id] = NULL;
	g_hifc_card_phy_addr[id] = 0;

	mutex_unlock(&g_addr_lock);
	mutex_unlock(&g_hifc_addr_lock);

	return 0;
}
@@ -558,7 +558,7 @@ static long process_dbgtool_cmd(struct dbgtool_param *param, unsigned int cmd,
	unsigned int real_cmd;
	long ret = 0;

	card_id = idx;
	g_hifc_card_id = idx;
	card_info = (struct card_node *)g_card_node_array[idx];
	dbgtool_info = (struct dbgtool_k_glb_info *)card_info->dbgtool_info;

@@ -590,7 +590,7 @@ static long process_dbgtool_cmd(struct dbgtool_param *param, unsigned int cmd,
					    card_info->func_handle_array);
		break;
	case DBGTOOL_CMD_FREE_MEM:
		ret = dbgtool_knl_free_mem(idx);
		ret = hifc_dbgtool_knl_free_mem(idx);
		break;
	default:
		pr_err("Dbgtool cmd(x%x) not support now\n", real_cmd);
@@ -609,7 +609,7 @@ static long process_dbgtool_cmd(struct dbgtool_param *param, unsigned int cmd,
 * @arg: user space
 * Return: 0 - success, negative - failure
 */
long dbgtool_knl_unlocked_ioctl(struct file *pfile,
static long dbgtool_knl_unlocked_ioctl(struct file *pfile,
				unsigned int cmd,
				unsigned long arg)
{
@@ -669,7 +669,7 @@ static struct card_node *get_card_node_by_hwdev(const void *handle)
 * @buf_out: the pointer to outputput buffer
 * @out_size: output buffer size
 */
void ffm_intr_msg_record(void *handle, void *buf_in, u16 in_size,
static void ffm_intr_msg_record(void *handle, void *buf_in, u16 in_size,
			 void *buf_out, u16 *out_size)
{
	struct dbgtool_k_glb_info *dbgtool_info;
@@ -788,12 +788,12 @@ static int dbgtool_create_cdev(void)
}

/**
 * dbgtool_knl_init - dbgtool character device init
 * hifc_dbgtool_knl_init - dbgtool character device init
 * @hwdev: the pointer to hardware device
 * @chip_node: the pointer to card node
 * Return: 0 - success, negative - failure
 */
int dbgtool_knl_init(void *vhwdev, void *chip_node)
int hifc_dbgtool_knl_init(void *vhwdev, void *chip_node)
{
	struct card_node *chip_info = (struct card_node *)chip_node;
	struct dbgtool_k_glb_info *dbgtool_info;
@@ -863,7 +863,7 @@ int dbgtool_knl_init(void *vhwdev, void *chip_node)

	g_dbgtool_init_flag = 1;
	g_dbgtool_ref_cnt = 1;
	mutex_init(&g_addr_lock);
	mutex_init(&g_hifc_addr_lock);

	return 0;

@@ -884,11 +884,11 @@ int dbgtool_knl_init(void *vhwdev, void *chip_node)
}

/**
 * dbgtool_knl_deinit - dbgtool character device deinit
 * hifc_dbgtool_knl_deinit - dbgtool character device deinit
 * @hwdev: the pointer to hardware device
 * @chip_node: the pointer to card node
 */
void dbgtool_knl_deinit(void *vhwdev, void *chip_node)
void hifc_dbgtool_knl_deinit(void *vhwdev, void *chip_node)
{
	struct dbgtool_k_glb_info *dbgtool_info;
	struct card_node *chip_info = (struct card_node *)chip_node;
@@ -924,7 +924,7 @@ void dbgtool_knl_deinit(void *vhwdev, void *chip_node)
	kfree(dbgtool_info);
	chip_info->dbgtool_info = NULL;

	(void)dbgtool_knl_free_mem(id);
	(void)hifc_dbgtool_knl_free_mem(id);

	if (g_dbgtool_init_flag) {
		if ((--g_dbgtool_ref_cnt))
+4 −4
Original line number Diff line number Diff line
@@ -97,11 +97,11 @@ struct dbgtool_param {
#endif
#define DBGTOOL_PAGE_ORDER 10

int dbgtool_knl_init(void *vhwdev, void *chip_node);
void dbgtool_knl_deinit(void *vhwdev, void *chip_node);
int hifc_dbgtool_knl_init(void *vhwdev, void *chip_node);
void hifc_dbgtool_knl_deinit(void *vhwdev, void *chip_node);
int hifc_mem_mmap(struct file *filp, struct vm_area_struct *vma);
void chipif_get_all_pf_dev_info(struct pf_dev_info *dev_info, int card_id,
void hifc_chipif_get_all_pf_dev_info(struct pf_dev_info *dev_info, int card_id,
				void **g_func_handle_array);
long dbgtool_knl_free_mem(int id);
long hifc_dbgtool_knl_free_mem(int id);

#endif
+7 −7
Original line number Diff line number Diff line
@@ -406,7 +406,7 @@ struct hifc_mgmt_status_log {
	const char *log;
};

struct hifc_mgmt_status_log mgmt_status_log[] = {
static struct hifc_mgmt_status_log mgmt_status_log[] = {
	{HIFC_MGMT_STATUS_ERR_PARAM, "Invalid parameter"},
	{HIFC_MGMT_STATUS_ERR_FAILED, "Operation failed"},
	{HIFC_MGMT_STATUS_ERR_PORT, "Invalid port"},
@@ -2139,7 +2139,7 @@ int hifc_func_tmr_bitmap_set(void *hwdev, bool en)
	return 0;
}

int ppf_ht_gpa_set(struct hifc_hwdev *hwdev, struct hifc_page_addr *pg0,
static int ppf_ht_gpa_set(struct hifc_hwdev *hwdev, struct hifc_page_addr *pg0,
		   struct hifc_page_addr *pg1)
{
	struct comm_info_ht_gpa_set ht_gpa_set = {0};
@@ -3211,35 +3211,35 @@ static void pf_hilink_event_handler(void *hwdev, void *pri_handle, u8 cmd,
}

/* pf fault report event */
void pf_fault_event_handler(void *hwdev, void *buf_in, u16 in_size,
static void pf_fault_event_handler(void *hwdev, void *buf_in, u16 in_size,
			    void *buf_out, u16 *out_size)
{
	_event_handler(hwdev, HIFC_MOD_COMM, HIFC_MGMT_CMD_FAULT_REPORT,
		       buf_in, in_size, buf_out, out_size);
}

void mgmt_watchdog_event_handler(void *hwdev, void *buf_in, u16 in_size,
static void mgmt_watchdog_event_handler(void *hwdev, void *buf_in, u16 in_size,
				 void *buf_out, u16 *out_size)
{
	_event_handler(hwdev, HIFC_MOD_COMM, HIFC_MGMT_CMD_WATCHDOG_INFO,
		       buf_in, in_size, buf_out, out_size);
}

void mgmt_fmw_act_event_handler(void *hwdev, void *buf_in, u16 in_size,
static void mgmt_fmw_act_event_handler(void *hwdev, void *buf_in, u16 in_size,
				void *buf_out, u16 *out_size)
{
	_event_handler(hwdev, HIFC_MOD_COMM, HIFC_MGMT_CMD_FMW_ACT_NTC,
		       buf_in, in_size, buf_out, out_size);
}

void mgmt_pcie_dfx_event_handler(void *hwdev, void *buf_in, u16 in_size,
static void mgmt_pcie_dfx_event_handler(void *hwdev, void *buf_in, u16 in_size,
				 void *buf_out, u16 *out_size)
{
	_event_handler(hwdev, HIFC_MOD_COMM, HIFC_MGMT_CMD_PCIE_DFX_NTC,
		       buf_in, in_size, buf_out, out_size);
}

void mgmt_get_mctp_event_handler(void *hwdev, void *buf_in, u16 in_size,
static void mgmt_get_mctp_event_handler(void *hwdev, void *buf_in, u16 in_size,
				 void *buf_out, u16 *out_size)
{
	_event_handler(hwdev, HIFC_MOD_COMM, HIFC_MGMT_CMD_GET_HOST_INFO,
+8 −8
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ MODULE_LICENSE("GPL");

#define MAX_CARD_ID             64
static u64 card_bit_map;
LIST_HEAD(g_hinic_chip_list);
LIST_HEAD(g_hifc_chip_list);

enum hifc_lld_status {
	HIFC_NODE_CHANGE = BIT(0),
@@ -64,7 +64,7 @@ struct hifc_lld_lock {
	atomic_t            dev_ref_cnt;
};

struct hifc_lld_lock g_lld_lock;
static struct hifc_lld_lock g_lld_lock;

#define WAIT_LLD_DEV_HOLD_TIMEOUT        (10 * 60 * 1000) /* 10minutes */
#define WAIT_LLD_DEV_NODE_CHANGED        (10 * 60 * 1000) /* 10minutes */
@@ -455,7 +455,7 @@ static int alloc_chip_node(struct hifc_pcidev *pci_adapter)
		parent_bus_number = pci_adapter->pcidev->bus->parent->number;

	if (parent_bus_number != 0) {
		list_for_each_entry(chip_node, &g_hinic_chip_list, node) {
		list_for_each_entry(chip_node, &g_hifc_chip_list, node) {
			if (chip_node->dp_bus_num == parent_bus_number) {
				pci_adapter->chip_node = chip_node;
				return 0;
@@ -503,7 +503,7 @@ static int alloc_chip_node(struct hifc_pcidev *pci_adapter)
		 "Add new chip %s to global list succeed\n",
		 chip_node->chip_name);

	list_add_tail(&chip_node->node, &g_hinic_chip_list);
	list_add_tail(&chip_node->node, &g_hifc_chip_list);

	INIT_LIST_HEAD(&chip_node->func_list);
	pci_adapter->chip_node = chip_node;
@@ -664,7 +664,7 @@ static int hifc_func_init(struct pci_dev *pdev,
	hifc_sync_time_to_fmw(pci_adapter);

	lld_lock_chip_node();
	err = dbgtool_knl_init(pci_adapter->hwdev, pci_adapter->chip_node);
	err = hifc_dbgtool_knl_init(pci_adapter->hwdev, pci_adapter->chip_node);
	if (err) {
		lld_unlock_chip_node();
		sdk_err(&pdev->dev, "Failed to initialize dbgtool\n");
@@ -700,7 +700,7 @@ static void hifc_func_deinit(struct pci_dev *pdev)

	if (pci_adapter->init_state >= HIFC_INIT_STATE_DBGTOOL_INITED) {
		lld_lock_chip_node();
		dbgtool_knl_deinit(pci_adapter->hwdev, pci_adapter->chip_node);
		hifc_dbgtool_knl_deinit(pci_adapter->hwdev, pci_adapter->chip_node);
		lld_unlock_chip_node();
		hifc_event_unregister(pci_adapter->hwdev);
	}
@@ -738,7 +738,7 @@ static void remove_func(struct hifc_pcidev *pci_adapter)
		lld_lock_chip_node();
		if (pci_adapter->init_state < HIFC_INIT_STATE_HW_IF_INITED)
			list_del(&pci_adapter->node);
		nictool_k_uninit();
		hifc_tool_k_uninit();
		free_chip_node(pci_adapter);
		lld_unlock_chip_node();
		unmapping_bar(pci_adapter);
@@ -802,7 +802,7 @@ static int hifc_hwdev_probe(struct pci_dev *pdev,
			"Failed to add new chip node to global list\n");
		goto alloc_chip_node_fail;
	}
	err = nictool_k_init();
	err = hifc_tool_k_init();
	if (err) {
		sdk_warn(&pdev->dev, "Failed to init nictool");
		goto init_nictool_err;
Loading