- 16 3月, 2010 3 次提交
-
-
由 Ian Munsie 提交于
Replace references to the '20' magic number found throughout the Eicon ISDN driver for the length of the station_id field in the T30_INFO struct with the T30_MAX_STATION_ID_LENGTH symbolic constant. Signed-off-by: NIan Munsie <imunsie@au.ibm.com> Cc: Armin Schindler <mac@melware.de> Cc: Karsten Keil <isdn@linux-pingi.de> Cc: Stoyan Gaydarov <sgayda2@uiuc.edu> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Ian Munsie 提交于
When compiling this driver, the compiler throws the following warnings: drivers/isdn/hardware/eicon/message.c:8426: warning: array subscript is above array bounds drivers/isdn/hardware/eicon/message.c:8427: warning: array subscript is above array bounds drivers/isdn/hardware/eicon/message.c:8434: warning: array subscript is above array bounds drivers/isdn/hardware/eicon/message.c:8435: warning: array subscript is above array bounds drivers/isdn/hardware/eicon/message.c:8436: warning: array subscript is above array bounds drivers/isdn/hardware/eicon/message.c:8447: warning: array subscript is above array bounds This arises from the particular semantics the driver is using to write to the nlc array (static byte[256]). The array has a length in byte 0 followed by a T30_INFO struct starting at byte 1. The T30_INFO struct has a number of variable length strings after the station_id entry, which cannot be explicitly defined in the struct and the driver accesses them with an array index to station_id beyond the length of station_id. This patch merely changes the semantics that the driver uses to access the entries after the station_id entry to use the original 256 byte nlc array taking the offset and length of the station_id entry to calculate where to write in the array, thereby silencing the warning. Signed-off-by: NIan Munsie <imunsie@au.ibm.com> Cc: Armin Schindler <mac@melware.de> Cc: Karsten Keil <isdn@linux-pingi.de> Cc: Stoyan Gaydarov <sgayda2@uiuc.edu> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Roel Kluin 提交于
The parenthesis was misplaced. Signed-off-by: NRoel Kluin <roel.kluin@gmail.com> Cc: Karsten Keil <isdn@linux-pingi.de> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 26 2月, 2010 3 次提交
-
-
由 Andy Shevchenko 提交于
Samll cleanup in drivers/isdn/gigaset/capi.c where own implementation of isxdigit() has been changed to kernel native one. Signed-off-by: NAndy Shevchenko <ext-andriy.shevchenko@nokia.com> Acked-by: NTilman Schmidt <tilman@imap.cc> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Tilman Schmidt 提交于
Improve readability of the Gigaset driver's kernel messages by removing a few unnecessary messages and limiting the emission of some debug messages more narrowly. Impact: logging Signed-off-by: NTilman Schmidt <tilman@imap.cc> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Tilman Schmidt 提交于
Copy the mechanism from ser_/usb_gigaset to avoid producing spurious empty responses for CR/LF sequences from the device. Add a comment in all drivers documenting that behaviour. Correct an off by one error that might result in a one byte buffer overflow when receiving an unexpectedly long reply. Impact: minor bugfix Signed-off-by: NTilman Schmidt <tilman@imap.cc> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 23 2月, 2010 2 次提交
-
-
由 Tilman Schmidt 提交于
The ISDN4Linux HiSax driver family contains the last remaining users of the deprecated pci_find_device() function. This patch creates a private copy of that function in HiSax, and removes the now unused global function together with its controlling configuration option, CONFIG_PCI_LEGACY. Signed-off-by: NTilman Schmidt <tilman@imap.cc> Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
-
由 Tilman Schmidt 提交于
1. Rewrite the outdated help texts for config options ISDN and ISDN_CAPI. 2. The MISDN config option appeared between ISDN_I4L and the I4L hardware driver options; move it to a less irritating place. 3. HYSDN is not in fact an I4L driver, and needn't depend on ISDN_I4L, so move it from the I4L section to the general section. 4. ISDN_HDLC is now also used by drivers outside I4L. Move it from the I4L section to the general section, too. Signed-off-by: NTilman Schmidt <tilman@imap.cc> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
- 17 2月, 2010 32 次提交
-
-
由 Jan Kiszka 提交于
Despite all its bugs, the middleware support of our CAPI stack was already in use for many, many moons. And after going through its code, fixing all issues I found, I feel it deserves to officially become a non-experimental feature. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
With dynamic TTY nodes and the help of udev, we no longer need this special filesystem. Schedule it for removal in one year from now. As a last duty to this feature, move its help to right option so that users can read the rationale. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
This strange special rule to fall back to controller 1 cannot be derived from the CAPI specs and looks a lot like it was once dedicated to some out-of-tree driver, probably AVM's broken fcdsl2 (FRITZ!Card DSL v2.0). I found no in-tree user that needs this check, and I'm now taking care of the fcdsl2. So drop these bits from our stack. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
We did not evaluate handle_minor_send's return value, just (void)'ed it away. Time for a cleanup. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
No need for irqsave acquisition of acklock, bh-safe is sufficient. Moverover, move kfree out of the lock and do not take acklock at all in capiminor_del_all_ack as we are the last user of the list here. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Introduce outlock as a spin lock that protects capiminor's outqueue, outbytes and outskb (formerly known as ttyskb). outlock can be acquired from soft-IRQ context via capinc_write, so make it bh-safe. This finally removes the last reason for keeping the workaround lock around (which was incomplete and partly broken anyway). And as we no longer call handle_recv_skb in atomic context, gen_data_b3_resp_for can use non-atomic allocation now. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
The inbytes counter was only updated but never read. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
The capiminor members datahandle and msgid are incremented outside any lock, so better do this atomically. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
This struct is describing a queue entry, not the queue itself. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Avoid re-queuing skbs unless the error detected in handle_recv_skb is expected to be recoverable such as lacking memory, a full CAPI queue, a full TTY input buffer, or a not yet existing TTY. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Sending a message down the CAPI stack may trigger the reception of an answer, but this will go through capi_recv_message and call handle_minor_recv from there. There is no need to walk the receive queue on capinc_tty_write. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Not needed, tty->count keeps track of this information. At this chance, drop traces of ancient attempts to debug this logic via _DEBUG_REFCOUNT. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Use a plain spin lock for capiminors_lock, drop inconsistent irqsafe acquisitions (it's only used in process context anyway). Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
The nccip in capiminor used to serve as an indicator that the NCCI was close. But we don't need this, we issue a hangup on capincci_free_minor. So drop this legacy. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
capincci_free and, thus, capincci_free_minor runs in process context, so we can issue the hangup of the associated TTY synchronously. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
tty_struct's driver_data cannot be NULL, no need to test for it. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Use the reference management features of tty_port to look up and drop again the tty_struct associated with a capiminor. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Properly associate/disassociate a capiminor object with its TTY via the install/cleanup handlers instead of trying to guess first open and last close. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Install a reference counter for capiminor objects. Acquire it when obtaining a capiminor from the array during capinc_tty_open, drop it when closing the tty again. Another reference is held for the hook-up with capincci. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
No need to allocate a fixed major for this TTY, both capifs and udev make this transparent to the user. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Register capiminors dynamically with the TTY core so that udev can make them show up as the NCCIs appear or disappear. This removes the need to check if the capiminor requested in capinc_tty_open actually exists. And this completely obsoletes capifs which will be scheduled for removal in a later patch. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Return proper error code if tty_register_driver fails. In contrast, tty_unregister_driver cannot practically fail, so drop that error handling. Finally, mark capinc_tty_init/exit with __init/__exit. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Using a plain array of pointers simplifies the management of capiminors. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Replace open-coded NCCI list management with standard mechanisms. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
capi_read still used interruptible_sleep_on, risking to miss a wakeup this way. Convert it to wait_event_interruptible. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Both capincci_alloc and capiminor_alloc run in non-atomic context, update their memory allocations accordingly. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Rename 'ncci_list_mtx' to 'lock', expressing that it now protects a larger set of capidev members: the NCCI list, ap.applid (ie. the registration of the application), and modifications of userflags. We do not need to protect each and every check for ap.applid because, once an application is registered, it will stay for the whole lifetime of the device. Also, there is no need to apply the capidev mutex during release (if there could be concurrent users, we would crash them anyway by freeing the device at the end of capi_release). Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Fold capidev_alloc and capidev_free into capi_open and capi_release - there are no other users. Someone pushed a lock_kernel into capi_open. Drop it, we don't need it. Also remove the useless test from open that checks for private_data == NULL. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
No need for anything "harder" here (specifically no need for irqsave...). Also, make the list removal the first operation of capidev_free to avoid dumping half-released devices via /proc. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Make the code a bit more readable be providing stub functions for the !CONFIG_ISDN_CAPI_MIDDLEWARE case. Though a few lines are moved around, this comes with no functional changes. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
Drop the application rw-lock in favour of RCU. This synchronizes capi20_release against capi_ctr_handle_message which may dereference an application from (soft-)IRQ context. Any other access to the application list is now protected by the capi_controller_lock as well. This also allows to safely inspect applications for /proc dumping by holding capi_controller_lock. At this chance, drop some useless release_in_progress checks where we obtained the application pointer from the list (which becomes NULL on release_in_progress). Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Jan Kiszka 提交于
This patch applies the mutex so far only protecting the controller list to (almost) all accesses of controller data structures. It also reworks waiting on state changes in old_capi_manufacturer so that it no longer poll and holds a module reference to the controller owner while waiting (the latter was partly done already). Modification and checking of the blocked state remains racy by design, the caller is responsible for dealing with this. Signed-off-by: NJan Kiszka <jan.kiszka@web.de> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-