Patchwork grub-core: fix endianness problem

login
register
mail settings
Submitter Shan Hai
Date July 16, 2014, 6:15 a.m.
Message ID <1405491353-23636-1-git-send-email-shan.hai@windriver.com>
Download mbox | patch
Permalink /patch/75737/
State New
Headers show

Comments

Shan Hai - July 16, 2014, 6:15 a.m.
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@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
Saul Wold - July 16, 2014, 4:42 p.m.
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@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@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@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@gmail.com>
> ++
> ++	* grub-core/net/tftp.c (ack): Fix endianness problem.
> ++	(tftp_receive): Likewise.
> ++	Reported by: Michael Davidsaver.
> ++
> + 2012-06-27  Vladimir Serbinenko  <phcoder@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"
>
Shan Hai - July 18, 2014, 1:40 a.m.
On 07/17/2014 12:42 AM, Saul Wold wrote:
> 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@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@gnu.org]
>> +
>
> Is this patch a backport from the upstream or submitted only on the 
> mailing list?
>

Hi Saul,

This patch a backport from the upstream.

Thans
Shan Hai

> Sau!
>
>
>> +Signed-off-by: Vladimir 'phcoder' Serbinenko <phcoder@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@gmail.com>
>> ++
>> ++    * grub-core/net/tftp.c (ack): Fix endianness problem.
>> ++    (tftp_receive): Likewise.
>> ++    Reported by: Michael Davidsaver.
>> ++
>> + 2012-06-27  Vladimir Serbinenko  <phcoder@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"
>>

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@gnu.org]
+
+Signed-off-by: Vladimir 'phcoder' Serbinenko <phcoder@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@gmail.com>
++
++	* grub-core/net/tftp.c (ack): Fix endianness problem.
++	(tftp_receive): Likewise.
++	Reported by: Michael Davidsaver.
++
+ 2012-06-27  Vladimir Serbinenko  <phcoder@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"