2006-10-24
Hi
We here at CCII Systems are probably the only company in the world still
actively involved with FDDI. The Linux Syskonnect FDDI driver needs a
patch. I have no idea who to speak to, but the guys over at osdl said I
must ask here.
We recently had two separate customers ask us why the FDDI driver in
the Linux kernel version 2.6.x does not work properly.
The first customer eventually found that the driver does not work when
the kernel is configured to use 64 bit memory addressing. This would
obviously have to do with the pointer sizes used by the driver structure.
They did not need 64 bit addressing, and solved their problem by
reconfiguring their kernel for 32 bit addressing.
Is it possible to configure things so that this issue is highlighted
when the kernel is built?
The second customer's problem could not be solved by the above. They
eventually found that kernel 2.6 (specifically, 2.6.8) uses memory
mapping, and that a check in the driver caused an exception because
of the length of the PCI region being 2048 and not 16384 (0x4000).
>//2.6.8 version from skfddi.c
>
>#ifdef MEM_MAPPED_IO
>
>if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) {
> printk(KERN_ERR "skfp: region is not an MMIO resource\n");
> err = -EIO;
> goto err_out1;
>}
>
>port = pci_resource_start(pdev, 0);
>len = pci_resource_len(pdev, 0);
>if (len < 0x4000) {
> printk(KERN_ERR "skfp: Invalid PCI region size: %lu\n", len);
> err = -EIO;
> goto err_out1;
>}
>
>#else
The customer reports that changing the compare to
>if (len < 2048) {
fixed the problem for them.
Can this patch be applied to the kernel please?
Regards
Wouter
--
Wouter de Waal Cell : +27 82 893 8042
Development Manager - Board-Level Products Phone : +27 21 683 5490
CCII Systems, Kenilworth, South Africa Fax : +27 21 683 5435
Ar Maw, 2006-10-24 am 13:19 +0200, ysgrifennodd Wouter de Waal:
> We here at CCII Systems are probably the only company in the world still
> actively involved with FDDI. The Linux Syskonnect FDDI driver needs a
> patch. I have no idea who to speak to, but the g over at osdl said I
> must ask here.
This is the right starting point. There is a network development list
that might be better but I think essentially you might as well own the
driver if nobody else is laying any claim to it any more.
> The second customer's problem could not be solved by the above. They
> eventually found that kernel 2.6 (specifically, 2.6.8) uses memory
> mapping, and that a check in the driver caused an exception because
> of the length of the PCI region being 2048 and not 16384 (0x4000).
> The customer reports that changing the compare to
>
> >if (len < 2048) {
>
> fixed the problem for them.
>
> Can this patch be applied to the kernel please?
I suspect the correct check is (len < FP_IO_LEN)
Either you or your customer can send patches versus a current kernel to
update the driver.
Alan
On Tue, 2006-10-24 at 13:19 +0200, Wouter de Waal wrote:
> The first customer eventually found that the driver does not work when
> the kernel is configured to use 64 bit memory addressing. This would
> obviously have to do with the pointer sizes used by the driver
> structure.
>
> They did not need 64 bit addressing, and solved their problem by
> reconfiguring their kernel for 32 bit addressing.
>
> Is it possible to configure things so that this issue is highlighted
> when the kernel is built?
Most drivers will work on 64 bit without modification. If it's not
possible to make the driver 64 bit clean, then make it depend on
!X86_64 (and any other 64 bit platform the hardware might be used on).
Lee
On Tue, 24 Oct 2006, Lee Revell wrote:
> Most drivers will work on 64 bit without modification. If it's not
> possible to make the driver 64 bit clean, then make it depend on
> !X86_64 (and any other 64 bit platform the hardware might be used on).
Actually !64BIT is probably more appropriate.
Maciej