[OE-core] [PATCH] grub-core: fix endianness problem

Saul Wold sgw at linux.intel.com
Wed Jul 16 16:42:29 UTC 2014


On 07/15/2014 11:15 PM, Shan Hai wrote:
> Fix tftp stalls on loading files bigger than ~32k bug by cherry picking
> a patch from grub upstream.
>
> Upstream-Status: Backport
>

> Signed-off-by: Shan Hai <shan.hai at windriver.com>
> ---
>   .../grub/grub-2.00/fix-endianness-problem.patch    | 46 ++++++++++++++++++++++
>   meta/recipes-bsp/grub/grub_2.00.bb                 |  1 +
>   2 files changed, 47 insertions(+)
>   create mode 100644 meta/recipes-bsp/grub/grub-2.00/fix-endianness-problem.patch
>
> diff --git a/meta/recipes-bsp/grub/grub-2.00/fix-endianness-problem.patch b/meta/recipes-bsp/grub/grub-2.00/fix-endianness-problem.patch
> new file mode 100644
> index 0000000..bb5ba9b
> --- /dev/null
> +++ b/meta/recipes-bsp/grub/grub-2.00/fix-endianness-problem.patch
> @@ -0,0 +1,46 @@
> +grub-core/net/tftp.c: fix endianness problem.
> +
> +	* grub-core/net/tftp.c (ack): Fix endianness problem.
> +	(tftp_receive): Likewise.
> +	Reported by: Michael Davidsaver.
> +
> +Upstream-Status: Submitted [grub-devel at gnu.org]
> +

Is this patch a backport from the upstream or submitted only on the 
mailing list?

Sau!


> +Signed-off-by: Vladimir 'phcoder' Serbinenko <phcoder at gmail.com>
> +
> +diff --git a/ChangeLog b/ChangeLog
> +index 81bdae9..c2f42d5 100644
> +--- a/ChangeLog
> ++++ b/ChangeLog
> +@@ -1,3 +1,9 @@
> ++2012-07-02  Vladimir Serbinenko  <phcoder at gmail.com>
> ++
> ++	* grub-core/net/tftp.c (ack): Fix endianness problem.
> ++	(tftp_receive): Likewise.
> ++	Reported by: Michael Davidsaver.
> ++
> + 2012-06-27  Vladimir Serbinenko  <phcoder at gmail.com>
> +
> + 	* configure.ac: Bump version to 2.00.
> +diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c
> +index 9c70efb..d0f39ea 100644
> +--- a/grub-core/net/tftp.c
> ++++ b/grub-core/net/tftp.c
> +@@ -143,7 +143,7 @@ ack (tftp_data_t data, grub_uint16_t block)
> +
> +   tftph_ack = (struct tftphdr *) nb_ack.data;
> +   tftph_ack->opcode = grub_cpu_to_be16 (TFTP_ACK);
> +-  tftph_ack->u.ack.block = block;
> ++  tftph_ack->u.ack.block = grub_cpu_to_be16 (block);
> +
> +   err = grub_net_send_udp_packet (data->sock, &nb_ack);
> +   if (err)
> +@@ -225,7 +225,7 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)),
> + 	    grub_priority_queue_pop (data->pq);
> +
> + 	    if (file->device->net->packs.count < 50)
> +-	      err = ack (data, tftph->u.data.block);
> ++	      err = ack (data, data->block + 1);
> + 	    else
> + 	      {
> + 		file->device->net->stall = 1;
> diff --git a/meta/recipes-bsp/grub/grub_2.00.bb b/meta/recipes-bsp/grub/grub_2.00.bb
> index 72ed402..36c648e 100644
> --- a/meta/recipes-bsp/grub/grub_2.00.bb
> +++ b/meta/recipes-bsp/grub/grub_2.00.bb
> @@ -22,6 +22,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
>             file://check-if-liblzma-is-disabled.patch \
>             file://fix-issue-with-flex-2.5.37.patch \
>             file://grub-2.00-add-oe-kernel.patch \
> +          file://fix-endianness-problem.patch \
>             "
>
>   SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"
>



More information about the Openembedded-core mailing list