disk/pata: Suppress error message "no device connected"

This error message comes from the grub_print_error() in
grub_pata_device_initialize(), which does not pass on the error, and is
raised in check_device(). The function check_device() needs to return this
as an error because check_device() is also used in grub_pata_open(), which
does pass on this error to indicate that the device can not be used.

This is actually not an error when displayed by grub_pata_device_initialize()
because it just indicates that there are no pata devices seen. This may be
confusing to end users who do not have pata devices yet are loading the
pata module (perhaps implicitly via nativedisk). This also causes unnecessary
output which may need to be accounted for in functional testing.

Instead print to the debug log when check_device() raises this "error" and
pop the error from the error stack. If there is another error on the stack
then print the error stack as those should be real errors.

Signed-off-by: Glenn Washburn <development@efficientek.com>
Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Glenn Washburn 2021-03-01 13:36:28 -06:00 committed by Daniel Kiper
parent bd8b36d8aa
commit 308b0495e1

View File

@ -331,6 +331,12 @@ grub_pata_device_initialize (int port, int device, int addr)
*devp = dev;
err = check_device (dev);
if (err == GRUB_ERR_UNKNOWN_DEVICE)
{
grub_dprintf ("pata", "%s\n", grub_errmsg);
grub_error_pop ();
}
if (err)
grub_print_error ();