[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: pgpNVQGIM6Ax1.pgp
Description: PGP signature


[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux