|
@@ -32,18 +32,11 @@ void be_mcc_notify(struct beiscsi_hba *phba)
|
|
unsigned int alloc_mcc_tag(struct beiscsi_hba *phba)
|
|
unsigned int alloc_mcc_tag(struct beiscsi_hba *phba)
|
|
{
|
|
{
|
|
unsigned int tag = 0;
|
|
unsigned int tag = 0;
|
|
- unsigned int num = 0;
|
|
|
|
|
|
|
|
-mcc_tag_rdy:
|
|
|
|
if (phba->ctrl.mcc_tag_available) {
|
|
if (phba->ctrl.mcc_tag_available) {
|
|
tag = phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index];
|
|
tag = phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index];
|
|
phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index] = 0;
|
|
phba->ctrl.mcc_tag[phba->ctrl.mcc_alloc_index] = 0;
|
|
phba->ctrl.mcc_numtag[tag] = 0;
|
|
phba->ctrl.mcc_numtag[tag] = 0;
|
|
- } else {
|
|
|
|
- udelay(100);
|
|
|
|
- num++;
|
|
|
|
- if (num < mcc_timeout)
|
|
|
|
- goto mcc_tag_rdy;
|
|
|
|
}
|
|
}
|
|
if (tag) {
|
|
if (tag) {
|
|
phba->ctrl.mcc_tag_available--;
|
|
phba->ctrl.mcc_tag_available--;
|