mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH] net: usb: asix: make rx_fixup ax_skb buffer aligned
@ 2015-11-22 19:49 Antony Pavlov
  2015-11-23  7:37 ` Sascha Hauer
  0 siblings, 1 reply; 2+ messages in thread
From: Antony Pavlov @ 2015-11-22 19:49 UTC (permalink / raw)
  To: barebox

ax_skb receive buffer unalignment leads to consequent
unalignment data access in network stack routines,
especially in net_checksum().

By-turn unalignment data accesses lead to performance penalty.
Moreover on classic MIPS CPUs without hardware unalignment access
support this leads to undesirable exceptions.

At the moment barebox on MIPS can't parry these unalignment access
exceptions, so the Asix USB Ethernet chips, that need receive
fixup workaround, are completely unusable on MIPS without this patch.

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 drivers/net/usb/asix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
index 4c53a14..ff80398 100644
--- a/drivers/net/usb/asix.c
+++ b/drivers/net/usb/asix.c
@@ -158,7 +158,7 @@ struct asix_rx_fixup_info {
 	u16 size;
 	u16 offset;
 	bool split_head;
-	unsigned char ax_skb[RX_FIXUP_SIZE];
+	unsigned char ax_skb[RX_FIXUP_SIZE] __aligned(2);
 };
 
 struct asix_common_private {
-- 
2.6.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] net: usb: asix: make rx_fixup ax_skb buffer aligned
  2015-11-22 19:49 [PATCH] net: usb: asix: make rx_fixup ax_skb buffer aligned Antony Pavlov
@ 2015-11-23  7:37 ` Sascha Hauer
  0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2015-11-23  7:37 UTC (permalink / raw)
  To: Antony Pavlov; +Cc: barebox

On Sun, Nov 22, 2015 at 10:49:27PM +0300, Antony Pavlov wrote:
> ax_skb receive buffer unalignment leads to consequent
> unalignment data access in network stack routines,
> especially in net_checksum().
> 
> By-turn unalignment data accesses lead to performance penalty.
> Moreover on classic MIPS CPUs without hardware unalignment access
> support this leads to undesirable exceptions.
> 
> At the moment barebox on MIPS can't parry these unalignment access
> exceptions, so the Asix USB Ethernet chips, that need receive
> fixup workaround, are completely unusable on MIPS without this patch.
> 
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>

Applied, thanks

Sascha

> ---
>  drivers/net/usb/asix.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
> index 4c53a14..ff80398 100644
> --- a/drivers/net/usb/asix.c
> +++ b/drivers/net/usb/asix.c
> @@ -158,7 +158,7 @@ struct asix_rx_fixup_info {
>  	u16 size;
>  	u16 offset;
>  	bool split_head;
> -	unsigned char ax_skb[RX_FIXUP_SIZE];
> +	unsigned char ax_skb[RX_FIXUP_SIZE] __aligned(2);
>  };
>  
>  struct asix_common_private {
> -- 
> 2.6.2
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-11-23  7:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-22 19:49 [PATCH] net: usb: asix: make rx_fixup ax_skb buffer aligned Antony Pavlov
2015-11-23  7:37 ` Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox