svn commit: r337231 - head/stand/efi/loader

Toomas Soome tsoome at me.com
Fri Aug 3 08:47:12 UTC 2018



> On 3 Aug 2018, at 11:32, Warner Losh <imp at bsdimp.com> wrote:
> 
> Any reason why efipart_inithandles() should even return an error in this case? Seems to cause us nothing but trouble so we have to filter some, but not all errors which strikes me as a bad design. We should only return errors for real errors, like not having enough memory for the arrays we need.
> 
> Warner

The current code does return the efi error translated to errno and does leave the filtering/notification for caller. I guess it is good idea to filter cases like no devices in-place, however, the fun is with out of memory — at that stage (we even haven't started to probe for disks, so we do not have even interpreter) it basically means loader.efi failure.

rgds,
toomas


> 
> On Fri, Aug 3, 2018 at 1:59 AM, Toomas Soome <tsoome at freebsd.org <mailto:tsoome at freebsd.org>> wrote:
> Author: tsoome
> Date: Fri Aug  3 07:59:29 2018
> New Revision: 337231
> URL: https://svnweb.freebsd.org/changeset/base/337231 <https://svnweb.freebsd.org/changeset/base/337231>
> 
> Log:
>   loader.efi: clean up misleading noise from missing block devices
> 
>   If there are no block devices, there is no need to printout
>   error (ENOENT).
> 
>   In case of netboot, our image path has no block device, no need to make
>   noise about it.
> 
> Modified:
>   head/stand/efi/loader/main.c
> 
> Modified: head/stand/efi/loader/main.c
> ==============================================================================
> --- head/stand/efi/loader/main.c        Fri Aug  3 02:51:37 2018        (r337230)
> +++ head/stand/efi/loader/main.c        Fri Aug  3 07:59:29 2018        (r337231)
> @@ -545,8 +545,6 @@ find_currdev(EFI_LOADED_IMAGE *img, bool do_bootmgr, b
>                                         return (0);
>                         }
>                 }
> -       } else {
> -               printf("Can't find device by handle\n");
>         }
> 
>         /*
> @@ -862,9 +860,9 @@ main(int argc, CHAR16 *argv[])
>          * march through the device switch probing for things.
>          */
>         i = efipart_inithandles();
> -       if (i != 0) {
> +       if (i != 0 && i != ENOENT) {
>                 printf("efipart_inithandles failed with ERRNO %d, expect "
> -                   "failures", i);
> +                   "failures\n", i);
>         }
> 
>         for (i = 0; devsw[i] != NULL; i++)
> 
> 



More information about the svn-src-head mailing list