1. 23 Apr, 2008 16 commits
  2. 22 Apr, 2008 1 commit
    • Herbert Xu's avatar
      [IPSEC]: Fix catch-22 with algorithm IDs above 31 · c5d18e98
      Herbert Xu authored
      
      
      As it stands it's impossible to use any authentication algorithms
      with an ID above 31 portably.  It just happens to work on x86 but
      fails miserably on ppc64.
      
      The reason is that we're using a bit mask to check the algorithm
      ID but the mask is only 32 bits wide.
      
      After looking at how this is used in the field, I have concluded
      that in the long term we should phase out state matching by IDs
      because this is made superfluous by the reqid feature.  For current
      applications, the best solution IMHO is to allow all algorithms when
      the bit masks are all ~0.
      
      The following patch does exactly that.
      
      This bug was identified by IBM when testing on the ppc64 platform
      using the NULL authentication algorithm which has an ID of 251.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c5d18e98
  3. 21 Apr, 2008 11 commits
  4. 20 Apr, 2008 3 commits
    • David Woodhouse's avatar
      [NET]: Expose netdevice dev_id through sysfs · 9d29672c
      David Woodhouse authored
      
      
      Expose dev_id to userspace, because it helps to disambiguate between
      interfaces where the MAC address is unique.
      
      This should allow us to simplify the handling of persistent naming for
      S390 network devices in udev -- because it can depend on a simple
      attribute of the device like the other match criteria, rather than
      having a special case for SUBSYSTEMS=="ccwgroup".
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d29672c
    • Randy Dunlap's avatar
      skbuff: fix missing kernel-doc notation · f7d0e5a5
      Randy Dunlap authored
      
      
      Add kernel-doc notation for ndisc_nodetype:
      
      Warning(linux-2.6.25-git2//include/linux/skbuff.h:340): No description found for parameter 'ndisc_nodetype'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7d0e5a5
    • Bernard Pidoux's avatar
      [ROSE]: Fix soft lockup wrt. rose_node_list_lock · 047f7617
      Bernard Pidoux authored
      
      
      [ INFO: possible recursive locking detected ]
      2.6.25 #3
      ---------------------------------------------
      ax25ipd/3811 is trying to acquire lock:
        (rose_node_list_lock){-+..}, at: [<f8d31f1a>] rose_get_neigh+0x1a/0xa0 
      [rose]
      
      but task is already holding lock:
        (rose_node_list_lock){-+..}, at: [<f8d31fed>] 
      rose_route_frame+0x4d/0x620 [rose]
      
      other info that might help us debug this:
      6 locks held by ax25ipd/3811:
        #0:  (&tty->atomic_write_lock){--..}, at: [<c0259a1c>] 
      tty_write_lock+0x1c/0x50
        #1:  (rcu_read_lock){..--}, at: [<c02aea36>] net_rx_action+0x96/0x230
        #2:  (rcu_read_lock){..--}, at: [<c02ac5c0>] netif_receive_skb+0x100/0x2f0
        #3:  (rose_node_list_lock){-+..}, at: [<f8d31fed>] 
      rose_route_frame+0x4d/0x620 [rose]
        #4:  (rose_neigh_list_lock){-+..}, at: [<f8d31ff7>] 
      rose_route_frame+0x57/0x620 [rose]
        #5:  (rose_route_list_lock){-+..}, at: [<f8d32001>] 
      rose_route_frame+0x61/0x620 [rose]
      
      stack backtrace:
      Pid: 3811, comm: ax25ipd Not tainted 2.6.25 #3
        [<c0147e27>] print_deadlock_bug+0xc7/0xd0
        [<c0147eca>] check_deadlock+0x9a/0xb0
        [<c0149cd2>] validate_chain+0x1e2/0x310
        [<c0149b95>] ? validate_chain+0xa5/0x310
        [<c010a7d8>] ? native_sched_clock+0x88/0xc0
        [<c0149fa1>] __lock_acquire+0x1a1/0x750
        [<c014a5d1>] lock_acquire+0x81/0xa0
        [<f8d31f1a>] ? rose_get_neigh+0x1a/0xa0 [rose]
        [<c03201a3>] _spin_lock_bh+0x33/0x60
        [<f8d31f1a>] ? rose_get_neigh+0x1a/0xa0 [rose]
        [<f8d31f1a>] rose_get_neigh+0x1a/0xa0 [rose]
        [<f8d32404>] rose_route_frame+0x464/0x620 [rose]
        [<c031ffdd>] ? _read_unlock+0x1d/0x20
        [<f8d31fa0>] ? rose_route_frame+0x0/0x620 [rose]
        [<f8d1c396>] ax25_rx_iframe+0x66/0x3b0 [ax25]
        [<f8d1f42f>] ? ax25_start_t3timer+0x1f/0x40 [ax25]
        [<f8d1e65b>] ax25_std_frame_in+0x7fb/0x890 [ax25]
        [<c0320005>] ? _spin_unlock_bh+0x25/0x30
        [<f8d1bdf6>] ax25_kiss_rcv+0x2c6/0x800 [ax25]
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c014a8a7>] ? __lock_release+0x47/0x70
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c031ffdd>] ? _read_unlock+0x1d/0x20
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c02a4d3a>] ? sock_queue_rcv_skb+0x13a/0x1d0
        [<c02a4c45>] ? sock_queue_rcv_skb+0x45/0x1d0
        [<f8d1bb30>] ? ax25_kiss_rcv+0x0/0x800 [ax25]
        [<c02ac715>] netif_receive_skb+0x255/0x2f0
        [<c02ac5c0>] ? netif_receive_skb+0x100/0x2f0
        [<c02af05c>] process_backlog+0x7c/0xf0
        [<c02aeb0c>] net_rx_action+0x16c/0x230
        [<c02aea36>] ? net_rx_action+0x96/0x230
        [<c012bd53>] __do_softirq+0x93/0x120
        [<f8d2a68a>] ? mkiss_receive_buf+0x33a/0x3f0 [mkiss]
        [<c012be37>] do_softirq+0x57/0x60
        [<c012c265>] local_bh_enable_ip+0xa5/0xe0
        [<c0320005>] _spin_unlock_bh+0x25/0x30
        [<f8d2a68a>] mkiss_receive_buf+0x33a/0x3f0 [mkiss]
        [<c025ea37>] pty_write+0x47/0x60
        [<c025c620>] write_chan+0x1b0/0x220
        [<c0259a1c>] ? tty_write_lock+0x1c/0x50
        [<c011fec0>] ? default_wake_function+0x0/0x10
        [<c0259bea>] tty_write+0x12a/0x1c0
        [<c025c470>] ? write_chan+0x0/0x220
        [<c018bbc6>] vfs_write+0x96/0x130
        [<c0259ac0>] ? tty_write+0x0/0x1c0
        [<c018c24d>] sys_write+0x3d/0x70
        [<c0104d1e>] sysenter_past_esp+0x5f/0xa5
        =======================
      BUG: soft lockup - CPU#0 stuck for 61s! [ax25ipd:3811]
      
      Pid: 3811, comm: ax25ipd Not tainted (2.6.25 #3)
      EIP: 0060:[<c010a9db>] EFLAGS: 00000246 CPU: 0
      EIP is at native_read_tsc+0xb/0x20
      EAX: b404aa2c EBX: b404a9c9 ECX: 017f1000 EDX: 0000076b
      ESI: 00000001 EDI: 00000000 EBP: ecc83afc ESP: ecc83afc
        DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
      CR0: 8005003b CR2: b7f5f000 CR3: 2cd8e000 CR4: 000006f0
      DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      DR6: ffff0ff0 DR7: 00000400
        [<c0204937>] delay_tsc+0x17/0x30
        [<c02048e9>] __delay+0x9/0x10
        [<c02127f6>] __spin_lock_debug+0x76/0xf0
        [<c0212618>] ? spin_bug+0x18/0x100
        [<c0147923>] ? __lock_contended+0xa3/0x110
        [<c0212998>] _raw_spin_lock+0x68/0x90
        [<c03201bf>] _spin_lock_bh+0x4f/0x60
        [<f8d31f1a>] ? rose_get_neigh+0x1a/0xa0 [rose]
        [<f8d31f1a>] rose_get_neigh+0x1a/0xa0 [rose]
        [<f8d32404>] rose_route_frame+0x464/0x620 [rose]
        [<c031ffdd>] ? _read_unlock+0x1d/0x20
        [<f8d31fa0>] ? rose_route_frame+0x0/0x620 [rose]
        [<f8d1c396>] ax25_rx_iframe+0x66/0x3b0 [ax25]
        [<f8d1f42f>] ? ax25_start_t3timer+0x1f/0x40 [ax25]
        [<f8d1e65b>] ax25_std_frame_in+0x7fb/0x890 [ax25]
        [<c0320005>] ? _spin_unlock_bh+0x25/0x30
        [<f8d1bdf6>] ax25_kiss_rcv+0x2c6/0x800 [ax25]
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c014a8a7>] ? __lock_release+0x47/0x70
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c031ffdd>] ? _read_unlock+0x1d/0x20
        [<c02a4769>] ? sock_def_readable+0x59/0x80
        [<c02a4d3a>] ? sock_queue_rcv_skb+0x13a/0x1d0
        [<c02a4c45>] ? sock_queue_rcv_skb+0x45/0x1d0
        [<f8d1bb30>] ? ax25_kiss_rcv+0x0/0x800 [ax25]
        [<c02ac715>] netif_receive_skb+0x255/0x2f0
        [<c02ac5c0>] ? netif_receive_skb+0x100/0x2f0
        [<c02af05c>] process_backlog+0x7c/0xf0
        [<c02aeb0c>] net_rx_action+0x16c/0x230
        [<c02aea36>] ? net_rx_action+0x96/0x230
        [<c012bd53>] __do_softirq+0x93/0x120
        [<f8d2a68a>] ? mkiss_receive_buf+0x33a/0x3f0 [mkiss]
        [<c012be37>] do_softirq+0x57/0x60
        [<c012c265>] local_bh_enable_ip+0xa5/0xe0
        [<c0320005>] _spin_unlock_bh+0x25/0x30
        [<f8d2a68a>] mkiss_receive_buf+0x33a/0x3f0 [mkiss]
        [<c025ea37>] pty_write+0x47/0x60
        [<c025c620>] write_chan+0x1b0/0x220
        [<c0259a1c>] ? tty_write_lock+0x1c/0x50
        [<c011fec0>] ? default_wake_function+0x0/0x10
        [<c0259bea>] tty_write+0x12a/0x1c0
        [<c025c470>] ? write_chan+0x0/0x220
        [<c018bbc6>] vfs_write+0x96/0x130
        [<c0259ac0>] ? tty_write+0x0/0x1c0
        [<c018c24d>] sys_write+0x3d/0x70
        [<c0104d1e>] sysenter_past_esp+0x5f/0xa5
        =======================
      
      Since rose_route_frame() does not use rose_node_list we can safely
      remove rose_node_list_lock spin lock here and let it be free for
      rose_get_neigh().
      Signed-off-by: default avatarBernard Pidoux <f6bvp@amsat.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      047f7617
  5. 19 Apr, 2008 9 commits