1. 24 Apr, 2008 12 commits
  2. 23 Apr, 2008 5 commits
  3. 22 Apr, 2008 2 commits
  4. 21 Apr, 2008 10 commits
  5. 20 Apr, 2008 11 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
    • Bernard Pidoux's avatar
      rose: Socket lock was not released before returning to user space · 43837b1e
      Bernard Pidoux authored
      ================================================
      [ BUG: lock held when returning to user space! ]
      ------------------------------------------------
      xfbbd/3683 is leaving the kernel with locks still held!
      1 lock held by xfbbd/3683:
        #0:  (sk_lock-AF_ROSE){--..}, at: [<c8cd1eb3>] rose_connect+0x73/0x420 [rose]
      
      INFO: task xfbbd:3683 blocked for more than 120 seconds.
      "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      xfbbd         D 00000246     0  3683   3669
              c6965ee0 00000092 c02c5c40 00000246 c0f6b5f0 c0f6b5c0 c0f6b5f0 c0f6b5c0
              c0f6b614 c6965f18 c024b74b ffffffff c06ba070 00000000 00000000 00000001
              c6ab07c0 c012d450 c0f6b634 c0f6b634 c7b5bf10 c0d6004c c7b5bf10 c6965f40
      Call Trace:
        [<c024b74b>] lock_sock_nested+0x6b/0xd0
        [<c012d450>] ? autoremove_wake_function+0x0/0x40
        [<c02488f1>] sock_fasync+0x41/0x150
        [<c0249e69>] sock_close+0x19/0x40
        [<c0175d54>] __fput+0xb4/0x170
        [<c0176018>] fput+0x18/0x20
        [<c017300e>] filp_close+0x3e/0x70
        [<c01744e9>] sys_close+0x69/0xb0
        [<c0103bda>] sysenter_past_esp+0x5f/0xa5
        =======================
      INFO: lockdep is turned off.
      Signed-off-by: default avatarBernard Pidoux <f6bvp@amsat.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      43837b1e
    • Pavel Machek's avatar
      hci_usb: remove code obfuscation · d129f188
      Pavel Machek authored
      _urb_free is an alias for kfree... making code longer & harder to
      read. Remove it.
      Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d129f188
    • Julia Lawall's avatar
      drivers/net/appletalk: use time_before, time_before_eq, etc · b132fba1
      Julia Lawall authored
      The functions time_before, time_before_eq, time_after, and time_after_eq
      are more robust for comparing jiffies against other values.
      
      A simplified version of the semantic patch making this change is as follows:
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @ change_compare_np @
      expression E;
      @@
      
      (
      - jiffies <= E
      + time_before_eq(jiffies,E)
      |
      - jiffies >= E
      + time_after_eq(jiffies,E)
      |
      - jiffies < E
      + time_before(jiffies,E)
      |
      - jiffies > E
      + time_after(jiffies,E)
      )
      
      @ include depends on change_compare_np @
      @@
      
      #include <linux/jiffies.h>
      
      @ no_include depends on !include && change_compare_np @
      @@
      
        #include <linux/...>
      + #include <linux/jiffies.h>
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b132fba1
    • Julia Lawall's avatar
      drivers/atm: use time_before, time_before_eq, etc · 420635f5
      Julia Lawall authored
      The functions time_before, time_before_eq, time_after, and time_after_eq
      are more robust for comparing jiffies against other values.
      
      A simplified version of the semantic patch making this change is as follows:
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @ change_compare_np @
      expression E;
      @@
      
      (
      - jiffies <= E
      + time_before_eq(jiffies,E)
      |
      - jiffies >= E
      + time_after_eq(jiffies,E)
      |
      - jiffies < E
      + time_before(jiffies,E)
      |
      - jiffies > E
      + time_after(jiffies,E)
      )
      
      @ include depends on change_compare_np @
      @@
      
      #include <linux/jiffies.h>
      
      @ no_include depends on !include && change_compare_np @
      @@
      
        #include <linux/...>
      + #include <linux/jiffies.h>
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      420635f5
    • Pavel Machek's avatar
      hci_usb: do not initialize static variables to 0 · a8827113
      Pavel Machek authored
      hci_usb: do not initialize static variables to 0.
      Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a8827113
    • Matt Carlson's avatar
      tg3: 5701 DMA corruption fix · 41588ba1
      Matt Carlson authored
      Herbert Xu's commit fb93134d, entitled
      "[TCP]: Fix size calculation in sk_stream_alloc_pskb", has triggered a
      bug in the 5701 where the 5701 DMA engine will corrupt outgoing
      packets.  This problem only happens when the starting address of the
      packet matches a certain range of offsets and only when the 5701 is
      placed downstream of a particular Intel bridge.
      
      This patch detects the problematic bridge and if present, readjusts the
      starting address of the packet data to a dword aligned boundary.
      Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      41588ba1
    • Mark Asselstine's avatar
      atm nicstar: Removal of debug code containing deprecated calls to cli()/sti() · 36ef4080
      Mark Asselstine authored
      Code within NS_DEBUG_SPINLOCKS contained deprecated cli()/sti()
      function calls.  NS_DEBUG_SPINLOCKS and the associated code seems to
      be of little use these days so the strategy of removing this code
      rather then updating it to use spinlocks has been taken.
      Signed-off-by: default avatarMark Asselstine <mark.asselstine@windriver.com>
      Reviewed-by: default avatarMatthew Wilcox <willy@linux.intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      36ef4080
    • David S. Miller's avatar
      iwlwifi: Fix unconditional access to station->tidp[].agg. · 344234de
      David S. Miller authored
      Reportred by Ingo Molnar:
      
      drivers/net/wireless/iwlwifi/iwl-debugfs.c: In function 'iwl_dbgfs_stations_read':
      drivers/net/wireless/iwlwifi/iwl-debugfs.c:256: error: 'struct iwl4965_tid_data' has no member named 'agg'
      
      Needs CONFIG_IWL4965_HT protection.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      344234de