[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#305330: kernel driver starfire for the Alpha architecture



Package: kernel
Version: 2.4.27-2-generic

When I load the starfire network interface card driver on the Alpha architecture, the following message is displayed on the console:

This driver has not been ported to this 64-bit architecture yet.

This driver worked on the Alpha architecture in the 2.4.18 kernel included in the Woody distribution. Looking at the driver code, this problem seems to exist in 2.4.27 and later 2.4 kernels, as well as the 2.6 kernel.

The fix is simple. The following conditional expression in starfire.c needs to include the Alpha architecture as a 64-bit architecture.

/*
 * This SUCKS.
 * We need a much better method to determine if dma_addr_t is 64-bit.
 */
#if (defined(__i386__) && defined(CONFIG_HIGHMEM) && (LINUX_VERSION_CODE > 0x20500 || defined(CONFIG_HIGHMEM64G))) || defined(__x86_64__) || defined (__ia64__) || defined(__mips64__) || (defined(__mips__) && defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR))

I added an additional "|| defined (__alpha__)" expression and compiled the driver. I tested it on a PC164 running the Sarge 2.4.27-2-generic kernel. Seems to run correctly on the Alpha. All 4 ports of the card worked properly.

This fix needs to make it upstream to the driver maintainer for the Linux kernel. It is broken on the Alpha for all recent 2.4 and 2.6 kernels.

Bob




Reply to: