David S. Miller wrote:
Why are you depending upon MCKINLEY? Don't all ia64 cpus
give traps for unaligned memory accesses?
That is what this CONFIG option tells the whole kernel.
OK, I made it ALL IA64, but I only know for sure about Itanium2's
--- linux/drivers/net/tg3.c 2003-11-10 18:28:10.000000000 -0600
+++ patch/drivers/net/tg3.c 2003-11-10 18:58:35.000000000 -0600
@@ -2257,7 +2257,11 @@
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,
--- linux/arch/ia64/Kconfig 2003-10-25 13:44:46.000000000 -0500
+++ patch/arch/ia64/Kconfig 2003-11-11 15:37:58.000000000 -0600
@@ -468,6 +468,11 @@
agent" (/sbin/hotplug) to load modules and set up software needed
to use devices as you hotplug them.
+config CONFIG_UNALIGNED_EXPENSIVE
+ bool "Use kernel aligned buffers"
+ depends on IA64
+ default y
+
source "drivers/pci/hotplug/Kconfig"
source "drivers/pcmcia/Kconfig"
--
John Partridge
Silicon Graphics Inc
Tel: 651-683-3428
Vnet: 233-3428
E-Mail: johnip@xxxxxxx
|