git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/bonding: check status of getting link info
[dpdk.git]
/
drivers
/
net
/
hinic
/
base
/
hinic_pmd_mgmt.c
diff --git
a/drivers/net/hinic/base/hinic_pmd_mgmt.c
b/drivers/net/hinic/base/hinic_pmd_mgmt.c
index
bc18765
..
a18e567
100644
(file)
--- a/
drivers/net/hinic/base/hinic_pmd_mgmt.c
+++ b/
drivers/net/hinic/base/hinic_pmd_mgmt.c
@@
-342,8
+342,9
@@
static int hinic_pf_to_mgmt_init(struct hinic_hwdev *hwdev)
hwdev->pf_to_mgmt = pf_to_mgmt;
pf_to_mgmt->hwdev = hwdev;
hwdev->pf_to_mgmt = pf_to_mgmt;
pf_to_mgmt->hwdev = hwdev;
- spin_lock_init(&pf_to_mgmt->async_msg_lock);
- spin_lock_init(&pf_to_mgmt->sync_msg_lock);
+ err = hinic_mutex_init(&pf_to_mgmt->sync_msg_lock, NULL);
+ if (err)
+ goto mutex_init_err;
err = alloc_msg_buf(pf_to_mgmt);
if (err) {
err = alloc_msg_buf(pf_to_mgmt);
if (err) {
@@
-363,6
+364,9
@@
api_cmd_init_err:
free_msg_buf(pf_to_mgmt);
alloc_msg_buf_err:
free_msg_buf(pf_to_mgmt);
alloc_msg_buf_err:
+ hinic_mutex_destroy(&pf_to_mgmt->sync_msg_lock);
+
+mutex_init_err:
kfree(pf_to_mgmt);
return err;
kfree(pf_to_mgmt);
return err;
@@
-378,6
+382,7
@@
static void hinic_pf_to_mgmt_free(struct hinic_hwdev *hwdev)
hinic_api_cmd_free(pf_to_mgmt->cmd_chain);
free_msg_buf(pf_to_mgmt);
hinic_api_cmd_free(pf_to_mgmt->cmd_chain);
free_msg_buf(pf_to_mgmt);
+ hinic_mutex_destroy(&pf_to_mgmt->sync_msg_lock);
kfree(pf_to_mgmt);
}
kfree(pf_to_mgmt);
}
@@
-391,7
+396,7
@@
hinic_pf_to_mgmt_sync(struct hinic_hwdev *hwdev,
u32 timeo;
int err, i;
u32 timeo;
int err, i;
-
spin
_lock(&pf_to_mgmt->sync_msg_lock);
+
pthread_mutex
_lock(&pf_to_mgmt->sync_msg_lock);
SYNC_MSG_ID_INC(pf_to_mgmt);
recv_msg = &pf_to_mgmt->recv_resp_msg_from_mgmt;
SYNC_MSG_ID_INC(pf_to_mgmt);
recv_msg = &pf_to_mgmt->recv_resp_msg_from_mgmt;
@@
-450,7
+455,7
@@
hinic_pf_to_mgmt_sync(struct hinic_hwdev *hwdev,
unlock_sync_msg:
if (err && out_size)
*out_size = 0;
unlock_sync_msg:
if (err && out_size)
*out_size = 0;
-
spin
_unlock(&pf_to_mgmt->sync_msg_lock);
+
pthread_mutex
_unlock(&pf_to_mgmt->sync_msg_lock);
return err;
}
return err;
}
@@
-497,13
+502,13
@@
int hinic_msg_to_mgmt_no_ack(void *hwdev, enum hinic_mod_type mod, u8 cmd,
return err;
}
return err;
}
-
spin
_lock(&pf_to_mgmt->sync_msg_lock);
+
pthread_mutex
_lock(&pf_to_mgmt->sync_msg_lock);
err = send_msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
HINIC_MSG_NO_ACK, HINIC_MSG_DIRECT_SEND,
MSG_NO_RESP);
err = send_msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
HINIC_MSG_NO_ACK, HINIC_MSG_DIRECT_SEND,
MSG_NO_RESP);
-
spin
_unlock(&pf_to_mgmt->sync_msg_lock);
+
pthread_mutex
_unlock(&pf_to_mgmt->sync_msg_lock);
return err;
}
return err;
}
@@
-713,7
+718,7
@@
int hinic_aeq_poll_msg(struct hinic_eq *eq, u32 timeout, void *param)
}
if (timeout != 0)
}
if (timeout != 0)
-
rte_delay_ms(1
);
+
usleep(1000
);
} while (time_before(jiffies, end));
if (err != HINIC_OK) /*poll time out*/
} while (time_before(jiffies, end));
if (err != HINIC_OK) /*poll time out*/