[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH] misc/xenmicrocode: Upload /lib/firmware/<some blob> to the hypervisor
- To: "Luis R. Rodriguez" <mcgrof@xxxxxxxxxxxxxxxx>, stefano.stabellini@xxxxxxxxxxxxx
- From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- Date: Tue, 27 Jan 2015 16:25:09 -0500
- Cc: Juergen Gross <jgross@xxxxxxxx>, Michal Marek <mmarek@xxxxxxx>, Jason Douglas <jdouglas@xxxxxxxx>, Takashi Iwai <tiwai@xxxxxxx>, mcgrof@xxxxxxxx, Henrique de Moraes Holschuh <hmh@xxxxxxxxxx>, david.vrabel@xxxxxxxxxx, Jan Beulich <JBeulich@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Borislav Petkov <bp@xxxxxxx>, Olaf Hering <ohering@xxxxxxx>
- Delivery-date: Tue, 27 Jan 2015 21:26:18 +0000
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
On 01/27/2015 03:11 PM, Luis R. Rodriguez wrote:
+ fbuf = mmap(0, len, PROT_READ, MAP_PRIVATE, fd, 0);
+
+ if ((xc_handle = xc_interface_open(0,0,0)) == 0)
+ {
+ fprintf(stderr, "Error opening xc interface: %d (%s)\n",
+ errno, strerror(errno));
+ return 1;
+ }
+
+ if (fbuf == MAP_FAILED)
+ {
+ printf("Could not map: error: %d(%s)\n", errno,
+ strerror(errno));
+ return errno;
+ }
Shouldn't this 'if' block directly follow the mmap()?
+
+ uc = xc_hypercall_buffer_alloc(xc_handle, uc, len);
+ memcpy(uc, fbuf, len);
+
+ set_xen_guest_handle(op.u.microcode.data, uc);
+ op.cmd = XENPF_microcode_update;
+ op.interface_version = XENPF_INTERFACE_VERSION;
+ op.u.microcode.length = len;
+ xc_platform_op(xc_handle, &op);
+
+ xc_hypercall_buffer_free(xc_handle, uc);
+ xc_interface_close(xc_handle);
+
+ if (munmap(fbuf, len))
+ {
+ printf("Could not unmap: %d(%s)\n", errno, strerror(errno));
+ return errno;
+ }
+
+ close(fd);
Given that you never close the file on errors this is not really
necessary. Or you should close it on errors for consistency.
-boris
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|