[PATCH v2 5/8] soc: qcom: smd: Remove use of VLAIS

Bjorn Andersson bjorn.andersson at sonymobile.com
Mon Sep 21 18:16:51 PDT 2015


On Wed 02 Sep 15:46 PDT 2015, Stephen Boyd wrote:

> Usage of VLAIS prevents clang from compiling this file, and it
> also opens us to the possibility of allocating a large structure
> on the stack to the point that we blow past the limit of the
> kernel stack. Remove the VLAIS and allocate a structure on the
> heap with kmalloc so that we're safer and more clang friendly.
> 
[..]
> diff --git a/drivers/soc/qcom/smd-rpm.c b/drivers/soc/qcom/smd-rpm.c
[..]
>  	struct {
>  		struct qcom_rpm_header hdr;
>  		struct qcom_rpm_request req;
> -		u8 payload[count];
> -	} pkt;
> +		u8 payload[];
> +	} *pkt;
> +	size_t size = sizeof(*pkt) + count;
>  
[..]
>  
> -	ret = qcom_smd_send(rpm->rpm_channel, &pkt, sizeof(pkt));
> +	ret = qcom_smd_send(rpm->rpm_channel, pkt, sizeof(*pkt));

It would be good if we actually include the request in the packet and
not just the headers :)

s/sizeof(*pkt)/size/

Sorry for not spotting this before, made my device not boot now that it
showed up in linux-next. And oddly the 8974 RPM seems to just ack the
messages, without any indication of the request being truncated...


@Andy, I presume this is only on your -next, can you update the commit?
Or do you want a patch for it?

With this tiny change what we have on next-20150921 seems to work fine.

Regards,
Bjorn



More information about the linux-arm-kernel mailing list