ieee1394: ohci.c - Problem with PAGE_SIZE and buf_stride
I have a Problem with the ohci1394 driver!
I have a 3-port IEEE1394-b PCI card with a AVLAB Technologies chip (Vendor ID 0x000108).
I loaded the kernel 2.6.4 for suse 9.0 and the driver IEEE1394 sources from the linux1394.org site.
I compiled my kernel and it is running. Then replaced the driver sources with the files from the 1394-site, builded and installed the modules.
I tried to create a IP-over1394 connection with a XP platform.
With “ifconfig eth1 18.104.22.168” I tried to create a eth1 interface.
I got an error message in my shell: SIOCSIFFLAGS: ressource not available
I traced a problem in the ohci.c module. In the function “ohci_iso_recv_init” in line 1278 in the if statement “recv->buf_stride” at all times is larger (8192 Bytes) than PAGE_SIZE (4096 Bytes). Thus the debug message “ohci_iso_recv_init: problem choosing a buffer stride” appears in the kmsg shell. The initialization is aborted.
The isochronouns max. data payload for 1394b devices is at 8192 Bytes, thus
“recv->buf_stride” is too large at all times.
I have no idea solving the problem.
Perhapes somebody can help!