[sparc64] 2.6.18 unaligned accesses in eth1394

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Attachment: pgpaaQc63UiIq.pgp
Description: PGP signature


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux