mirror of https://gitee.com/openkylin/linux.git
net: hns3: add pointer checking at the beginning of the exported functions.
These functions are exported, add pointer checking at the beginning can make them more safe. Signed-off-by: Yonglong Liu <liuyonglong@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2fb44dd0e8
commit
bdd59d6611
|
@ -32,6 +32,9 @@ static bool hnae3_client_match(enum hnae3_client_type client_type,
|
|||
void hnae3_set_client_init_flag(struct hnae3_client *client,
|
||||
struct hnae3_ae_dev *ae_dev, int inited)
|
||||
{
|
||||
if (!client || !ae_dev)
|
||||
return;
|
||||
|
||||
switch (client->type) {
|
||||
case HNAE3_CLIENT_KNIC:
|
||||
hnae3_set_bit(ae_dev->flag, HNAE3_KNIC_CLIENT_INITED_B, inited);
|
||||
|
@ -109,6 +112,9 @@ int hnae3_register_client(struct hnae3_client *client)
|
|||
struct hnae3_ae_dev *ae_dev;
|
||||
int ret = 0;
|
||||
|
||||
if (!client)
|
||||
return -ENODEV;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
/* one system should only have one client for every type */
|
||||
list_for_each_entry(client_tmp, &hnae3_client_list, node) {
|
||||
|
@ -141,6 +147,9 @@ void hnae3_unregister_client(struct hnae3_client *client)
|
|||
{
|
||||
struct hnae3_ae_dev *ae_dev;
|
||||
|
||||
if (!client)
|
||||
return;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
/* un-initialize the client on every matched port */
|
||||
list_for_each_entry(ae_dev, &hnae3_ae_dev_list, node) {
|
||||
|
@ -163,6 +172,9 @@ void hnae3_register_ae_algo(struct hnae3_ae_algo *ae_algo)
|
|||
struct hnae3_client *client;
|
||||
int ret = 0;
|
||||
|
||||
if (!ae_algo)
|
||||
return;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
|
||||
list_add_tail(&ae_algo->node, &hnae3_ae_algo_list);
|
||||
|
@ -209,6 +221,9 @@ void hnae3_unregister_ae_algo(struct hnae3_ae_algo *ae_algo)
|
|||
struct hnae3_ae_dev *ae_dev;
|
||||
struct hnae3_client *client;
|
||||
|
||||
if (!ae_algo)
|
||||
return;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
/* Check if there are matched ae_dev */
|
||||
list_for_each_entry(ae_dev, &hnae3_ae_dev_list, node) {
|
||||
|
@ -245,6 +260,9 @@ int hnae3_register_ae_dev(struct hnae3_ae_dev *ae_dev)
|
|||
struct hnae3_client *client;
|
||||
int ret = 0;
|
||||
|
||||
if (!ae_dev)
|
||||
return -ENODEV;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
|
||||
list_add_tail(&ae_dev->node, &hnae3_ae_dev_list);
|
||||
|
@ -307,6 +325,9 @@ void hnae3_unregister_ae_dev(struct hnae3_ae_dev *ae_dev)
|
|||
struct hnae3_ae_algo *ae_algo;
|
||||
struct hnae3_client *client;
|
||||
|
||||
if (!ae_dev)
|
||||
return;
|
||||
|
||||
mutex_lock(&hnae3_common_lock);
|
||||
/* Check if there are matched ae_algo */
|
||||
list_for_each_entry(ae_algo, &hnae3_ae_algo_list, node) {
|
||||
|
|
Loading…
Reference in New Issue