]> git.ipfire.org Git - thirdparty/grub.git/commit
efinet: handle get_status() on buggy firmware properly
authorJosef Bacik <jbacik@fb.com>
Thu, 6 Aug 2015 17:49:46 +0000 (10:49 -0700)
committerAndrei Borzenkov <arvidjaar@gmail.com>
Sun, 9 Aug 2015 13:37:26 +0000 (16:37 +0300)
commit4fe8e6d4a1279b1840171d8e797d911cd8443333
tree99a82c5edfaef850a884d969381fa1a07261cfdf
parentd7a85e69e0c00a6a2ddb2fca2261e0aed8b1d724
efinet: handle get_status() on buggy firmware properly

The EFI spec indicates that get_status() should return the address of the buffer
we passed into transmit to indicate the the buffer was transmitted.  However we
have boxes where the firmware returns some arbitrary address instead, which
makes grub think that we've not sent anything.  So since we have the SNP stuff
opened in exclusive mode just assume any non-NULL txbuf means that our transmit
occurred properly.  This makes grub able to do its networking stuff properly on
our broken firmware.  Thanks,

cc: Peter Jones <pjones@redhat.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
grub-core/net/drivers/efi/efinet.c