Bug 9923
Summary: | Unable conect to internet over ISDN AVM USB BlueFritz | ||
---|---|---|---|
Product: | Networking | Reporter: | Mirko Vasilic (vasko) |
Component: | Other | Assignee: | Arnaldo Carvalho de Melo (acme) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | pebolle |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.24 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Mirko Vasilic
2008-02-09 03:36:26 UTC
Reply-To: akpm@linux-foundation.org On Sat, 9 Feb 2008 03:36:26 -0800 (PST) bugme-daemon@bugzilla.kernel.org wrote: > http://bugzilla.kernel.org/show_bug.cgi?id=9923 > > Summary: Unable conect to internet over ISDN AVM USB BlueFritz > Product: Networking > Version: 2.5 > KernelVersion: 2.6.24 > Platform: All > OS/Version: Linux > Tree: Mainline > Status: NEW > Severity: normal > Priority: P1 > Component: Other > AssignedTo: acme@ghostprotocols.net > ReportedBy: vasko@arcor.de > > > Latest working kernel version:2.6.22 > Earliest failing kernel version:2.24 A regression. > Distribution:opensuse 10.3 > Hardware Environment:AVM BlueFritz USB ISDN > Software Environment: > Problem Description: > ifup ippp0 > ippp0 > SIOCSIFFLAGS: Invalid argument > Cannot enable interface ippp0 > > Steps to reproduce: > Feb 9 11:20:54 linux-zhr0 klogd: ippp0: dialing 1 019193383... > Feb 9 11:20:56 linux-zhr0 klogd: isdn_net: ippp0 connected > Feb 9 11:20:56 linux-zhr0 klogd: capidrv-1: chan 0 up with ncci 0x10101 > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: Local number: 906138, Remote number: > 019193383, Type: outgoing > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: PHASE_WAIT -> PHASE_ESTABLISHED, > ifunit: 0, linkunit: 0, fd: 7 > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: ioctl(SIOCSIFMTU): Invalid argument, > 6 > ippp0 1524. > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: MPPP negotiation, He: Yes We: Yes > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: CCP enabled! Trying CCP. > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: CCP: got ccp-unit 0 for link 0 > (Compression Control Protocol) > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: ccp_resetci! > Feb 9 11:20:56 linux-zhr0 ipppd[5624]: ccp_resetci! > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from peer slot(0) > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-rcv[0]: 01 01 00 09 11 05 00 01 > 04 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from daemon: > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-xmit[0]: ff 03 80 fd 01 01 00 04 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from daemon: > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-xmit[0]: ff 03 80 fd 04 01 00 09 > 11 > 05 00 01 04 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from peer slot(0) > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-rcv[0]: 04 01 00 04 > Feb 9 11:20:58 linux-zhr0 ipppd[5624]: ccp_resetci! > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from peer slot(0) > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-rcv[0]: 01 02 00 0a 11 06 00 01 > 01 > 03 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from daemon: > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-xmit[0]: ff 03 80 fd 01 02 00 04 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from daemon: > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-xmit[0]: ff 03 80 fd 04 02 00 0a > 11 > 06 00 01 01 03 > Feb 9 11:20:58 linux-zhr0 klogd: Received CCP frame from peer slot(0) > Feb 9 11:20:58 linux-zhr0 klogd: [0/0].ccp-rcv[0]: 04 02 00 04 > Feb 9 11:20:59 linux-zhr0 ipppd[5624]: local IP address 149.225.68.4 > Feb 9 11:20:59 linux-zhr0 ipppd[5624]: remote IP address 139.4.250.4 > Feb 9 11:20:59 linux-zhr0 ipppd[5624]: Ifup: ioctl(SIOCSIFFLAGS): Invalid > argument > Feb 9 11:20:59 linux-zhr0 ip-down: SIOCSIFFLAGS: Invalid argument > Some additional data (re. Fedora 8): - Latest working kernel version: kernel-2.6.23.15-137.fc8 - Earliest failing kernel version: kernel-2.6.24.3-12.fc8 - Hardware Environment: Gigaset M105 USB DECT (module: usb_gigaset, so ISDN over USB too). 0) I've bisected this until I got it down to (about) 37 revisions. My bisect log is: # bad: [49914084e797530d9baaf51df9eda77babc98fa8] Linux 2.6.24 git-bisect start 'v2.6.24' # good: [bbf25010f1a6b761914430f5fca081ec8c7accd1] Linux 2.6.23 git-bisect good bbf25010f1a6b761914430f5fca081ec8c7accd1 # good: [fe071d7e8aae5745c009c808bb8933f22a9e305a] oom: add oom_kill_allocating_task sysctl git-bisect good fe071d7e8aae5745c009c808bb8933f22a9e305a # bad: [a7e1e001f432d5960b929787a2a261cf5a7ddac5] Merge branch 'v2.6.24-rc1-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep git-bisect bad a7e1e001f432d5960b929787a2a261cf5a7ddac5 # good: [b3d9d6be035a7d1cc6740cee695301bf37caedcd] Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev git-bisect good b3d9d6be035a7d1cc6740cee695301bf37caedcd # good: [d8581969904b8a72db726c4b9090234c0f0bb18f] Merge branch 'warnings' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 git-bisect good d8581969904b8a72db726c4b9090234c0f0bb18f # bad: [db8185360d91c01f6e482db5ee402c0ad90dec52] Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched git-bisect bad db8185360d91c01f6e482db5ee402c0ad90dec52 # bad: [0e0940d4bb9b19c0a45c844a83e1d25686aaf433] [IPSEC]: Fix scatterlist handling in skb_icv_walk(). git-bisect bad 0e0940d4bb9b19c0a45c844a83e1d25686aaf433 # good: [7f1495745347bc2cb9cc4f50d0a889caeb71f1f1] Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block git-bisect good 7f1495745347bc2cb9cc4f50d0a889caeb71f1f1 1) By that time this commit started to become suspicious: bada339ba24dee9e143bfb42e1dc61f146619846 [NET]: Validate device addr prior to interface-up 2) That made me try this (one-line) patch: diff -up linux-2.6.24.i686/drivers/isdn/i4l/isdn_net.c.addr linux-2.6.24.i686/drivers/isdn/i4l/isdn_net.c --- linux-2.6.24.i686/drivers/isdn/i4l/isdn_net.c.addr 2008-01-24 23:58:37.000000000 +0100 +++ linux-2.6.24.i686/drivers/isdn/i4l/isdn_net.c 2008-04-10 12:38:43.000000000 +0200 @@ -2010,6 +2010,7 @@ isdn_net_init(struct net_device *ndev) ndev->flags = IFF_NOARP|IFF_POINTOPOINT; ndev->type = ARPHRD_ETHER; ndev->addr_len = ETH_ALEN; + ndev->validate_addr = NULL; /* for clients with MPPP maybe higher values better */ ndev->tx_queue_len = 30; This patch fixed this bug for me. 3) I plan to send a proper patch to the ISDN subsystem maintainers and the Networking maintainers shortly. 0) A patch is commited to David Miller's 2.6.x networking tree (d2dcba6, see: http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=commitdiff;h=d2dcba612b357a4687843ad4f46629d219233fd7). I guess this patch will eventually end up in Linus' 2.6 tree. 1) I'd say this patch should also end up in the 2.6.24 and/or 2.6.25 stable tree (or aren't they meant for regressions?) 2) Can the reporter connect with his ISDN AVM USB BlueFritz with this patch? (The "ioctl(SIOCSIFMTU): Invalid argument, 6 ippp0 1524" warning might still be a problem. It didn't show up in my logs. I haven't looked at it.) 0) The patch is committed to Linus' tree, see: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d2dcba612b357a4687843ad4f46629d219233fd7 1) The reporter mailed me he couldn't test the patch (because he doesn't use ISDN anymore). 2) I guess this bug can be set to (something like) CLOSED/FIXED (which I'm not allowed to do). The patch works! I found your post after hours of research on the web, at 2am. Many of us unfortunate users of ISDN - I mean without a DSL line - must be desperate. But you found the cure. I can definitely confirm that your patch works since I'm using my ISDN connection right now to type this message. Here is a summary of my configuration: 2.6.24-16-generic (ubuntu 8.04) hisax type=35 protocol=2 Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02) I downloaded the kernel sources, edited isdn_net.c and added the missing line of code exactly like you said after line 2012: ndev->validate_addr = NULL; I copied my kernel configuration in /usr/src/linux-source-2.6.24 with cp /boot/config-$(uname -r) .config then I recompiled all the modules with make modules - make modules M=drivers/isdn/i4l could be enough - and copied (after I saved it elsewhere) isdn.ko in /lib/modules/$(uname -r)/kernel/drivers/isdn/i4l. Once I rebooted the system, typing /etc/init.d/isdntutils start and isdnctrl dial ippp0 is all I needed to get on the web. If I try to turn off Kernel hacking->Kernel debugging and Kernel hacking->Compile the kernel with debug info with make menuconfig, modprobe isdn works but modprobe hisax fails. What is the proper way to reduce the size of isdn.ko? Thanks for your support! |