aboutsummaryrefslogtreecommitdiff
path: root/drivers/isdn
AgeCommit message (Collapse)Author
2007-10-18i4l: Fix random hard freeze with AVM c4 cardKarsten Keil
The patch - Includes the call to capilib_data_b3_req in the spinlock. This routine in turn calls the offending mq_enqueue routine that triggered the freeze if not locked. This should also fix other indicators of incosistent capilib_msgidqueue list, that trigger messages like: Oct 5 03:05:57 BERL0 kernel: kcapi: msgid 3019 ncci 0x30301 not on queue that we saw several times a day (usually several in a row). - Fixes all occurrences of c4_dispatch_tx to be called with active spinlock, there were some instances where no lock was active. Mostly these are in very infrequently called routines, so the additional performance penalty is minimal. Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Rainer Brestan <rainer.brestan@frequentis.com> Signed-off-by: Ralf Schlatterbeck <rsc@runtux.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-18i4l: fix random freezes with AVM B1 driversKarsten Keil
This fix the same issue which was debbuged for the C4 controller for the B1 versions. The capilib_ function modify or traverse a linked list without locking. This patch extends the existing locking to the calls of these function to prevent access to a list which is in the middle of a modification. Signed-off-by: Karsten Keil <kkeil@suse.de> C: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16isdn: guard against a potential NULL pointer dereference in ↵Jesper Juhl
old_capi_manufacturer() In drivers/isdn/capi/kcapi.c::old_capi_manufacturer(), if the call to get_capi_ctr_by_nr(ldef.contr); in line 823 returns NULL, then we'll be dereferencing a NULL pointer in the very next line. (Found by Coverity checker as bug #402) Signed-off-by: Jesper Juhl <jesper.juhl@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>
2007-10-16fix possible NULL deref on low memory condition in capidrv.c::send_message()Jesper Juhl
If we fail to allocate an skb in drivers/isdn/capi/capidrv.c::send_message(), then we'll end up dereferencing a NULL pointer. Since out of memory conditions are not unheard of, I believe it is better to print a error message and just return rather than bring down the whole kernel. Sure, doing this may upset some application, but that's still better than crashing the whole system. Signed-off-by: Jesper Juhl <jesper.juhl@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>
2007-10-16use mutex instead of semaphore in isdn subsystem common functionsMatthias Kaehlcke
The ISDN subsystem common functions use 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>
2007-10-16gigaset: remove pointless lockingTilman Schmidt
Remove pointless taking of spinlock around reading a single pointer-sized or smaller variable. Signed-off-by: Tilman Schmidt <tilman@imap.cc> 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>
2007-10-15[ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.Denis V. Lunev
On Mon, Oct 15, 2007 at 06:44:56PM +0400, Denis V. Lunev wrote: Compilation fix. The problem appears after 7c076d1de869256848dacb8de0050a3a390f95df by Karsten Keil <kkeil@suse.de> Acked-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-15[ISDN]: Remove local copy of device name to make sure renames work.Karsten Keil
Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-14hisax: hfc_usb: update to current CVS versionMartin Bachem
- killed paranoid NULL Pointer check - human readable LED states - support for "Eicon DIVA USB 4.0" (0x071d/0x1005) Signed-off-by: Martin Bachem <info@colognechip.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-14more trivial signedness fixes in driversAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-14long vs. unsigned long - low-hanging fruits in driversAl Viro
deal with signedness of the stuff passed to set_bit() et.al. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-13fallout from elsa setup splitAl Viro
... and yes, caller wants it to return int. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-12Merge branch 'isdn-cleanups' of ↵Linus Torvalds
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 * 'isdn-cleanups' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6: [ISDN] HiSax diva: split setup into three smaller functions [ISDN] HiSax sedlbauer: move ISAPNP and PCI code into functions of their own [ISDN] HiSax elsa: split huge setup function into four smaller functions [ISDN] HiSax avm_pci: split setup into three smaller functions [ISDN] Remove CONFIG_PCI ifdefs from 100% PCI source code
2007-10-12[ISDN] HiSax diva: split setup into three smaller functionsJeff Garzik
Just code movement, and the glue to call the new functions. Preparation for hotplug APIs. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2007-10-12[ISDN] HiSax sedlbauer: move ISAPNP and PCI code into functions of their ownJeff Garzik
Prep for hotplug API conversion. Just code movement (+glue). Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2007-10-12[ISDN] HiSax elsa: split huge setup function into four smaller functionsJeff Garzik
Prep for hotplug API conversion. Just code movement (+glue). Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2007-10-12[ISDN] HiSax avm_pci: split setup into three smaller functionsJeff Garzik
Preparation for new ISA/PNP/PCI APIs. Just code movement, and the glue to call the new functions. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2007-10-12[ISDN] Remove CONFIG_PCI ifdefs from 100% PCI source codeJeff Garzik
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-10-12[ISDN] hysdn: convert to PCI hotplug APIJeff Garzik
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-10-10[ISDN]: Change I4L to use alloc_netdev().Karsten Keil
Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10[NET]: Move hardware header operations out of netdevice.Stephen Hemminger
Since hardware header operations are part of the protocol class not the device instance, make them into a separate object and save memory. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10[NET]: Make /proc/net per network namespaceEric W. Biederman
This patch makes /proc/net per network namespace. It modifies the global variables proc_net and proc_net_stat to be per network namespace. The proc_net file helpers are modified to take a network namespace argument, and all of their callers are fixed to pass &init_net for that argument. This ensures that all of the /proc/net files are only visible and usable in the initial network namespace until the code behind them has been updated to be handle multiple network namespaces. Making /proc/net per namespace is necessary as at least some files in /proc/net depend upon the set of network devices which is per network namespace, and even more files in /proc/net have contents that are relevant to a single network namespace. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-08ISDN: Fix data access out of array boundsKarsten Keil
Fix against access random data bytes outside the dev->chanmap array. Thanks to Oliver Neukum for pointing me to this issue. Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-26[ISDN]: Get rid of some pointless allocation casts in common and bsd comp.Jesper Juhl
vmalloc() returns a void pointer - no need to cast the return value. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2007-08-21hisax: update hfc_usb driverMartin Bachem
This fixes handling of USB ISO completion error -EXDEV and includes several other changes to current CVS version at isdn4linux.de (changes in debug flags, style of code remarks, etc) Signed-off-by: Martin Bachem <info@colognechip.com> Acked-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-31Remove 'isdn_* is defined but unused' warningsCharlie Shepherd
Move the #ifdef guard above these functions to remove the warnings. Signed-off-by: Charlie Shepherd <masterdriverz@gentoo.org> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-21Use menuconfig objects: ISDN/GigasetJan Engelhardt
Change Kconfig objects from "menu, config" into "menuconfig" so that the user can disable the whole feature without having to enter the menu first. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Tilman Schmidt <tilman@imap.cc> 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>
2007-07-21Use menuconfig objects: ISDNJan Engelhardt
Unclutter the ISDN menu a tiny bit by moving ISDN4Linux and the CAPI2.0 layers into their own menu. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Tilman Schmidt <tilman@imap.cc> 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>
2007-07-21Use menuconfig objects - CONFIG_ISDN_I4LTilman Schmidt
Remove a menu statement and several dependencies from the Kconfig files in the drivers/isdn tree as they have become unnecessary by the transformation of CONFIG_ISDN from "menu, config" into "menuconfig". (Modified version of a patch originally proposed by Jan Engelhardt.) Signed-off-by: Tilman Schmidt <tilman@imap.cc> Cc: Jan Engelhardt <jengelh@computergmbh.de> 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>
2007-07-19isdn/sc: compile breakage re check_reset()Alexey Dobriyan
There is check_reset() -- global function in drivers/isdn/sc/ There is check_reset -- variable holding module param in aacraid driver. On allyesconfig they clash with: LD drivers/built-in.o drivers/isdn/built-in.o: In function `check_reset': : multiple definition of `check_reset' drivers/scsi/built-in.o:(.data+0xe458): first defined here ld: Warning: size of symbol `check_reset' changed from 4 in drivers/scsi/built-in.o to 219 in drivers/isdn/built-in.o ld: Warning: type of symbol `check_reset' changed from 1 to 2 in drivers/isdn/built-in.o Rename the former. Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-18ISDN HiSax: uninitialized return in hisax_cs_setupFlorin Malita
Coverity (1792) spotted a possibly uninitialized return value in case of kmalloc() failure: 1116 static int hisax_cs_setup(int cardnr, struct IsdnCard *card, 1117 struct IsdnCardState *cs) 1119 int ret; 1120 1121 if (!(cs->rcvbuf = kmalloc(MAX_DFRAME_LEN_L1, GFP_ATOMIC))) { 1122 printk(KERN_WARNING "HiSax: No memory for isac rcvbuf\n"); 1123 ll_unload(cs); 1124 goto outf_cs; ... 1165 outf_cs: 1166 kfree(cs); 1167 card->cs = NULL; 1168 return ret; The straightforward solution would be to just add the missing initialization but hardcoding the return value in the out_cs branch (only taken on failure) seems to work just as well and it allows killing a couple of other lines too. Signed-off-by: Florin Malita <fmalita@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax hfc_pci: minor cleanupsJeff Garzik
* trim trailing whitespace * remove CONFIG_PCI ifdefs, this driver is always PCI (Kconfig enforced) * remove return statements at the tail of a function * remove indentation levels by returning an error code immediately. Makes the code much more readable, and easier to update to PCI hotplug API. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax bkm_a4t: split setup into two smaller functionsJeff Garzik
No behavior changes, just code movement. Prep for PCI hotplug API. Well, CONFIG_PCI useless ifdef was removed. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax enternow: split setup into 3 smaller functionsJeff Garzik
No behavior changes, just code movement. Prep for PCI hotplug API. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax netjet_u: split setup into 3 smaller functionsJeff Garzik
No behavior changes, just code movement. Prep for PCI hotplug API. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax netjet_s: code movement, prep for hotplugJeff Garzik
1) Remove CONFIG_PCI ifdefs. PCI is required in Kconfig. 2) Break up setup_netjet_s() into three separate internal functions. This helps facilitate upcoming use of PCI hotplug API, and in addition makes the code much easier to follow. No code is changed, just moved around. I even kept the out-of-favor "return(0)" style used in the current source code. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax: move card state alloc/setup code into separate functionsJeff Garzik
Just code movement. No code changes or cleanups besides that which is required to call the new functions from the old code site. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17[ISDN] HiSax: move card setup into separate functionJeff Garzik
No behavior changes, just code movement. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-17i4l: leak in eicon/idifunc.cArmin Schindler
coverity spotted a possible leak in the idifunc.c file (bug id #1252), in um_new_card(), if the diva_user_mode_idi_create_adapter() fails, we dont free the memory allocated for card Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Acked-by: Armin Schindler <armin@melware.de> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17isdn/capi warning fixesAndrew Morton
drivers/isdn/capi/capi.c: In function 'handle_minor_send': drivers/isdn/capi/capi.c:552: warning: cast from pointer to integer of different size Of course, the code here might actually be buggy, in which case this patch should not be applied? Answer: No this field is ignored inside linux kernel.Yes this is ugly, but it's the CAPI spec for all OS. CAPI DATA_B3 Request/Indication CAPI Message has a mandatory field which represent the 32 bit buffer address of the payload data. In linux the payload data do not use a sperate buffer, data follows directely after the CAPI Message in the same skb and we use this assumption inside the drivers, so we can ignore this field. Inside the linux CAPI implemetation we never use this field, so it could also have no value, but since random data in a message is bad as well (e.g. displayed in CAPI traces) we set is to the most adequate value. Outside the kernel the capi20 library sets the correct addresses (there is an optional second field for 64 bit adresses for 64 bit systems, we do not use here). 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>
2007-07-17Use menuconfig objects: ISDN: CONFIG_CAPI_EICONJan Engelhardt
Transform Kconfig objects from "menu, config" into "menuconfig" so that the user can disable the whole feature without having to enter the menu first. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Use menuconfig objects: ISDN: CONFIG_CAPI_AVMJan Engelhardt
Transform Kconfig objects from "menu, config" into "menuconfig" so that the user can disable the whole feature without having to enter the menu first. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Use menuconfig objects: ISDN: CONFIG_ISDN_CAPIJan Engelhardt
Transform "depends on" into a simpler if-endif block style dependency. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Use menuconfig objects: ISDN: CONFIG_ISDNJan Engelhardt
Transform Kconfig objects from "menu, config" into "menuconfig" so that the user can disable the whole feature without having to enter the menu first. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17sane irq initialization in sedlbauer hisaxKarsten Keil
The interrupts schould be disabled until the driver is ready and the IRQ function was registered. Thanks to Bastian Friedrich and Thomas Voegtle for spotting this. Signed-off-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Bastian Friedrich <bastian@bastian-friedrich.de> Signed-off-by: Thomas Voegtle <tv@lio96.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Make ISDN CAPI use seq_list_xxx helpersPavel Emelianov
The similar code exists here and is called capi_driver_get_idx(). Use generic helpers now and remember to convert list_head to struct capi_driver in .show callback. Signed-off-by: Pavel Emelianov <xemul@openvz.org> 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>
2007-07-17Mismatching declarations of revision strings in HiSaxDavid Woodhouse
The {l1,l2,l3,lli,tei}_revision strings in the HiSax driver are 'const', but have a mismatching declaration as 'extern char *' in config.c. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-17Use mutex instead of semaphore in CAPI 2.0 driverMatthias Kaehlcke
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>
2007-07-11PCI: Change all drivers to use pci_device->revisionAuke Kok
Instead of all drivers reading pci config space to get the revision ID, they can now use the pci_device->revision member. This exposes some issues where drivers where reading a word or a dword for the revision number, and adding useless error-handling around the read. Some drivers even just read it for no purpose of all. In devices where the revision ID is being copied over and used in what appears to be the equivalent of hotpath, I have left the copy code and the cached copy as not to influence the driver's performance. Compile tested with make all{yes,mod}config on x86_64 and i386. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Acked-by: Dave Jones <davej@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-06-08isdn/diva: fix section mismatchRandy Dunlap
__exit function is used by both init and exit routines, so it cannot be marked __init. (from allyesconfig) WARNING: drivers/built-in.o(.text+0x9b83cf): Section mismatch: reference to .exit.text: (between 'divasfunc_exit' and 'didd_callback') Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Karsten Keil <kkeil@suse.de> Acked-by: Armin Schindler <armin@melware.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>