[Skiboot] [PATCH 1/6] FSP: Fix unused result warnings in fsp driver

Vasant Hegde hegdevasant at linux.vnet.ibm.com
Wed Dec 10 03:28:10 AEDT 2014


On 12/09/2014 09:54 PM, Vasant Hegde wrote:
> From: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
>

Stewart , Ben,

Oops. Missed  to cover page.  This patchset fixes all the warning introduced in 
commit c36c5607 (enable warn_unused_result compilation flag for fsp_queue_msg) 
except LED code.. which I will fix it separately along with other fixes in LED 
driver..

-Vasant

> Fix Wunused-result
>
> Signed-off-by: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
> Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
> ---
>   hw/fsp/fsp.c |   69 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
>   1 file changed, 60 insertions(+), 9 deletions(-)
>
> diff --git a/hw/fsp/fsp.c b/hw/fsp/fsp.c
> index c1eb53a..1bc236c 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);
>   }
>
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot
>



More information about the Skiboot mailing list