Permalink
Commits on Dec 9, 2011
  1. Linux 3.1.5

    gregkh committed Dec 9, 2011
  2. sch_red: fix red_change

    [ Upstream commit 1ee5fa1 ]
    
    Le mercredi 30 novembre 2011 à 14:36 -0800, Stephen Hemminger a écrit :
    
    > (Almost) nobody uses RED because they can't figure it out.
    > According to Wikipedia, VJ says that:
    >  "there are not one, but two bugs in classic RED."
    
    RED is useful for high throughput routers, I doubt many linux machines
    act as such devices.
    
    I was considering adding Adaptative RED (Sally Floyd, Ramakrishna
    Gummadi, Scott Shender), August 2001
    
    In this version, maxp is dynamic (from 1% to 50%), and user only have to
    setup min_th (target average queue size)
    (max_th and wq (burst in linux RED) are automatically setup)
    
    By the way it seems we have a small bug in red_change()
    
    if (skb_queue_empty(&sch->q))
    	red_end_of_idle_period(&q->parms);
    
    First, if queue is empty, we should call
    red_start_of_idle_period(&q->parms);
    
    Second, since we dont use anymore sch->q, but q->qdisc, the test is
    meaningless.
    
    Oh well...
    
    [PATCH] sch_red: fix red_change()
    
    Now RED is classful, we must check q->qdisc->q.qlen, and if queue is empty,
    we start an idle period, not end it.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Dec 1, 2011
  3. sch_red: fix red_calc_qavg_from_idle_time

    [ Upstream commit ea6a5d3 ]
    
    Since commit a4a710c (pkt_sched: Change PSCHED_SHIFT from 10 to
    6) it seems RED/GRED are broken.
    
    red_calc_qavg_from_idle_time() computes a delay in us units, but this
    delay is now 16 times bigger than real delay, so the final qavg result
    smaller than expected.
    
    Use standard kernel time services since there is no need to obfuscate
    them.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Nov 30, 2011
  4. ipv4: make sure RTO_ONLINK is saved in routing cache

    [ Upstream commit f61759e ]
    
    __mkroute_output fails to work with the original tos
    and uses value with stripped RTO_ONLINK bit. Make sure we put
    the original TOS bits into rt_key_tos because it used to match
    cached route.
    
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Julian Anastasov committed with gregkh Dec 2, 2011
  5. ipv4: Perform peer validation on cached route lookup.

    [ Upstream commit efbc368,
      incorporating a follow-on change to prevent an OOPS ]
    
    Otherwise we won't notice the peer GENID change.
    
    Reported-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    davem330 committed with gregkh Dec 1, 2011
  6. inet: add a redirect generation id in inetpeer

    [ Upstream commit de68dca ]
    
    Now inetpeer is the place where we cache redirect information for ipv4
    destinations, we must be able to invalidate informations when a route is
    added/removed on host.
    
    As inetpeer is not yet namespace aware, this patch adds a shared
    redirect_genid, and a per inetpeer redirect_genid. This might be changed
    later if inetpeer becomes ns aware.
    
    Cache information for one inerpeer is valid as long as its
    redirect_genid has the same value than global redirect_genid.
    
    Reported-by: Arkadiusz Miśkiewicz <a.miskiewicz@gmail.com>
    Tested-by: Arkadiusz Miśkiewicz <a.miskiewicz@gmail.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Nov 26, 2011
  7. ipv4: fix redirect handling

    [ Upstream commit 9cc20b2 ]
    
    commit f39925d (ipv4: Cache learned redirect information in
    inetpeer.) introduced a regression in ICMP redirect handling.
    
    It assumed ipv4_dst_check() would be called because all possible routes
    were attached to the inetpeer we modify in ip_rt_redirect(), but thats
    not true.
    
    commit 7cc9150 (route: fix ICMP redirect validation) tried to fix
    this but solution was not complete. (It fixed only one route)
    
    So we must lookup existing routes (including different TOS values) and
    call check_peer_redir() on them.
    
    Reported-by: Ivan Zahariev <famzah@icdsoft.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Flavio Leitner <fbl@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Nov 18, 2011
  8. route: fix ICMP redirect validation

    [ Upstream commit 7cc9150 ]
    
    The commit f39925d
    (ipv4: Cache learned redirect information in inetpeer.)
    removed some ICMP packet validations which are required by
    RFC 1122, section 3.2.2.2:
    ...
      A Redirect message SHOULD be silently discarded if the new
      gateway address it specifies is not on the same connected
      (sub-) net through which the Redirect arrived [INTRO:2,
      Appendix A], or if the source of the Redirect is not the
      current first-hop gateway for the specified destination (see
      Section 3.3.1).
    
    Signed-off-by: Flavio Leitner <fbl@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    fleitner committed with gregkh Oct 24, 2011
  9. ipv4: avoid useless call of the function check_peer_pmtu

    [ Upstream commit 59445b6 ]
    
    In func ipv4_dst_check,check_peer_pmtu should be called only when peer is updated.
    So,if the peer is not updated in ip_rt_frag_needed,we can not inc __rt_peer_genid.
    
    Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Gao feng committed with gregkh Oct 19, 2011
  10. sch_teql: fix lockdep splat

    [ Upstream commit f7e5704 ]
    
    We need rcu_read_lock() protection before using dst_get_neighbour(), and
    we must cache its value (pass it to __teql_resolve())
    
    teql_master_xmit() is called under rcu_read_lock_bh() protection, its
    not enough.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Nov 30, 2011
  11. qeth: l3 fix rcu splat in xmit

    [ Upstream commit 1d36cb4 ]
    
    when use dst_get_neighbour to get neighbour, we need
    rcu_read_lock to protect, since dst_get_neighbour uses
    rcu_dereference.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Frank Blaschka committed with gregkh Nov 15, 2011
  12. ipv4: fix lockdep splat in rt_cache_seq_show

    [ Upstream commit 218fa90 ]
    
    After commit f2c31e3 (fix NULL dereferences in check_peer_redir()),
    dst_get_neighbour() should be guarded by rcu_read_lock() /
    rcu_read_unlock() section.
    
    Reported-by: Miles Lane <miles.lane@gmail.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Eric Dumazet committed with gregkh Nov 29, 2011
  13. ipv4: fix for ip_options_rcv_srr() daddr update.

    [ Upstream commit b12f62e ]
    
    When opt->srr_is_hit is set skb_rtable(skb) has been updated for
    'nexthop' and iph->daddr should always equals to skb_rtable->rt_dst
    holds, We need update iph->daddr either.
    
    Signed-off-by: Li Wei <lw@cn.fujitsu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    liwei committed with gregkh Nov 8, 2011
  14. ah: Read nexthdr value before overwriting it in ahash input callback.

    [ Upstream commit b7ea81a ]
    
    The AH4/6 ahash input callbacks read out the nexthdr field from the AH
    header *after* they overwrite that header.  This is obviously not going
    to end well.  Fix it up.
    
    Signed-off-by: Nick Bowler <nbowler@elliptictech.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Nick Bowler committed with gregkh Nov 8, 2011
  15. ah: Correctly pass error codes in ahash output callback.

    [ Upstream commit 069294e ]
    
    The AH4/6 ahash output callbacks pass nexthdr to xfrm_output_resume
    instead of the error code.  This appears to be a copy+paste error from
    the input case, where nexthdr is expected.  This causes the driver to
    continuously add AH headers to the datagram until either an allocation
    fails and the packet is dropped or the ahash driver hits a synchronous
    fallback and the resulting monstrosity is transmitted.
    
    Correct this issue by simply passing the error code unadulterated.
    
    Signed-off-by: Nick Bowler <nbowler@elliptictech.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Nick Bowler committed with gregkh Nov 8, 2011
  16. clockevents: Set noop handler in clockevents_exchange_device()

    commit de28f25 upstream.
    
    If a device is shutdown, then there might be a pending interrupt,
    which will be processed after we reenable interrupts, which causes the
    original handler to be run. If the old handler is the (broadcast)
    periodic handler the shutdown state might hang the kernel completely.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Thomas Gleixner committed with gregkh Dec 2, 2011
  17. clocksource: Fix bug with max_deferment margin calculation

    commit b1f9196 upstream.
    
    In order to leave a margin of 12.5% we should >> 3 not >> 5.
    
    Signed-off-by: Yang Honggang (Joseph) <eagle.rtlinux@gmail.com>
    [jstultz: Modified commit subject]
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    yanghonggang committed with gregkh Dec 2, 2011
  18. oprofile: Fix crash when unloading module (hr timer mode)

    commit 87121ca upstream.
    
    Oprofile may crash in a KVM guest while unlaoding modules. This
    happens if oprofile_arch_init() fails and oprofile switches to the hr
    timer mode as a fallback. In this case oprofile_arch_exit() is called,
    but it never was initialized properly which causes the crash. This
    patch fixes this.
    
    oprofile: using timer interrupt.
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    PGD 41da3f067 PUD 41d80e067 PMD 0
    Oops: 0002 [#1] PREEMPT SMP
    CPU 5
    Modules linked in: oprofile(-)
    
    Pid: 2382, comm: modprobe Not tainted 3.1.0-rc7-00018-g709a39d #18 Advanced Micro Device Anaheim/Anaheim
    RIP: 0010:[<ffffffff8123c226>]  [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
    RSP: 0018:ffff88041de1de98  EFLAGS: 00010296
    RAX: 0000000000000000 RBX: ffffffffa00060e0 RCX: dead000000200200
    RDX: 0000000000000000 RSI: dead000000100100 RDI: ffffffff8178c620
    RBP: ffff88041de1dea8 R08: 0000000000000001 R09: 0000000000000082
    R10: 0000000000000000 R11: ffff88041de1dde8 R12: 0000000000000080
    R13: fffffffffffffff5 R14: 0000000000000001 R15: 0000000000610210
    FS:  00007f9ae5bef700(0000) GS:ffff88042fd40000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000008 CR3: 000000041ca44000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process modprobe (pid: 2382, threadinfo ffff88041de1c000, task ffff88042db6d040)
    Stack:
     ffff88041de1deb8 ffffffffa0006770 ffff88041de1deb8 ffffffffa000251e
     ffff88041de1dec8 ffffffffa00022c2 ffff88041de1ded8 ffffffffa0004993
     ffff88041de1df78 ffffffff81073115 656c69666f72706f 0000000000610200
    Call Trace:
     [<ffffffffa000251e>] op_nmi_exit+0x15/0x17 [oprofile]
     [<ffffffffa00022c2>] oprofile_arch_exit+0xe/0x10 [oprofile]
     [<ffffffffa0004993>] oprofile_exit+0x13/0x15 [oprofile]
     [<ffffffff81073115>] sys_delete_module+0x1c3/0x22f
     [<ffffffff811bf09e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
     [<ffffffff8148070b>] system_call_fastpath+0x16/0x1b
    Code: 20 c6 78 81 e8 c5 cc 23 00 48 8b 13 48 8b 43 08 48 be 00 01 10 00 00 00 ad de 48 b9 00 02 20 00 00 00 ad de 48 c7 c7 20 c6 78 81
     89 42 08 48 89 10 48 89 33 48 89 4b 08 e8 a6 c0 23 00 5a 5b
    RIP  [<ffffffff8123c226>] unregister_syscore_ops+0x41/0x58
     RSP <ffff88041de1de98>
    CR2: 0000000000000008
    ---[ end trace 06d4e95b6aa3b437 ]---
    
    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Robert Richter committed with gregkh Oct 7, 2011
  19. jump_label: jump_label_inc may return before the code is patched

    commit bbbf7af upstream.
    
    If cpu A calls jump_label_inc() just after atomic_add_return() is
    called by cpu B, atomic_inc_not_zero() will return value greater then
    zero and jump_label_inc() will return to a caller before jump_label_update()
    finishes its job on cpu B.
    
    Link: http://lkml.kernel.org/r/20111018175551.GH17571@redhat.com
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Acked-by: Jason Baron <jbaron@redhat.com>
    Signed-off-by: Gleb Natapov <gleb@redhat.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Gleb Natapov committed with gregkh Oct 18, 2011
  20. perf: Fix parsing of __print_flags() in TP_printk()

    commit d06c27b upstream.
    
    A update is made to the sched:sched_switch event that adds some
    logic to the first parameter of the __print_flags() that shows the
    state of tasks. This change cause perf to fail parsing the flags.
    
    A simple fix is needed to have the parser be able to process ops
    within the argument.
    
    Reported-by: Andrew Vagin <avagin@openvz.org>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Steven Rostedt committed with gregkh Nov 4, 2011
  21. tick-broadcast: Stop active broadcast device when replacing it

    commit c1be843 upstream.
    
    When a better rated broadcast device is installed, then the current
    active device is not disabled, which results in two running broadcast
    devices.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Thomas Gleixner committed with gregkh Dec 2, 2011
  22. tracing: fix event_subsystem ref counting

    commit cb59974 upstream.
    
    Fix a bug introduced by e9dbfae, which prevents event_subsystem from
    ever being released.
    
    Ref_count was added to keep track of subsystem users, not for counting
    events.  Subsystem is created with ref_count = 1, so there is no need to
    increment it for every event, we have nr_events for that.  Fix this by
    touching ref_count only when we actually have a new user -
    subsystem_open().
    
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Link: http://lkml.kernel.org/r/1320052062-7846-1-git-send-email-idryomov@gmail.com
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    idryomov committed with gregkh Oct 31, 2011
  23. rtc: Fix some bugs that allowed accumulating time drift in suspend/re…

    …sume
    
    commit 6a8943d upstream.
    
    The current code checks if abs(delta_delta.tv_sec) is greater or
    equal to two before it discards the old delta value, but this can
    trigger at close to -1 seconds since -1.000000001 seconds is stored
    as tv_sec -2 and tv_nsec 999999999 in a normalized timespec.
    
    rtc_resume had an early return check if the rtc value had not changed
    since rtc_suspend. This effectivly stops time for the duration of the
    short sleep. Check if sleep_time is positive after all the adjustments
    have been applied instead since this allows the old_system adjustment
    in rtc_suspend to have an effect even for short sleep cycles.
    
    Signed-off-by: Arve Hjønnevåg <arve@android.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Arve Hjønnevåg committed with gregkh Nov 23, 2011
  24. rtc: Disable the alarm in the hardware

    commit c0afabd upstream.
    
    Currently, the RTC code does not disable the alarm in the hardware.
    
    This means that after a sequence such as the one below (the files are in the
    RTC sysfs), the box will boot up after 2 minutes even though we've
    asked for the alarm to be turned off.
    
    	# echo $((`cat since_epoch`)+120) > wakealarm
    	# echo 0 > wakealarm
    	# poweroff
    
    Fix this by disabling the alarm when there are no timers to run.
    
    Cc: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    rabinv committed with gregkh Nov 22, 2011
  25. trace_events_filter: Use rcu_assign_pointer() when setting ftrace_eve…

    …nt_call->filter
    
    commit d3d9acf upstream.
    
    ftrace_event_call->filter is sched RCU protected but didn't use
    rcu_assign_pointer().  Use it.
    
    TODO: Add proper __rcu annotation to call->filter and all its users.
    
    -v2: Use RCU_INIT_POINTER() for %NULL clearing as suggested by Eric.
    
    Link: http://lkml.kernel.org/r/20111123164949.GA29639@google.com
    
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    htejun committed with gregkh Nov 23, 2011
  26. ftrace: Remove force undef config value left for testing

    commit c7c6ec8 upstream.
    
    A forced undef of a config value was used for testing and was
    accidently left in during the final commit. This causes x86 to
    run slower than needed while running function tracing as well
    as causes the function graph selftest to fail when DYNMAIC_FTRACE
    is not set. This is because the code in MCOUNT expects the ftrace
    code to be processed with the config value set that happened to
    be forced not set.
    
    The forced config option was left in by:
        commit 6331c28
        ftrace: Fix dynamic selftest failure on some archs
    
    Link: http://lkml.kernel.org/r/20111102150255.GA6973@debian
    
    Reported-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Steven Rostedt committed with gregkh Nov 4, 2011
  27. iwlagn: fix HW crypto for TX-only keys

    commit 274b89c upstream.
    
    Group keys in IBSS or AP mode are not programmed
    into the device since we give the key to it with
    every TX packet. However, we do need mac80211 to
    create the MMIC & PN in all cases. Move the code
    around to set the key flags all the time. We set
    them even when the key is removed again but that
    is obviously harmless.
    
    Reported-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    jmberg committed with gregkh Dec 2, 2011
  28. iwlwifi: do not re-configure HT40 after associated

    commit 34a5b4b upstream.
    
    The ht40 setting should not change after association unless channel switch
    
    This fix a problem we are seeing which cause uCode assert because driver
    sending invalid information and make uCode confuse
    
    Here is the firmware assert message:
    kernel: iwlagn 0000:03:00.0: Microcode SW error detected.  Restarting 0x82000000.
    kernel: iwlagn 0000:03:00.0: Loaded firmware version: 17.168.5.3 build 42301
    kernel: iwlagn 0000:03:00.0: Start IWL Error Log Dump:
    kernel: iwlagn 0000:03:00.0: Status: 0x000512E4, count: 6
    kernel: iwlagn 0000:03:00.0: 0x00002078 | ADVANCED_SYSASSERT
    kernel: iwlagn 0000:03:00.0: 0x00009514 | uPc
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink1
    kernel: iwlagn 0000:03:00.0: 0x00009496 | branchlink2
    kernel: iwlagn 0000:03:00.0: 0x0000D1F2 | interruptlink1
    kernel: iwlagn 0000:03:00.0: 0x00000000 | interruptlink2
    kernel: iwlagn 0000:03:00.0: 0x01008035 | data1
    kernel: iwlagn 0000:03:00.0: 0x0000C90F | data2
    kernel: iwlagn 0000:03:00.0: 0x000005A7 | line
    kernel: iwlagn 0000:03:00.0: 0x5080B520 | beacon time
    kernel: iwlagn 0000:03:00.0: 0xCC515AE0 | tsf low
    kernel: iwlagn 0000:03:00.0: 0x00000003 | tsf hi
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp1
    kernel: iwlagn 0000:03:00.0: 0x29703BF0 | time gp2
    kernel: iwlagn 0000:03:00.0: 0x00000000 | time gp3
    kernel: iwlagn 0000:03:00.0: 0x000111A8 | uCode version
    kernel: iwlagn 0000:03:00.0: 0x000000B0 | hw version
    kernel: iwlagn 0000:03:00.0: 0x00480303 | board version
    kernel: iwlagn 0000:03:00.0: 0x09E8004E | hcmd
    kernel: iwlagn 0000:03:00.0: CSR values:
    kernel: iwlagn 0000:03:00.0: (2nd byte of CSR_INT_COALESCING is CSR_INT_PERIODIC_REG)
    kernel: iwlagn 0000:03:00.0:        CSR_HW_IF_CONFIG_REG: 0X00480303
    kernel: iwlagn 0000:03:00.0:          CSR_INT_COALESCING: 0X0000ff40
    kernel: iwlagn 0000:03:00.0:                     CSR_INT: 0X00000000
    kernel: iwlagn 0000:03:00.0:                CSR_INT_MASK: 0X00000000
    kernel: iwlagn 0000:03:00.0:           CSR_FH_INT_STATUS: 0X00000000
    kernel: iwlagn 0000:03:00.0:                 CSR_GPIO_IN: 0X00000030
    kernel: iwlagn 0000:03:00.0:                   CSR_RESET: 0X00000000
    kernel: iwlagn 0000:03:00.0:                CSR_GP_CNTRL: 0X080403c5
    kernel: iwlagn 0000:03:00.0:                  CSR_HW_REV: 0X000000b0
    kernel: iwlagn 0000:03:00.0:              CSR_EEPROM_REG: 0X07d60ffd
    kernel: iwlagn 0000:03:00.0:               CSR_EEPROM_GP: 0X90000001
    kernel: iwlagn 0000:03:00.0:              CSR_OTP_GP_REG: 0X00030001
    kernel: iwlagn 0000:03:00.0:                 CSR_GIO_REG: 0X00080044
    kernel: iwlagn 0000:03:00.0:            CSR_GP_UCODE_REG: 0X000093bb
    kernel: iwlagn 0000:03:00.0:           CSR_GP_DRIVER_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0:           CSR_UCODE_DRV_GP1: 0X00000000
    kernel: iwlagn 0000:03:00.0:           CSR_UCODE_DRV_GP2: 0X00000000
    kernel: iwlagn 0000:03:00.0:                 CSR_LED_REG: 0X00000078
    kernel: iwlagn 0000:03:00.0:        CSR_DRAM_INT_TBL_REG: 0X88214dd2
    kernel: iwlagn 0000:03:00.0:        CSR_GIO_CHICKEN_BITS: 0X27800200
    kernel: iwlagn 0000:03:00.0:             CSR_ANA_PLL_CFG: 0X00000000
    kernel: iwlagn 0000:03:00.0:           CSR_HW_REV_WA_REG: 0X0001001a
    kernel: iwlagn 0000:03:00.0:        CSR_DBG_HPET_MEM_REG: 0Xffff0010
    kernel: iwlagn 0000:03:00.0: FH register values:
    kernel: iwlagn 0000:03:00.0:         FH_RSCSR_CHNL0_STTS_WPTR_REG: 0X21316d00
    kernel: iwlagn 0000:03:00.0:        FH_RSCSR_CHNL0_RBDCB_BASE_REG: 0X021479c0
    kernel: iwlagn 0000:03:00.0:                  FH_RSCSR_CHNL0_WPTR: 0X00000060
    kernel: iwlagn 0000:03:00.0:         FH_MEM_RCSR_CHNL0_CONFIG_REG: 0X80819104
    kernel: iwlagn 0000:03:00.0:          FH_MEM_RSSR_SHARED_CTRL_REG: 0X000000fc
    kernel: iwlagn 0000:03:00.0:            FH_MEM_RSSR_RX_STATUS_REG: 0X07030000
    kernel: iwlagn 0000:03:00.0:    FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV: 0X00000000
    kernel: iwlagn 0000:03:00.0:                FH_TSSR_TX_STATUS_REG: 0X07ff0001
    kernel: iwlagn 0000:03:00.0:                 FH_TSSR_TX_ERROR_REG: 0X00000000
    kernel: iwlagn 0000:03:00.0: Start IWL Event Log Dump: display last 20 entries
    kernel: ------------[ cut here ]------------
    WARNING: at net/mac80211/util.c:1208 ieee80211_reconfig+0x1f1/0x407()
    kernel: Hardware name: 4290W4H
    kernel: Pid: 1896, comm: kworker/0:0 Not tainted 3.1.0 #2
    kernel: Call Trace:
    kernel:  [<ffffffff81036558>] ? warn_slowpath_common+0x73/0x87
    kernel:  [<ffffffff813b8966>] ? ieee80211_reconfig+0x1f1/0x407
    kernel:  [<ffffffff8139e8dc>] ? ieee80211_recalc_smps_work+0x32/0x32
    kernel:  [<ffffffff8139e95a>] ? ieee80211_restart_work+0x7e/0x87
    kernel:  [<ffffffff810472fa>] ? process_one_work+0x1c8/0x2e3
    kernel:  [<ffffffff810480c9>] ? worker_thread+0x17a/0x23a
    kernel:  [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b
    kernel:  [<ffffffff81047f4f>] ? manage_workers.clone.18+0x15b/0x15b
    kernel:  [<ffffffff8104ba97>] ? kthread+0x7a/0x82
    kernel:  [<ffffffff813d21b4>] ? kernel_thread_helper+0x4/0x10
    kernel:  [<ffffffff8104ba1d>] ? kthread_flush_work_fn+0x11/0x11
    kernel:  [<ffffffff813d21b0>] ? gs_change+0xb/0xb
    
    Reported-by: Udo Steinberg <udo@hypervisor.org>
    Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Wey-Yi Guy committed with gregkh Dec 2, 2011
  29. slab, lockdep: Fix silly bug

    commit 52cef18 upstream.
    
    Commit 30765b9 ("slab, lockdep: Annotate the locks before using
    them") moves the init_lock_keys() call from after g_cpucache_up =
    FULL, to before it. And overlooks the fact that init_node_lock_keys()
    tests for it and ignores everything !FULL.
    
    Introduce a LATE stage and change the lockdep test to be <LATE.
    
    Acked-by: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Peter Zijlstra committed with gregkh Nov 28, 2011
  30. genirq: Fix race condition when stopping the irq thread

    commit 550acb1 upstream.
    
    In irq_wait_for_interrupt(), the should_stop member is verified before
    setting the task's state to TASK_INTERRUPTIBLE and calling schedule().
    In case kthread_stop sets should_stop and wakes up the process after
    should_stop is checked by the irq thread but before the task's state
    is changed, the irq thread might never exit:
    
    kthread_stop                    irq_wait_for_interrupt
    ------------                    ----------------------
    
                                     ...
    ...                              while (!kthread_should_stop()) {
    kthread->should_stop = 1;
    wake_up_process(k);
    wait_for_completion(&kthread->exited);
    ...
                                         set_current_state(TASK_INTERRUPTIBLE);
    
                                         ...
    
                                         schedule();
                                     }
    
    Fix this by checking if the thread should stop after modifying the
    task's state.
    
    [ tglx: Simplified it a bit ]
    
    Signed-off-by: Ido Yariv <ido@wizery.com>
    Link: http://lkml.kernel.org/r/1322740508-22640-1-git-send-email-ido@wizery.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    codido committed with gregkh Dec 1, 2011
  31. cfg80211: amend regulatory NULL dereference fix

    commit 0bac71a upstream.
    
    Johannes' patch for "cfg80211: fix regulatory NULL dereference"
    broke user regulaotry hints and it did not address the fact that
    last_request was left populated even if the previous regulatory
    hint was stale due to the wiphy disappearing.
    
    Fix user reguluatory hints by only bailing out if for those
    regulatory hints where a request_wiphy is expected. The stale last_request
    considerations are addressed through the previous fixes on last_request
    where we reset the last_request to a static world regdom request upon
    reset_regdomains(). In this case though we further enhance the effect
    by simply restoring reguluatory settings completely.
    
    Cc: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
    Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    mcgrof committed with gregkh Nov 28, 2011
  32. cfg80211: fix race on init and driver registration

    commit a042994 upstream.
    
    There is a theoretical race that if hit will trigger
    a crash. The race is between when we issue the first
    regulatory hint, regulatory_hint_core(), gets processed
    by the workqueue and between when the first device
    gets registered to the wireless core. This is not easy
    to reproduce but it was easy to do so through the
    regulatory simulator I have been working on. This
    is a port of the fix I implemented there [1].
    
    [1] mcgrof/regsim@a246ccf
    
    Cc: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    mcgrof committed with gregkh Nov 28, 2011
  33. mac80211: fix race condition caused by late addBA response

    Upstream commit d305a65.
    
    If addBA responses comes in just after addba_resp_timer has
    expired mac80211 will still accept it and try to open the
    aggregation session. This causes drivers to be confused and
    in some cases even crash.
    
    This patch fixes the race condition and makes sure that if
    addba_resp_timer has expired addBA response is not longer
    accepted and we do not try to open half-closed session.
    
    Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
    [some adjustments]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    mar-kolya committed with gregkh Dec 6, 2011
  34. mac80211: fill rate filter for internal scan requests

    commit c72e8d3 upstream.
    
    The rates bitmap for internal scan requests shoud be filled,
    otherwise there will be probe requests with zero rates supported.
    
    Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
    Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Simon Wunderlich committed with gregkh Nov 30, 2011
  35. add missing .set function for NT_S390_LAST_BREAK regset

    commit b934069 upstream.
    
    The last breaking event address is a read-only value, the regset misses the
    .set function. If a PTRACE_SETREGSET is done for NT_S390_LAST_BREAK we
    get an oops due to a branch to zero:
    
    Kernel BUG at 0000000000000002 verbose debug info unavailable
    illegal operation: 0001 #1 SMP
    ...
    Call Trace:
    (<0000000000158294> ptrace_regset+0x184/0x188)
     <00000000001595b6> ptrace_request+0x37a/0x4fc
     <0000000000109a78> arch_ptrace+0x108/0x1fc
     <00000000001590d6> SyS_ptrace+0xaa/0x12c
     <00000000005c7a42> sysc_noemu+0x16/0x1c
     <000003fffd5ec10c> 0x3fffd5ec10c
    Last Breaking-Event-Address:
     <0000000000158242> ptrace_regset+0x132/0x188
    
    Add a nop .set function to prevent the branch to zero.
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Martin Schwidefsky committed with gregkh Dec 1, 2011