diff -Naurp -X /home/jbarnes/dontdiff 290-ioctl-additions.patch/arch/ia64/configs/sn2_defconfig 300-tg3-unaligned.patch/arch/ia64/configs/sn2_defconfig --- 290-ioctl-additions.patch/arch/ia64/configs/sn2_defconfig Tue Dec 30 15:11:10 2003 +++ 300-tg3-unaligned.patch/arch/ia64/configs/sn2_defconfig Tue Dec 30 15:30:05 2003 @@ -307,6 +307,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 290-ioctl-additions.patch/drivers/net/Kconfig 300-tg3-unaligned.patch/drivers/net/Kconfig --- 290-ioctl-additions.patch/drivers/net/Kconfig Wed Dec 17 18:59:28 2003 +++ 300-tg3-unaligned.patch/drivers/net/Kconfig Tue Dec 30 15:29:56 2003 @@ -2017,6 +2017,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 290-ioctl-additions.patch/drivers/net/tg3.c 300-tg3-unaligned.patch/drivers/net/tg3.c --- 290-ioctl-additions.patch/drivers/net/tg3.c Tue Dec 30 15:14:46 2003 +++ 300-tg3-unaligned.patch/drivers/net/tg3.c Tue Dec 30 15:29:56 2003 @@ -2257,7 +2257,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,