[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061005211543.GA18539@ele.uri.edu>
Date: Thu, 5 Oct 2006 17:15:44 -0400
From: Will Simoneau <simoneau@....uri.edu>
To: sparclinux@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Subject: [sparc64] 2.6.18 unaligned accesses in eth1394
Here's a pair of unaligned accesses I found playing with the eth1394 driver:
Kernel unaligned access at TPC[102c8190] ether1394_tx+0xf8/0x600 [eth1394]
Kernel unaligned access at TPC[10162c8c] ether1394_data_handler+0x914/0x1000 [eth1394]
The first one I seem to be able to fix by adding a get_unaligned() at
lines 1679-1680 of eth1394.c around eth->h_dest; the second one seems to
be triggered by this code:
(gdb) list *ether1394_data_handler+0x914
0xc94 is in ether1394_data_handler (drivers/ieee1394/eth1394.c:1264).
1259 priv->stats.rx_dropped++;
1260 dev_kfree_skb_any(skb);
1261 goto bad_proto;
1262 }
1263
1264 if (netif_rx(skb) == NET_RX_DROP) {
1265 priv->stats.rx_errors++;
1266 priv->stats.rx_dropped++;
1267 goto bad_proto;
1268 }
Unaligned accesses caused by netif_rx seem to have happened before on
mips long ago (according to google). I suspect nobody has ever tried
eth1394 on sparc64 ;-)
eth1394 seems to work fine otherwise, I can plug a firewire hdd and a
laptop with firewire into the sparc and everything works OK. I get
~13MB/sec network throughput from laptop -> sparc (the sparc's CPU is
hitting 100% system time), I suspect it would be a lot faster with the
alignment problem fixed.
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists