Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 198626
b: refs/heads/master
c: dd131e7
h: refs/heads/master
v: v3
  • Loading branch information
Sarveshwar Bandi authored and David S. Miller committed May 25, 2010
1 parent c0044eb commit b369db9
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 563b04671017ea00ba563ebeebdc36bce79b1b60
refs/heads/master: dd131e76e562fa0c6f9dd53130e8d08d39a0b62c
2 changes: 2 additions & 0 deletions trunk/drivers/net/benet/be.h
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,8 @@ struct be_adapter {
u8 port_type;
u8 transceiver;
u8 generation; /* BladeEngine ASIC generation */
u32 flash_status;
struct completion flash_compl;

bool sriov_enabled;
u32 vf_if_handle[BE_MAX_VF];
Expand Down
19 changes: 17 additions & 2 deletions trunk/drivers/net/benet/be_cmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ static int be_mcc_compl_process(struct be_adapter *adapter,

compl_status = (compl->status >> CQE_STATUS_COMPL_SHIFT) &
CQE_STATUS_COMPL_MASK;

if ((compl->tag0 == OPCODE_COMMON_WRITE_FLASHROM) &&
(compl->tag1 == CMD_SUBSYSTEM_COMMON)) {
adapter->flash_status = compl_status;
complete(&adapter->flash_compl);
}

if (compl_status == MCC_STATUS_SUCCESS) {
if (compl->tag0 == OPCODE_ETH_GET_STATISTICS) {
struct be_cmd_resp_get_stats *resp =
Expand Down Expand Up @@ -1417,6 +1424,7 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
int status;

spin_lock_bh(&adapter->mcc_lock);
adapter->flash_status = 0;

wrb = wrb_from_mccq(adapter);
if (!wrb) {
Expand All @@ -1428,6 +1436,7 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,

be_wrb_hdr_prepare(wrb, cmd->size, false, 1,
OPCODE_COMMON_WRITE_FLASHROM);
wrb->tag1 = CMD_SUBSYSTEM_COMMON;

be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON,
OPCODE_COMMON_WRITE_FLASHROM, cmd->size);
Expand All @@ -1439,10 +1448,16 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
req->params.op_code = cpu_to_le32(flash_opcode);
req->params.data_buf_size = cpu_to_le32(buf_size);

status = be_mcc_notify_wait(adapter);
be_mcc_notify(adapter);
spin_unlock_bh(&adapter->mcc_lock);

if (!wait_for_completion_timeout(&adapter->flash_compl,
msecs_to_jiffies(12000)))
status = -1;
else
status = adapter->flash_status;

err:
spin_unlock_bh(&adapter->mcc_lock);
return status;
}

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2319,6 +2319,7 @@ static int be_ctrl_init(struct be_adapter *adapter)
spin_lock_init(&adapter->mcc_lock);
spin_lock_init(&adapter->mcc_cq_lock);

init_completion(&adapter->flash_compl);
pci_save_state(adapter->pdev);
return 0;

Expand Down

0 comments on commit b369db9

Please sign in to comment.