On Thu, Mar 17, 2016 at 04:32:56PM +0800, Xiao Guangrong wrote:
> +static void
> +nvdimm_dsm_function0(uint32_t supported_func, hwaddr dsm_mem_addr)
> +{
> + NvdimmDsmFunc0Out func0 = {
> + .len = cpu_to_le32(sizeof(func0)),
> + .supported_func = cpu_to_le32(supported_func),
> + };
> + cpu_physical_memory_write(dsm_mem_addr, &func0, sizeof(func0));
> +}
> +
> +static void
> +nvdimm_dsm_no_payload(uint32_t func_ret_status, hwaddr dsm_mem_addr)
> +{
> + NvdimmDsmFuncNoPayloadOut out = {
> + .len = cpu_to_le32(sizeof(out)),
> + .func_ret_status = cpu_to_le32(func_ret_status),
> + };
> + cpu_physical_memory_write(dsm_mem_addr, &out, sizeof(out));
> +}
> +
> +static void nvdimm_dsm_root(NvdimmDsmIn *in, hwaddr dsm_mem_addr)
> +{
> + /*
> + * function 0 is called to inquire which functions are supported by
> + * OSPM
> + */
> + if (!in->function) {
> + return nvdimm_dsm_function0(0 /* No function supported other
> + than function 0 */, dsm_mem_addr);The return type is void so "return foo()" looks strange. I went back and double-checked function prototypes because I was surprised by this line of code. Please use the conventional "foo(); return;" for void return instead.
signature.asc
Description: PGP signature
