diff -Naurp -X /home/jbarnes/dontdiff 250-node-history.patch/arch/ia64/configs/sn2_defconfig 300-tg3-unaligned.patch/arch/ia64/configs/sn2_defconfig --- 250-node-history.patch/arch/ia64/configs/sn2_defconfig Sun Jan 25 18:29:51 2004 +++ 300-tg3-unaligned.patch/arch/ia64/configs/sn2_defconfig Thu Jan 29 10:42:48 2004 @@ -360,6 +360,7 @@ CONFIG_NETDEVICES=y # CONFIG_SIS190 is not set # CONFIG_SK98LIN is not set CONFIG_TIGON3=y +CONFIG_UNALIGNED_EXPENSIVE=y # # Ethernet (10000 Mbit) diff -Naurp -X /home/jbarnes/dontdiff 250-node-history.patch/drivers/net/Kconfig 300-tg3-unaligned.patch/drivers/net/Kconfig --- 250-node-history.patch/drivers/net/Kconfig Thu Jan 29 10:18:57 2004 +++ 300-tg3-unaligned.patch/drivers/net/Kconfig Thu Jan 29 10:42:48 2004 @@ -2057,6 +2057,12 @@ config TIGON3 To compile this driver as a module, choose M here: the module will be called tg3. This is recommended. + +config UNALIGNED_EXPENSIVE + bool + depends on TIGON3 && IA64 + default y + endmenu # diff -Naurp -X /home/jbarnes/dontdiff 250-node-history.patch/drivers/net/tg3.c 300-tg3-unaligned.patch/drivers/net/tg3.c --- 250-node-history.patch/drivers/net/tg3.c Thu Jan 29 10:34:20 2004 +++ 300-tg3-unaligned.patch/drivers/net/tg3.c Thu Jan 29 10:42:48 2004 @@ -2261,7 +2261,11 @@ static int tg3_rx(struct tg3 *tp, int bu len = ((desc->idx_len & RXD_LEN_MASK) >> RXD_LEN_SHIFT) - 4; /* omit crc */ - if (len > RX_COPY_THRESHOLD) { + if (len > RX_COPY_THRESHOLD +#if defined(CONFIG_UNALIGNED_EXPENSIVE) + && tp->rx_offset == 2 +#endif + ) { int skb_size; skb_size = tg3_alloc_rx_skb(tp, opaque_key,