1. 28 3月, 2009 10 次提交
    • H
      mac80211: start pending scan after probe/auth/assoc timed out · 11432379
      Helmut Schaa 提交于
      If a scan is queued in STA mode while the interface is in state direct
      probe, authenticate or associate the scan is delayed until the interface
      enters disabled or associated state. But in case of direct probe-,
      authentication- or association- timeout sta_work will not be scheduled
      anymore (without external trigger) and thus the pending scan is not
      executed and prevents a new scan from being triggered (-EBUSY).
      
      Fix this by queueing the sta work again after direct probe-, authentication-
      and association- timeout.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      11432379
    • J
      mac80211: reduce max number of queues · 51b38147
      Johannes Berg 提交于
      No hw/driver actually supports more than four queues right now,
      and we allocate a number of things per queue which means we
      waste a bit of memory. Reduce the maximum number to four to
      accurately reflect what we do (and need for QoS). Even if we
      had hardware supporting more queues we couldn't take advantage
      of that right now anyway.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      51b38147
    • J
      mac80211: remove ieee80211_num_regular_queues · 176be728
      Johannes Berg 提交于
      This inline is useless and actually makes the code _longer_
      rather than shorter.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      176be728
    • V
    • R
      cfg80211/nl80211: remove usage of CONFIG_NL80211 · 633e24ed
      Reinette Chatre 提交于
      The scan capability added to cfg80211/nl80211 introduced a
      dependency on nl80211 by cfg80211. We can thus no longer have
      just cfg80211 without nl80211. Specifically, cfg80211_scan_done()
      calls nl80211_send_scan_aborted() or nl80211_send_scan_done().
      
      Now we remove the option for user to select nl80211. It will always
      be compiled if user selects cfg80211.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      633e24ed
    • A
      mac80211: ieee80211_ibss_commit() cleanup · fa56dddd
      Alina Friedrichsen 提交于
      Don't call ieee80211_sta_find_ibss() directly, like it's done in STA
      mode, so that the commit() call is more harmless respectively has
      less site-effects.
      Signed-off-by: NAlina Friedrichsen <x-alina@gmx.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fa56dddd
    • A
      ucc_geth: Fix three oopses in PHY {de,}initialization code · 79675900
      Anton Vorontsov 提交于
      When there are no free snums, UCC ethernet should gracefully fail, but
      currently it oopses this way:
      
        # ifconfig eth0 up
        fill_init_enet_entries: Can not get SNUM.
        ucc_geth_startup: Can not fill p_init_enet_param_shadow.
        eth0: Cannot configure net device, aborting.
        Unable to handle kernel paging request for data at address 0x00000190
        Faulting instruction address: 0xc0294c88
        Oops: Kernel access of bad area, sig: 11 [#1]
        [...]
        NIP [c0294c88] mutex_lock+0x0/0x1c
        LR [c01b6be8] phy_stop+0x20/0x70
        Call Trace:
        [efb25da0] [efb2eb60] 0xefb2eb60 (unreliable)
        [efb25db0] [c01b2058] ucc_geth_stop+0x2c/0x8c
        [efb25dd0] [c01b4194] ucc_geth_open+0x48/0x27c
        [efb25df0] [c020eec0] dev_open+0xc0/0x118
        [...]
      
      This is because the ucc_geth_stop() routine assumes that ugeth->phydev
      is always initialized by the ucc_geth_open(), while it is not in case
      of errors.
      
      If we add a check to the ucc_geth_stop(), then another oops pops up:
      
        Unable to handle kernel paging request for data at address 0x00000004
        Faulting instruction address: 0xc01b46a4
        Oops: Kernel access of bad area, sig: 11 [#1]
        [...]
        NIP [c01b46a4] adjust_link+0x20/0x1b4
        LR [c01b770c] phy_state_machine+0xdc/0x44c
        Call Trace:
        [ef83bf10] [c021b388] linkwatch_schedule_work+0x74/0xf8 (unreliable)
        [ef83bf40] [c01b770c] phy_state_machine+0xdc/0x44c
        [ef83bf60] [c004c13c] run_workqueue+0xb8/0x148
        [ef83bf90] [c004c870] worker_thread+0x70/0xd0
        [ef83bfd0] [c00505fc] kthread+0x48/0x84
        [ef83bff0] [c000f464] kernel_thread+0x4c/0x68
        [...]
      
      That one happens because ucc_geth_stop() does not call phy_disconnect()
      and so phylib state machine is running without any idea that a MAC has
      just died.
      
      Also, when device tree specifies fixed-link, and CONFIG_FIXED_PHY
      is disabled, we'll get this oops:
      
        0:01 not found
        eth2: Could not attach to PHY
        eth2: Cannot initialize PHY, aborting.
        Unable to handle kernel paging request for data at address 0x00000190
        Faulting instruction address: 0xc02967d0
        Oops: Kernel access of bad area, sig: 11 [#1]
        [...]
        NIP [c02967d0] mutex_lock+0x0/0x1c
        LR [c01b6bcc] phy_stop+0x20/0x70
        Call Trace:
        [ef82be50] [efb6bb60] 0xefb6bb60 (unreliable)
        [ef82be60] [c01b2058] ucc_geth_stop+0x2c/0x8c
        [ef82be80] [c01b4194] ucc_geth_open+0x48/0x27c
        [ef82bea0] [c0210a04] dev_open+0xc0/0x118
        [ef82bec0] [c020f85c] dev_change_flags+0x84/0x1ac
        [ef82bee0] [c037b768] ic_open_devs+0x168/0x2bc
        [ef82bf20] [c037ca98] ip_auto_config+0x90/0x28c
        [ef82bf60] [c0001b9c] do_one_initcall+0x34/0x1a0
        [ef82bfd0] [c035e240] do_initcalls+0x38/0x58
        [ef82bfe0] [c035e2c4] kernel_init+0x30/0x90
        [ef82bff0] [c000f464] kernel_thread+0x4c/0x68
        [...]
      
      And again, ucc_geth_stop() assumes that ugeth->phydev is there, while
      it isn't.
      
      This patch fixes all three oopses simply by rearranging some code:
      
      - In ucc_geth_open(): move init_phy() call to the beginning, so
        that we only call ucc_geth_stop() with a PHY attached;
      - Move phy_disconnect() call from ucc_geth_close() to
        ucc_geth_stop(), so that we'll always disconnect the PHY.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      79675900
    • D
      net: Add missing include into include/linux/netdevice.h · cc0be322
      Dmitri Vorobiev 提交于
      The inline function skb_gro_mac_header defined in include/linux/netdevice.h
      makes use of page_address(). Depending on configuration options, the latter
      is either defined as a macro or is declared as a function in another header
      file, namely include/linux/mm.h. However, include/linux/netdevice.h does not
      include include/linux/mm.h.
      
      On MIPS, this has produced the following build error:
      
        CC      kernel/sysctl_check.o
      In file included from include/linux/icmpv6.h:173,
                       from include/linux/ipv6.h:208,
                       from include/net/ip_vs.h:26,
                       from kernel/sysctl_check.c:6:
      include/linux/netdevice.h: In function 'skb_gro_mac_header':
      include/linux/netdevice.h:1132: error: implicit declaration of function
      'page_address'
      include/linux/netdevice.h:1133: warning: pointer/integer type mismatch
      in conditional expression
      make[1]: *** [kernel/sysctl_check.o] Error 1
      make: *** [kernel] Error 2
      
      The patch adds the missing include and fixes the build error.
      Signed-off-by: NDmitri Vorobiev <dmitri.vorobiev@movial.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cc0be322
    • L
      gianfar: only check headroom when FCB is needed · 5b28beaf
      Li Yang 提交于
      Signed-off-by: NLi Yang <leoli@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5b28beaf
    • D
      8ebaebca
  2. 27 3月, 2009 30 次提交