Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266403
b: refs/heads/master
c: 3de0945
h: refs/heads/master
i:
  266401: ff8f8b8
  266399: e65a638
v: v3
  • Loading branch information
Somnath Kotur authored and David S. Miller committed Oct 3, 2011
1 parent 31ff703 commit fc6b91b
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 16 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: 5a56eb10babbcd7b3796dc3c28c271260aa3608d
refs/heads/master: 3de09455cfcde1898fb435ad425b9ad5d13ed362
5 changes: 5 additions & 0 deletions trunk/drivers/net/ethernet/emulex/benet/be.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@ static inline void *queue_tail_node(struct be_queue_info *q)
return q->dma_mem.va + q->tail * q->entry_size;
}

static inline void *queue_index_node(struct be_queue_info *q, u16 index)
{
return q->dma_mem.va + index * q->entry_size;
}

static inline void queue_head_inc(struct be_queue_info *q)
{
index_inc(&q->head, q->len);
Expand Down
40 changes: 25 additions & 15 deletions trunk/drivers/net/ethernet/emulex/benet/be_cmds.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
#include "be_cmds.h"

/* Must be a power of 2 or else MODULO will BUG_ON */
static int be_get_temp_freq = 32;
static int be_get_temp_freq = 64;

static inline void *embedded_payload(struct be_mcc_wrb *wrb)
{
return wrb->payload.embedded_payload;
}

static void be_mcc_notify(struct be_adapter *adapter)
{
Expand Down Expand Up @@ -85,7 +90,20 @@ static int be_mcc_compl_process(struct be_adapter *adapter,
be_parse_stats(adapter);
adapter->stats_cmd_sent = false;
}
if (compl->tag0 ==
OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES) {
struct be_mcc_wrb *mcc_wrb =
queue_index_node(&adapter->mcc_obj.q,
compl->tag1);
struct be_cmd_resp_get_cntl_addnl_attribs *resp =
embedded_payload(mcc_wrb);
adapter->drv_stats.be_on_die_temperature =
resp->on_die_temperature;
}
} else {
if (compl->tag0 == OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES)
be_get_temp_freq = 0;

if (compl_status == MCC_STATUS_NOT_SUPPORTED ||
compl_status == MCC_STATUS_ILLEGAL_REQUEST)
goto done;
Expand Down Expand Up @@ -404,10 +422,6 @@ int be_cmd_POST(struct be_adapter *adapter)
return -1;
}

static inline void *embedded_payload(struct be_mcc_wrb *wrb)
{
return wrb->payload.embedded_payload;
}

static inline struct be_sge *nonembedded_sgl(struct be_mcc_wrb *wrb)
{
Expand Down Expand Up @@ -1301,10 +1315,13 @@ int be_cmd_get_die_temperature(struct be_adapter *adapter)
{
struct be_mcc_wrb *wrb;
struct be_cmd_req_get_cntl_addnl_attribs *req;
u16 mccq_index;
int status;

spin_lock_bh(&adapter->mcc_lock);

mccq_index = adapter->mcc_obj.q.head;

wrb = wrb_from_mccq(adapter);
if (!wrb) {
status = -EBUSY;
Expand All @@ -1318,16 +1335,9 @@ int be_cmd_get_die_temperature(struct be_adapter *adapter)
be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON,
OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES, sizeof(*req));

status = be_mcc_notify_wait(adapter);
if (!status) {
struct be_cmd_resp_get_cntl_addnl_attribs *resp =
embedded_payload(wrb);
adapter->drv_stats.be_on_die_temperature =
resp->on_die_temperature;
}
/* If IOCTL fails once, do not bother issuing it again */
else
be_get_temp_freq = 0;
wrb->tag1 = mccq_index;

be_mcc_notify(adapter);

err:
spin_unlock_bh(&adapter->mcc_lock);
Expand Down

0 comments on commit fc6b91b

Please sign in to comment.