04 May, 2011

4 commits


03 May, 2011

8 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: wm831x-ts - move BTN_TOUCH reporting to data transfer
    Input: wm831x-ts - allow IRQ flags to be specified
    Input: wm831x-ts - fix races with IRQ management

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits)
    sysctl: net: call unregister_net_sysctl_table where needed
    Revert: veth: remove unneeded ifname code from veth_newlink()
    smsc95xx: fix reset check
    tg3: Fix failure to enable WoL by default when possible
    networking: inappropriate ioctl operation should return ENOTTY
    amd8111e: trivial typo spelling: Negotitate -> Negotiate
    ipv4: don't spam dmesg with "Using LC-trie" messages
    af_unix: Only allow recv on connected seqpacket sockets.
    mii: add support of pause frames in mii_get_an
    net: ftmac100: fix scheduling while atomic during PHY link status change
    usbnet: Transfer of maintainership
    usbnet: add support for some Huawei modems with cdc-ether ports
    bnx2: cancel timer on device removal
    iwl4965: fix "Received BA when not expected"
    iwlagn: fix "Received BA when not expected"
    dsa/mv88e6131: fix unknown multicast/broadcast forwarding on mv88e6085
    usbnet: Resubmit interrupt URB if device is open
    iwl4965: fix "TX Power requested while scanning"
    iwlegacy: led stay solid on when no traffic
    b43: trivial: update module info about ucode16_mimo firmware
    ...

    Linus Torvalds
     
  • 84c49d8c3e4abefb0a41a77b25aa37ebe8d6b743 ("veth: remove unneeded
    ifname code from veth_newlink()") caused regression on veth
    creation. This patch reverts the original one.

    Reported-by: Michał Mirosław
    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • The reset loop check should check the MII_BMCR register value for
    BMCR_RESET rather than for MII_BMCR (the register address, which also
    happens to be zero).

    Signed-off-by: Rabin Vincent
    Signed-off-by: David S. Miller

    Rabin Vincent
     
  • tg3 is supposed to enable WoL by default on adapters which support
    that, but it fails to do so unless the adapter's
    /sys/devices/.../power/wakeup file contains 'enabled' during the
    initialization of the adapter. Fix that by making tg3 use
    device_set_wakeup_enable() to enable wakeup automatically whenever
    WoL should be enabled by default.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: David S. Miller

    Rafael J. Wysocki
     
  • Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • David S. Miller
     
  • * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm: (47 commits)
    CLKDEV: Fix clkdev return value for NULL clk case
    ARM: 6891/1: prevent heap corruption in OABI semtimedop
    ARM: kprobes: Tidy-up kprobes-decode.c
    ARM: kprobes: Add emulation of hint instructions like NOP and WFI
    ARM: kprobes: Add emulation of SBFX, UBFX, BFI and BFC instructions
    ARM: kprobes: Add emulation of MOVW and MOVT instructions
    ARM: kprobes: Reject probing of undefined data processing instructions
    ARM: kprobes: Remove redundant code in space_1111
    ARM: kprobes: Fix emulation of PLD instructions
    ARM: kprobes: Reject probing of SETEND instructions
    ARM: kprobes: Consolidate stub decoding functions
    ARM: kprobes: Reject probing of all coprocessor instructions
    ARM: kprobes: Fix emulation of USAD8 instructions
    ARM: kprobes: Fix emulation of SMUAD, SMUSD and SMMUL instructions
    ARM: kprobes: Fix emulation of SXTB16, SXTB, SXTH, UXTB16, UXTB and UXTH instructions
    ARM: kprobes: Reject probing of undefined media instructions
    ARM: kprobes: Add emulation of RBIT instruction
    ARM: kprobes: Reject probing of LDRB instructions which load PC
    ARM: kprobes: Fix emulation of LDRD and STRD instructions
    ARM: kprobes: Reject probing of LDR/STR instructions which update PC unpredictably
    ...

    Linus Torvalds
     

02 May, 2011

5 commits


30 Apr, 2011

9 commits

  • clkdev may incorrectly cause a clkdev entry with a NULL clk to return
    -ENOENT. This is not the intention of this code; -ENOENT should only
    be returned if the clock entry can not be found in the table. Fix
    this.

    Reported-by: Stephen Boyd
    Signed-off-by: Russell King

    Russell King
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] pmcraid: reject negative request size
    [SCSI] put stricter guards on queue dead checks
    [SCSI] scsi_dh: fix reference counting in scsi_dh_activate error path
    [SCSI] mpt2sas: prevent heap overflows and unchecked reads

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'timer-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    hrtimer: Initialize CLOCK_ID to HRTIMER_BASE table statically
    rtc: max8925: Call dev_set_drvdata before rtc_device_register

    Linus Torvalds
     
  • Add support of pause frames advertise in mii_get_an. This provides all drivers
    that use mii_ethtool_gset to represent their own and Link partner flow control
    abilities in ethtool.

    Signed-off-by: Artem Polyakov
    Signed-off-by: David S. Miller

    artpol
     
  • Signed-off-by: Adam Jaremko
    Acked-by: Po-Yu Chuang
    Signed-off-by: David S. Miller

    Adam Jaremko
     
  • Some newer Huawei devices (T-Mobile Rocket, others) have cdc-ether
    compatible ports, so recognize and expose them.

    Signed-off-by: Dan Williams
    Acked-by: Oliver Neukum
    Signed-off-by: David S. Miller

    Dan Williams
     
  • This oops was recently reported to me:

    invalid opcode: 0000 [#1] SMP
    last sysfs file:
    /sys/devices/pci0000:00/0000:00:01.0/0000:01:0d.0/0000:02:05.0/device
    CPU 1
    Modules linked in: bnx2(+) sunrpc ipv6 dm_mirror dm_region_hash dm_log sg
    microcode serio_raw amd64_edac_mod edac_core edac_mce_amd k8temp i2c_piix4
    shpchp ext4 mbcache jbd2 sd_mod crc_t10dif mptsas mptscsih mptbase
    scsi_transport_sas radeon ttm drm_kms_helper drm hwmon i2c_algo_bit i2c_core
    dm_mod [last unloaded: bnx2]

    Modules linked in: bnx2(+) sunrpc ipv6 dm_mirror dm_region_hash dm_log sg
    microcode serio_raw amd64_edac_mod edac_core edac_mce_amd k8temp i2c_piix4
    shpchp ext4 mbcache jbd2 sd_mod crc_t10dif mptsas mptscsih mptbase
    scsi_transport_sas radeon ttm drm_kms_helper drm hwmon i2c_algo_bit i2c_core
    dm_mod [last unloaded: bnx2]
    Pid: 23900, comm: pidof Not tainted 2.6.32-130.el6.x86_64 #1 BladeCenter LS21
    -[797251Z]-
    RIP: 0010:[] [] 0xffffffffa058b270
    RSP: 0018:ffff880002083e48 EFLAGS: 00010246
    RAX: ffff880002083e90 RBX: ffff88007ccd4000 RCX: 0000000000000000
    RDX: 0000000000000100 RSI: dead000000200200 RDI: ffff8800007b8700
    RBP: ffff880002083ed0 R08: ffff88000208db40 R09: 0000022d191d27c8
    R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800007b9bc8
    R13: ffff880002083e90 R14: ffff8800007b8700 R15: ffffffffa058b270
    FS: 00007fbb3bcf7700(0000) GS:ffff880002080000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000001664a98 CR3: 0000000060395000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process pidof (pid: 23900, threadinfo ffff8800007e8000, task ffff8800091c0040)
    Stack:
    ffffffff81079f77 ffffffff8109e010 ffff88007ccd5c20 ffff88007ccd5820
    ffff88007ccd5420 ffff8800007e9fd8 ffff8800007e9fd8 0000010000000000
    ffff88007ccd5020 ffff880002083e90 ffff880002083e90 ffffffff8102a00d
    Call Trace:

    [] ? run_timer_softirq+0x197/0x340
    [] ? tick_sched_timer+0x0/0xc0
    [] ? lapic_next_event+0x1d/0x30
    [] __do_softirq+0xb7/0x1e0
    [] ? hrtimer_interrupt+0x140/0x250
    [] ? filldir+0x0/0xe0
    [] call_softirq+0x1c/0x30
    [] do_softirq+0x65/0xa0
    [] irq_exit+0x85/0x90
    [] smp_apic_timer_interrupt+0x70/0x9b
    [] apic_timer_interrupt+0x13/0x20

    [] ? selinux_file_permission+0x45/0x150
    [] ? _atomic_dec_and_lock+0x55/0x80
    [] security_file_permission+0x16/0x20
    [] vfs_readdir+0x71/0xe0
    [] sys_getdents+0x89/0xf0
    [] system_call_fastpath+0x16/0x1b

    It occured during some stress testing, in which the reporter was repeatedly
    removing and modprobing the bnx2 module while doing various other random
    operations on the bnx2 registered net device. Noting that this error occured on
    a serdes based device, we noted that there were a few ethtool operations (most
    notably self_test and set_phys_id) that have execution paths that lead into
    bnx2_setup_serdes_phy. This function is notable because it executes a mod_timer
    call, which starts the bp->timer running. Currently bnx2 is setup to assume
    that this timer only nees to be stopped when bnx2_close or bnx2_suspend is
    called. Since the above ethtool operations are not gated on the net device
    having been opened however, that assumption is incorrect, and can lead to the
    timer still running after the module has been removed, leading to the oops above
    (as well as other simmilar oopses).

    Fix the problem by ensuring that the timer is stopped when pci_device_unregister
    is called.

    Signed-off-by: Neil Horman
    Reported-by: Hushan Jia
    CC: Michael Chan
    CC: "David S. Miller"
    Acked-by: Michael Chan
    Signed-off-by: David S. Miller

    Neil Horman
     
  • Need to use broadcast sta_id for management frames, otherwise we broke
    BA session in the firmware and get messages like that:

    "Received BA when not expected"

    or (on older kernels):

    "BA scd_flow 0 does not match txq_id 10"

    This fix regression introduced in 2.6.35 during station management
    code rewrite by:

    commit 2a87c26bbe9587baeb9e56d3ce0b4971bd777643
    Author: Johannes Berg
    Date: Fri Apr 30 11:30:45 2010 -0700

    iwlwifi: use iwl_find_station less

    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: John W. Linville

    Stanislaw Gruszka
     
  • Need to use broadcast sta_id for management frames, otherwise we broke
    BA session in the firmware and get messages like that:

    "Received BA when not expected"

    or (on older kernels):

    "BA scd_flow 0 does not match txq_id 10"

    This fix regression introduced in 2.6.35 during station management
    code rewrite by:

    commit 2a87c26bbe9587baeb9e56d3ce0b4971bd777643
    Author: Johannes Berg
    Date: Fri Apr 30 11:30:45 2010 -0700

    iwlwifi: use iwl_find_station less

    Patch partially resolve:
    https://bugzilla.kernel.org/show_bug.cgi?id=16691
    However, there are still 11n performance problems on 4965 and 5xxx
    devices that need to be investigated.

    Cc: stable@kernel.org # 2.6.35+
    Signed-off-by: Stanislaw Gruszka
    Acked-by: Johannes Berg
    Acked-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Stanislaw Gruszka
     

29 Apr, 2011

10 commits


28 Apr, 2011

4 commits

  • We call rtc_read_alarm from rtc_device_register, so it is important
    that the rtc device is fully initialized prior to registration.

    rtc-max8925 sets drvdata after register, so the rtc_read_alarm code
    dereferences a NULL pointer.

    Call dev_set_drvdata before rtc_device_register.

    [ jstultz/tglx: Massaged commit message ]

    Signed-off-by: Zhangfei Gao
    Cc: Alessandro Zummo
    Link: http://lkml.kernel.org/r/%3C1303929869-25249-1-git-send-email-john.stultz%40linaro.org%3E
    Signed-off-by: John Stultz
    Signed-off-by: Thomas Gleixner

    Zhangfei Gao
     
  • Don't report BTN_TOUCH until we've got data as some less robust applications
    can be confused by getting a touch event by itself and it doesn't seem
    unreasonable for them to expect coordinates along with a touch.

    Signed-off-by: Mark Brown
    Signed-off-by: Dmitry Torokhov

    Mark Brown
     
  • This allows maximum flexibility for configuring the direct GPIO based
    interrupts.

    Signed-off-by: Mark Brown
    Signed-off-by: Dmitry Torokhov

    Mark Brown
     
  • If the WM831x pen down and data IRQs run in parallel it is possible for the
    data and pen down IRQs to deadlock themselves as one is part way through
    disabling its operation while the other is part way through enabling. Fix
    this by always disabling the pen down interrupt while data is active and
    vice versa. When a changeover is required we disable the IRQ that is to
    be stopped then schedule work that will enable the new IRQ.

    We need to handle the data flow in the data IRQ as the readback from the
    device needs to be ordered correctly with the IRQ for robust operation.

    This also fixes an issue when using the built in IRQs due to enable_irq()
    not being valid from interrupt context on an interrupt controller with bus
    operations like the built in IRQ controller - this issue may also have
    affected other interrupt controllers. We can't rely on having the data
    and pen down IRQs available via GPIOs on the CPU on every system.

    Signed-off-by: Mark Brown
    Signed-off-by: Dmitry Torokhov

    Mark Brown