| Age | Commit message (Collapse) | Author |
|
|
|
From: Armin Schindler <armin@melware.de>
With this patch the ISDN kernel CAPI code uses a per application workqueue
with proper locking to prevent message re-ordering due to the fact a
workqueue may run on another CPU at the same time. Also some locks for
internal data is added.
Removed global recv_queue work, use per application workqueue. Added
proper locking mechanisms for application, controller and application
workqueue function. Increased max. number of possible applications and
controllers.
|
|
On arrival of a new message, kernelcapi used to call
capi20_appl::signal(), which, from the application, would call back
to capi20_get_message(). So we rather just push the message down
directly, saving this detour.
|
|
Instead of passing an opaque handle, pass the actual struct capi20_appl,
which is now known to the applications. Applications can store
a pointer to the private data into struct capi20_appl::private.
|
|
Now that we have the struct capi_appl *, let's pass this around
instead of just an index which would mean another useless lookup.
|
|
Inside the kernel, we rather go the standard way than converting
to/from indices to the actual data structs all the time.
|
|
It's not used anymore, registering/unregistering just happens
on a per-application basis.
|
|
The callback to be notified of added/removed controllers is
logically per application.
This will be replaced by the standardized mechanism anyway, so the
temporary capi20_set_callback will fortunately vanish later.
|
|
Why pass the callbacks via a struct when we can just call them directly?
|
|
Don't use a special CAPI solution to tell the drivers about
ISA cards but use module parameters, just as other drivers do.
Internally use struct pci_dev to save that data - hopefully
one day the device tree will provide a nicer way to achieve this.
|
|
It's up to the drivers to maintain their list of buffered messages
themselves. As most drivers can share common code, provide it
in capilib.o, inside of the module kernelcapi.o
|
|
Applications really ought to take care of maintaing the state themselves,
instead of cheating by listening to controller private messages.
|
|
|
|
- driver sync up with Alan
- Andrew Morton: wakeup cleanup and race fix
- Paul Mackerras: macintosh driver updates.
- don't trust "page_count()" on reserved pages!
- Russell King: fix serious IDE multimode write bug!
- me, Jens, others: fix elevator problem
- ARM, MIPS and cris architecture updates
- alpha updates: better page clear/copy, avoid kernel lock in execve
- USB and firewire updates
- ISDN updates
- Irda updates
|
|
|