aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnanth N Mavinakayanahalli <ananth@in.ibm.com>2014-12-09 21:54:11 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2014-12-10 11:50:33 +1100
commit345efe1bda8377b42ac9403cbacf7f9610bdd372 (patch)
treed407a6476ec8a830abba0d0392eb14d620e0ddf1
parent1e15e9979e29572e84b11f38ad2bec0c1171a712 (diff)
downloadskiboot-345efe1bda8377b42ac9403cbacf7f9610bdd372.zip
skiboot-345efe1bda8377b42ac9403cbacf7f9610bdd372.tar.gz
skiboot-345efe1bda8377b42ac9403cbacf7f9610bdd372.tar.bz2
FSP: Fix unused result warnings in fsp driver
Fix Wunused-result Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/fsp/fsp.c69
1 files changed, 60 insertions, 9 deletions
diff --git a/hw/fsp/fsp.c b/hw/fsp/fsp.c
index 6a86352..bc9131e 100644
--- a/hw/fsp/fsp.c
+++ b/hw/fsp/fsp.c
@@ -1060,6 +1060,7 @@ static void fsp_alloc_inbound(struct fsp_msg *msg)
u32 tce_token = 0, act_len = 0;
u8 rc = 0;
void *buf;
+ struct fsp_msg *resp;
prlog(PR_DEBUG, "FSP: Allocate inbound buffer func: %04x len: %d\n",
func_id, len);
@@ -1091,8 +1092,17 @@ static void fsp_alloc_inbound(struct fsp_msg *msg)
reply:
unlock(&fsp_lock);
- fsp_queue_msg(fsp_mkmsg(FSP_RSP_ALLOC_INBOUND | rc,
- 3, 0, tce_token, act_len), fsp_freemsg);
+
+ resp = fsp_mkmsg(FSP_RSP_ALLOC_INBOUND | rc, 3, 0, tce_token, act_len);
+ if (!resp) {
+ prerror("FSP: response message allocation failed\n");
+ return;
+ }
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue response message\n");
+ return;
+ }
}
void *fsp_inbound_buf_from_tce(u32 tce_token)
@@ -1130,6 +1140,7 @@ static bool fsp_local_command(u32 cmd_sub_mod, struct fsp_msg *msg)
{
u32 cmd = 0;
u32 rsp_data = 0;
+ struct fsp_msg *resp;
switch(cmd_sub_mod) {
case FSP_CMD_CONTINUE_IPL:
@@ -1146,13 +1157,29 @@ static bool fsp_local_command(u32 cmd_sub_mod, struct fsp_msg *msg)
* deal with that sort of stuff asynchronously if/when
* we add support for auto-freeing of messages
*/
- fsp_queue_msg(fsp_mkmsg(FSP_RSP_HV_STATE_CHG, 0), fsp_freemsg);
+ resp = fsp_mkmsg(FSP_RSP_HV_STATE_CHG, 0);
+ if (!resp)
+ prerror("FSP: Failed to allocate HV state response\n");
+ else {
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue HV state resp\n");
+ }
+ }
return true;
case FSP_CMD_SP_NEW_ROLE:
/* FSP is assuming a new role */
prlog(PR_INFO, "FSP: FSP assuming new role\n");
- fsp_queue_msg(fsp_mkmsg(FSP_RSP_SP_NEW_ROLE, 0), fsp_freemsg);
+ resp = fsp_mkmsg(FSP_RSP_SP_NEW_ROLE, 0);
+ if (!resp)
+ prerror("FSP: Failed to allocate SP role response\n");
+ else {
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue SP role resp\n");
+ }
+ }
ipl_state |= ipl_got_new_role;
return true;
@@ -1161,8 +1188,15 @@ static bool fsp_local_command(u32 cmd_sub_mod, struct fsp_msg *msg)
/* XXX Do something saner. For now do a synchronous
* response and hard code our capabilities
*/
- fsp_queue_msg(fsp_mkmsg(FSP_RSP_SP_QUERY_CAPS, 4,
- 0x3ff80000, 0, 0, 0), fsp_freemsg);
+ resp = fsp_mkmsg(FSP_RSP_SP_QUERY_CAPS, 4, 0x3ff80000, 0, 0, 0);
+ if (!resp)
+ prerror("FSP: Failed to allocate CAPS response\n");
+ else {
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue CAPS resp\n");
+ }
+ }
ipl_state |= ipl_got_caps;
return true;
case FSP_CMD_FSP_FUNCTNAL:
@@ -1199,7 +1233,15 @@ static bool fsp_local_command(u32 cmd_sub_mod, struct fsp_msg *msg)
cmd = FSP_RSP_CLOSE_HMC_INTF | FSP_STAUS_INVALID_HMC_ID;
rsp_data = msg->data.bytes[0] << 24 | msg->data.bytes[1] << 16;
rsp_data &= 0xffff0000;
- fsp_queue_msg(fsp_mkmsg(cmd, 1, rsp_data), fsp_freemsg);
+ resp = fsp_mkmsg(cmd, 1, rsp_data);
+ if (!resp)
+ prerror("FSP: Failed to allocate HMC close response\n");
+ else {
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue HMC close resp\n");
+ }
+ }
return true;
}
return false;
@@ -1211,6 +1253,7 @@ static void fsp_handle_command(struct fsp_msg *msg)
{
struct fsp_cmdclass *cmdclass = fsp_get_cmdclass(msg);
struct fsp_client *client, *next;
+ struct fsp_msg *resp;
u32 cmd_sub_mod;
if (!cmdclass) {
@@ -1238,8 +1281,16 @@ static void fsp_handle_command(struct fsp_msg *msg)
/* We don't know whether the message expected some kind of
* response, so we send one anyway
*/
- fsp_queue_msg(fsp_mkmsg((cmd_sub_mod & 0xffff00) | 0x008020, 0),
- fsp_freemsg);
+ resp = fsp_mkmsg((cmd_sub_mod & 0xffff00) | 0x008020, 0);
+ if (!resp)
+ prerror("FSP: Failed to allocate default response\n");
+ else {
+ if (fsp_queue_msg(resp, fsp_freemsg)) {
+ fsp_freemsg(resp);
+ prerror("FSP: Failed to queue default response\n");
+ }
+ }
+
free:
fsp_freemsg(msg);
}