diff -urN 2.4.6pre5/arch/i386/kernel/i386_ksyms.c 3c59x/arch/i386/kernel/i386_ksyms.c --- 2.4.6pre5/arch/i386/kernel/i386_ksyms.c Sat May 26 04:03:35 2001 +++ 3c59x/arch/i386/kernel/i386_ksyms.c Sun Jun 24 22:11:14 2001 @@ -164,3 +164,9 @@ #ifdef CONFIG_X86_PAE EXPORT_SYMBOL(empty_zero_page); #endif + +#ifdef CONFIG_HIGHMEM +#include +EXPORT_SYMBOL(highstart_pfn); +EXPORT_SYMBOL(highend_pfn); +#endif diff -urN 2.4.6pre5/drivers/net/3c59x.c 3c59x/drivers/net/3c59x.c --- 2.4.6pre5/drivers/net/3c59x.c Thu Jun 21 08:03:41 2001 +++ 3c59x/drivers/net/3c59x.c Sun Jun 24 22:10:17 2001 @@ -1257,7 +1257,14 @@ #ifndef CONFIG_HIGHMEM /* Actually, it still should work with iommu. */ dev->features |= NETIF_F_SG; +#elif defined(__i386__) + dev->features |= highstart_pfn==highend_pfn ? NETIF_F_SG : 0; +#elif defined(__ppc__) +#warn add your highmem test. #endif + if (!(dev->features & NETIF_F_SG)) + printk(KERN_WARNING "warning: zero copy support has been disabled.\n"); + if (((hw_checksums[card_idx] == -1) && (vp->drv_flags & HAS_HWCKSM)) || (hw_checksums[card_idx] == 1)) { dev->features |= NETIF_F_IP_CSUM;