Release 6.1.2.007-PIM-2.6-1.9 incremental patch |
23122008 | Another patch from Vincent Zweije that fixes issues with the diagnostic output
|
Release 6.1.2.007-PIM-2.6-1.8 incremental patch |
17082008 | Patches to get the driver to work in 2.6.26
(thanks again to Vincent Zweije for all this work!)
* Fix overflow check when incrementing counter (reprise)
Newer gcc looks through the earlier (shallow) fix for the overflow
problem. The new fix should really work (famous last words).
* Prevent compiler warning for uninitialized variable
Cosmetic. With all the inlining, gcc is getting too clever...
* Fix initialization of cnxtty_driver structure changed in linux-2.6.26
Tty operation function pointers were factored into a separate struct
tty_operations. Reflected the factorization in cnxtty_driver.
* Fix initialization of CnxAdslDebugQuery /proc entry
A field was removed from struct proc_dir_entry. Modified
initialization of CnxAdslProcEntry to be less sensitive to fields
changing.
|
11012008 | Many patches to bring the driver up to date, it should now also work on SMP systems
(thanks again to Vincent Zweije for all this work!)
Use interrupt-safe spin locking:
Whoops! Must use irqsave/irqrestore when compiling for SMP, even when
actually running on UP. I had a nice spinlock bug inside an interrupt
routine because of this.
Reflect move from SA_SHIRQ to IRQF_SHARED in linux-2.6.18:
Reflect rename of IRQ flag. Saves a lot of warnings and is better
future proof.
Update to reflect linux-2.6.20 termios->ktermios change:
At some places in the linux kernel, usage of struct termios was changed
to the similar struct ktermios. I don't think the change has any effect
on the cnxadsl module, but the compiler gives type errors, so I changed
the struct name where appropriate.
Check return status of pci_enable_device:
The return status of pci_enable_device should be checked. Doing so is
easy, so I implemented it.
Fix overflow check when incrementing counter:
Apparently, integer overflow in C is undefined, and gcc now optimises
x+y |
Release 6.1.2.007-PIM-2.6-1.6 incremental patch |
09042007 | Thanks to Vincent Zweije the driver has been updated to work with linux kernel 2.6.20:
* In 2.6.18, the default calling sequence was changed to pass up to
three function parameters in registers.
This is a problem because:
- calls into dpcontroller.o now use the new calling sequence,
whereas dpcontroller.o expects the old, and
- calls out of dpcontroller.o still use the old calling sequence,
whereas the called functions expect the new.
I have fixed these by:
- setting explicit calling conventions on functions called from
dpcontroller.o,
- setting explicit calling conventions on functions exported by
dpcontroller.o,
- wrapping calls from dpcontroller.o to the kernel-provided
vsprintf with an auxiliary vsprintf_dpc, and
- making the memcpy inside dpcontroller.o a local symbol so
calls to memcpy from outside dpcontroller.o will link to the
kernel-provided memcpy.
* In 2.6.19, the deprecated linux/config.h was removed.
It was included in several places.
I have fixed this by including KernelModule/Version.h instead, and
in that file including either linux/version.h or linux/config.h,
depending on the kernel version.
* In 2.6.19, interrupt handlers lost their 3rd argument which
contained register contents.
I removed the argument from ChipALIsrHandler. It wasn't used anyway.
* In 2.6.20, INIT_WORK lost its third argument, which was a
context pointer to the thread to launch.
The thread to launch is now determined with some pointer arithmetic.
(The work structure is a member of the thread structure.) It appears
to be done that way in the kernel as well.
|
Release 6.1.2.007-PIM-2.6-1.5 incremental patch |
13052006 | Updated the driver so that it works with kernel 2.6.16+,
some changes were made to the kernel API (thanks to Vincent Zweije).
|
Release 6.1.2.007-PIM-2.6-1.4 incremental patch |
14072005 | Some trivial fixes (thanks to Armijn Hemel for noticing a spelling mistake in an error assertion).
Fixed a memory allocation problem which would almost certainly have caused some instability
(many thanks to Vincent Zweije for looking into and fixing this problem)
|
Release 6.1.2.007-PIM-2.6-1.3 incremental patch |
11062005 | Merged some fixes sent in by Andrew de Quincey (Thanks!):
Fix pci device enabling/disabling (15032005 patch only partially fixed the problem)
Remove some dead code
Fix kernel threads so that they daemonize correctly and hence do not stay in a Zombie state forever
Added code to trap kernel thread names that are too long
(someone reported they were too long but this does not appear to be the case!)
|
Release 6.1.2.007-PIM-2.6-1.2 incremental patch |
15032005 | Minor changes adding debug code and fixing a few bugs (tested on 2.6.11.3)
Updated the PCI device API to use pci_get_device instead of pci_find_device |
Release 6.1.2.007-PIM-2.6-1.1 incremental patch |
11062004 | Applied a cleanup patch to remove all the compile time warnings
Thanks to Andrew Walrond for sending this to me
|
Release 6.1.2.007-PIM-2.6-1 |
05062004 | Upgraded to 2.6.x version, this will no longer work with older versions of the linux kernel.
Forked from release 6.1.2.007-PIM-2
Very many changes including:
Converted CDSL_ADAPTER_T (CardMgmt.h) structure variables that used the task queue to:
DSLInterruptQueStr to a tasklet
ARMInterruptQueStr to a tasklet
PGBkgndQueStr to a work queue
SITaskQueStr to a work queue
Converted kthread_t (KThread.h) structure variables that used the task queue to:
tq to a work queue
Upgraded the module build process (Makefile)
Upgarded the module init, exit and params (CardMgmt.c)
Upgraded the ISR (ChipALIsrHandler ChipALCdsl.c)
Changed a lot of the locking to remove globally disabling interrupts which is no longer possible
Code to be considered alpha, it works but problems include:
- Kernel threads stay in zombie state when module is unloaded, but who cares because of the next problem
- When a ppp session is started the module will no longer unload, even if we kill the ppp session. Some
ressource is not freed correctly
- I doubt this will work reliably on an SMP system
- I doubt this will work at all with two cards installed
|