1. 20 Apr, 2009 8 commits
  2. 17 Apr, 2009 21 commits
  3. 16 Apr, 2009 11 commits
    • David S. Miller's avatar
    • Tony Breeds's avatar
      ixgbe: Be explict with what we are !'ing in ixgbe_sfp_config_module_task() · 2238aff5
      Tony Breeds authored
      GCC warns:
      drivers/net/ixgbe/ixgbe_main.c: In function 'ixgbe_sfp_config_module_task':
      drivers/net/ixgbe/ixgbe_main.c:3920: warning: suggest parantheses around
      operand of '!' or change '&' to '&&' or '!' to '~'
      
      Which I think is right.  Bracket to remove ambiguity.
      Signed-off-by: default avatarTony Breeds <tony@bakeyournoodle.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2238aff5
    • Patrick McHardy's avatar
      netfilter: nf_nat: add support for persistent mappings · 98d500d6
      Patrick McHardy authored
      The removal of the SAME target accidentally removed one feature that is
      not available from the normal NAT targets so far, having multi-range
      mappings that use the same mapping for each connection from a single
      client. The current behaviour is to choose the address from the range
      based on source and destination IP, which breaks when communicating
      with sites having multiple addresses that require all connections to
      originate from the same IP address.
      
      Introduce a IP_NAT_RANGE_PERSISTENT option that controls whether the
      destination address is taken into account for selecting addresses.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12954Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      98d500d6
    • Johannes Berg's avatar
      ar9170: fix struct layout on arm · 1269fa73
      Johannes Berg authored
      arm will pad even between u8's, so mark the structs/unions
      packed. Fixes a build bug on arm due to BUILD_BUG_ON tests
      in the code.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Reported-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1269fa73
    • Pavel Roskin's avatar
      orinoco: correct timeout logic in __orinoco_hw_set_tkip_key() · 91fe9ca7
      Pavel Roskin authored
      If the value read from HERMES_RID_TXQUEUEEMPTY becomes 0 after exactly
      100 readings, we wrongly consider it a timeout.  Rewrite the clever
      while loop as a for loop that does the right thing and looks simpler.
      
      Reported by Juha Leppanen <juha_motorsportcom@luukku.com>
      Signed-off-by: default avatarPavel Roskin <proski@gnu.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      91fe9ca7
    • Gerrit Renker's avatar
      mac80211: Fragmentation threshold (typo) · 23a99840
      Gerrit Renker authored
      mac80211: Fragmentation threshold (typo)
      
      ieee80211_ioctl_siwfrag() sets the fragmentation_threshold to 2352
      when frame fragmentation is to be disabled, yet the corresponding
      'get' function tests for 2353 bytes instead.
      
      This causes user-space tools to display a fragmentation threshold
      of 2352 bytes even if fragmentation has been disabled.
      Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      23a99840
    • Herton Ronaldo Krzesinski's avatar
      rt2x00: prevent double kfree when failing to register hardware · f05faa31
      Herton Ronaldo Krzesinski authored
      In a scenario where there isn't any firmware available, we will have a
      double kfree of rt2x00dev->spec.channels_info when ieee80211_register_hw
      returns an error status inside rt2x00lib_probe_hw.
      
      The problem is that if ieee80211_register_hw fails, we call
      rt2x00lib_remove_hw twice:
      * first inside rt2x00lib_probe_hw upon failure of ieee80211_register_hw
      * error status is returned to rt2x00lib_probe_dev, which then sees it and
        calls in this case rt2x00lib_remove_dev that will again run
        rt2x00lib_remove_hw
      
      Prevent this avoiding calling rt2x00lib_remove_hw inside
      rt2x00lib_probe_hw
      
      Problem was detected with CONFIG_DEBUG_PAGEALLOC=y, CONFIG_SLUB_DEBUG=y,
      CONFIG_SLUB_DEBUG_ON=y, that dumps this with no firmware available:
      
      rt61pci 0000:00:07.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
      wmaster0 (rt61pci): not using net_device_ops yet
      phy0: Selected rate control algorithm 'pid'
      phy0: Failed to initialize wep: -2
      phy0 -> rt2x00lib_probe_dev: Error - Failed to initialize hw.
      =============================================================================
      BUG kmalloc-128: Object already free
      -----------------------------------------------------------------------------
      
      INFO: Allocated in rt61pci_probe_hw+0x3e5/0x6e0 [rt61pci] age=340 cpu=0 pid=21
      INFO: Freed in rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib] age=0 cpu=0 pid=21
      INFO: Slab 0xc13ac3e0 objects=23 used=10 fp=0xdd59f6e0 flags=0x400000c3
      INFO: Object 0xdd59f6e0 @offset=1760 fp=0xdd59f790
      
      Bytes b4 0xdd59f6d0:  15 00 00 00 b2 8a fb ff 5a 5a 5a 5a 5a 5a 5a 5a ....².ûÿZZZZZZZZ
        Object 0xdd59f6e0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f6f0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f700:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f710:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f720:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f730:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f740:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
        Object 0xdd59f750:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5 kkkkkkkkkkkkkkk¥
       Redzone 0xdd59f760:  bb bb bb bb                                     »»»»
       Padding 0xdd59f788:  5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
      Pid: 21, comm: stage1 Not tainted 2.6.29.1-desktop-1.1mnb #1
      Call Trace:
       [<c01abbb3>] print_trailer+0xd3/0x120
       [<c01abd37>] object_err+0x37/0x50
       [<c01acf57>] __slab_free+0xe7/0x2f0
       [<c01ad1de>] kfree+0x7e/0xd0
       [<e0e4a239>] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
       [<e0e4a239>] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
       [<e0e4a239>] rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
       [<e0e4acc7>] rt2x00lib_remove_dev+0x37/0x50 [rt2x00lib]
       [<e0e4b087>] rt2x00lib_probe_dev+0x1a7/0x3b0 [rt2x00lib]
       [<e0eb288f>] rt2x00pci_probe+0xdf/0x1ee [rt2x00pci]
       [<c026b9ee>] local_pci_probe+0xe/0x10
       [<c026c750>] pci_device_probe+0x60/0x80
       [<c02d5c2a>] driver_probe_device+0x9a/0x2e0
       [<c02d5ef9>] __driver_attach+0x89/0x90
       [<c02d541b>] bus_for_each_dev+0x4b/0x70
       [<c026c690>] ? pci_device_remove+0x0/0x40
       [<c02d59d9>] driver_attach+0x19/0x20
       [<c02d5e70>] ? __driver_attach+0x0/0x90
       [<c02d4cef>] bus_add_driver+0x1cf/0x2a0
       [<c026c690>] ? pci_device_remove+0x0/0x40
       [<c02d60c9>] driver_register+0x69/0x140
       [<c026c9b0>] __pci_register_driver+0x40/0x80
       [<e0ecc000>] ? rt61pci_init+0x0/0x19 [rt61pci]
       [<e0ecc017>] rt61pci_init+0x17/0x19 [rt61pci]
       [<c0101116>] do_one_initcall+0x26/0x1c0
       [<c01ab90c>] ? slab_pad_check+0x3c/0x120
       [<c01ab90c>] ? slab_pad_check+0x3c/0x120
       [<c01ac8da>] ? check_object+0xda/0x210
       [<c01b0026>] ? percpu_free+0x46/0x50
       [<c01ad09e>] ? __slab_free+0x22e/0x2f0
       [<c01b0026>] ? percpu_free+0x46/0x50
       [<c01b0026>] ? percpu_free+0x46/0x50
       [<c01b0026>] ? percpu_free+0x46/0x50
       [<c01687ec>] ? stop_machine_destroy+0x3c/0x40
       [<c015e515>] ? load_module+0xa5/0x1c50
       [<e0ec5000>] ? rt61pci_eepromregister_read+0x0/0x40 [rt61pci]
       [<e0eb2000>] ? rt2x00pci_write_tx_data+0x0/0x90 [rt2x00pci]
       [<c03ac2fb>] ? mutex_lock+0xb/0x20
       [<c03ac2fb>] ? mutex_lock+0xb/0x20
       [<c017ad16>] ? tracepoint_update_probe_range+0x76/0xa0
       [<c017ad6f>] ? tracepoint_module_notify+0x2f/0x40
       [<c03b02ed>] ? notifier_call_chain+0x2d/0x70
       [<c014f0ed>] ? __blocking_notifier_call_chain+0x4d/0x60
       [<c014f11a>] ? blocking_notifier_call_chain+0x1a/0x20
       [<c0160156>] sys_init_module+0x96/0x1d0
       [<c019dad6>] ? sys_munmap+0x46/0x60
       [<c0105546>] syscall_call+0x7/0xb
      FIX kmalloc-128: Object at 0xdd59f6e0 not freed
      rt61pci 0000:00:07.0: PCI INT A disabled
      rt61pci: probe of 0000:00:07.0 failed with error -2
      Signed-off-by: default avatarHerton Ronaldo Krzesinski <herton@mandriva.com.br>
      Acked-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f05faa31
    • Johannes Berg's avatar
      fix iwl3945 registration regression · d60cc91a
      Johannes Berg authored
      I forgot that iwl3945 registration is separate from iwlagn.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      d60cc91a
    • Michael Buesch's avatar
      mac80211: quiet beacon loss messages · a860402d
      Michael Buesch authored
      On Sunday 05 April 2009 11:29:38 Michael Buesch wrote:
      > On Sunday 05 April 2009 11:23:59 Jaswinder Singh Rajput wrote:
      > > With latest linus tree I am getting, .config file attached:
      > >
      > > [   22.895051] r8169: eth0: link down
      > > [   22.897564] ADDRCONF(NETDEV_UP): eth0: link is not ready
      > > [   22.928047] ADDRCONF(NETDEV_UP): wlan0: link is not ready
      > > [   22.982292] libvirtd used greatest stack depth: 4200 bytes left
      > > [   63.709879] wlan0: authenticate with AP 00:11:95:9e:df:f6
      > > [   63.712096] wlan0: authenticated
      > > [   63.712127] wlan0: associate with AP 00:11:95:9e:df:f6
      > > [   63.726831] wlan0: RX AssocResp from 00:11:95:9e:df:f6 (capab=0x471 status=0 aid=1)
      > > [   63.726855] wlan0: associated
      > > [   63.730093] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
      > > [   74.296087] wlan0: no IPv6 routers present
      > > [   79.349044] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  119.358200] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  179.354292] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  259.366044] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  359.348292] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  361.953459] packagekitd used greatest stack depth: 4160 bytes left
      > > [  478.824258] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  598.813343] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  718.817292] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  838.824567] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [  958.815402] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1078.848434] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1198.822913] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1318.824931] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1438.814157] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1558.827336] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1678.823011] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1798.830589] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 1918.828044] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 2038.827224] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 2116.517152] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 2158.840243] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      > > [ 2278.827427] wlan0: beacon loss from AP 00:11:95:9e:df:f6 - sending probe request
      >
      >
      > I think this message should only show if CONFIG_MAC80211_VERBOSE_DEBUG is set.
      > It's kind of expected that we lose a beacon once in a while, so we shouldn't print
      > verbose messages to the kernel log (even if they are KERN_DEBUG).
      >
      > And besides that, I think one can easily remotely trigger this message and flood the logs.
      > So it should probably _also_ be ratelimited.
      
      Something like this:
      Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
      a860402d
    • Michael Buesch's avatar
      b43: Do radio lock assertion in software · 591f3dc2
      Michael Buesch authored
      The assertion of the lock-bit in the hardware register is unreliable,
      because there are devices with quirks that will randomly set the bit.
      
      Do the assertion in software, only.
      Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      591f3dc2
    • Ivo van Doorn's avatar
      rt2x00: Add rt73usb USB IDs · 6aabd4c4
      Ivo van Doorn authored
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6aabd4c4