| Age | Commit message (Collapse) | Author |
|
Function capi20_manufacturer() is declared with unsigned int cmd
argument but called with unsigned long.
Fix by correcting the function prototype since the actual argument
is part of the user visible API.
Spotted with Coverity.
Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
|
|
Another step towards proper locking: Rework the callback provided to
capidrv for controller state changes. This is so far attached to an
application, which would require us to hold the corresponding lock
across notification calls.
But there is no direct relation between a controller up/down event and
an application, so let's decouple them and provide a notifier call chain
for those events instead. This notifier chain is first of all used
internally. Here we request the highest priority to unsure that
housekeeping work is done before any other notifications. The chain is
exported via [un]register_capictr_notifier to our only user, capidrv, to
replace the racy and unfixable capi20_set_callback.
Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
None of these files use any of the functionality promised by
asm/semaphore.h. It's possible that they (or some user of them) rely
on it dragging in some unrelated header file, but I can't build all
these files, so we'll have to fix any build failures as they come up.
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
|
|
The CAPI 2.0 driver uses a semaphore as mutex. Use the mutex API instead of
the (binary) semaphore.
Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
OK, that seems to be enough to deal with the mess.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
|
|
|
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
|
|
|