|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 16/17] libxl: build a device tree for ARM guests
Ian Campbell writes ("[PATCH v4 16/17] libxl: build a device tree for ARM
guests"):
> Uses xc_dom_devicetree_mem which was just added. The call to this needs to be
> carefully sequenced to be after xc_dom_parse_image (so we can tell which kind
> of guest we are building, although we don't use this yet) and before
> xc_dom_mem_init which tries to decide where to place the FDT in guest RAM.
>
> Removes libxl_noarch which would only have been used by IA64 after this
> change. Remove IA64 as part of this patch.
>
> There is no attempt to expose this as a configuration setting for the user.
>
> Includes a debug hook to dump the dtb to a file for inspection.
...
The debug dump function has an anomalous error handling style[1] and
still leaks fd under some conditions.
([1] Well, actually it has the mistake-prone error handling style
found in the hypervisor, libxc, etc.)
> +static void debug_dump_fdt(libxl__gc *gc, void *fdt)
> +{
> + int fd, rc;
You mean
int fd=-1, rc, r;
We use "rc" inside libxl for a libxl error code.
> + const char *dtb = getenv("LIBXL_DEBUG_DUMP_DTB");
> +
> + if (!dtb)
> + return;
goto out;
> + fd = open(dtb, O_CREAT|O_TRUNC|O_WRONLY, 0666);
> + if (fd < 0) {
> + LOGE(DEBUG, "cannot open %s for LIBXL_DEBUG_DUMP_DTB", dtb);
> + return;
goto out;
> + }
> +
> + rc = libxl_write_exactly(CTX, fd, fdt, fdt_totalsize(fdt), dtb, "dtb");
> + if (rc < 0) {
> + LOG(DEBUG, "unable to write DTB debug dump output %d", rc);
> + return;
goto out;
You probably don't need the LOG because libxl_write_exactly already
logs.
> + }
> +
out:
> + rc = close(fd);
> + if (rc < 0) {
> + LOGE(DEBUG, "unable to close DTB debug dump output");
and this return is not needed:
> + return;
> + }
> +}
Apart from that, everything is fine.
(Sorry to find problems only in an unimportant debug function...)
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |