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: