03 May, 2011

13 commits

  • * 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
     
  • ctl_table_headers registered with register_net_sysctl_table should
    have been unregistered with the equivalent unregister_net_sysctl_table

    Signed-off-by: Lucian Adrian Grijincu
    Signed-off-by: David S. Miller

    Lucian Adrian Grijincu
     
  • 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
     
  • ioctl() calls against a socket with an inappropriate ioctl operation
    are incorrectly returning EINVAL rather than ENOTTY:

    [ENOTTY]
    Inappropriate I/O control operation.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=33992

    Signed-off-by: Lifeng Sun
    Signed-off-by: David S. Miller

    Lifeng Sun
     
  • Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • David S. Miller
     
  • * 'for-linus' of git://git.infradead.org/ubifs-2.6:
    UBIFS: seek journal heads to the latest bud in replay
    UBIFS: do not free write-buffers when in R/O mode

    Linus Torvalds
     
  • * '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
     
  • This is the second fix of the following symptom:

    UBIFS error (pid 34456): could not find an empty LEB

    which sometimes happens after power cuts when we mount the file-system - UBIFS
    refuses it with the above error message which comes from the
    'ubifs_rcvry_gc_commit()' function. I can reproduce this using the integck test
    with the UBIFS power cut emulation enabled.

    Analysis of the problem.

    Currently UBIFS replay seeks the journal heads to the last _replayed_ bud.
    But the buds are replayed out-of-order, so the replay basically seeks journal
    heads to the "random" bud belonging to this head, and not to the _last_ one.

    The result of this is that the GC head may be seeked to a full LEB with no free
    space, or very little free space. And 'ubifs_rcvry_gc_commit()' tries to find a
    fully or mostly dirty LEB to match the current GC head (because we need to
    garbage-collect that dirty LEB at one go, because we do not have @c->gc_lnum).
    So 'ubifs_find_dirty_leb()' fails and we fall back to finding an empty LEB and
    also fail. As a result - recovery fails and mounting fails.

    This patch teaches the replay to initialize the GC heads exactly to the latest
    buds, i.e. the buds which have the largest sequence number in corresponding
    log reference nodes.

    Signed-off-by: Artem Bityutskiy
    Cc: stable@kernel.org

    Artem Bityutskiy
     
  • Currently UBIFS has a small optimization - it frees write-buffers when it is
    re-mounted from R/W mode to R/O mode. Of course, when it is mounted R/O, it
    does not allocate write-buffers as well.

    This optimization is nice but it leads to subtle problems and complications
    in recovery, which I can reproduce using the integck test. The symptoms are
    that after a power cut the file-system cannot be mounted if we first mount
    it R/O, and then re-mount R/W - 'ubifs_rcvry_gc_commit()' prints:

    UBIFS error (pid 34456): could not find an empty LEB

    Analysis of the problem.

    When mounting R/W, the reply process sets journal heads to buds [1], but
    when mounting R/O - it does not do this, because the write-buffers are not
    allocated. So 'ubifs_rcvry_gc_commit()' works completely differently for the
    same file-system but for the following 2 cases:

    1. mounting R/W after a power cut and recover
    2. mounting R/O after a power cut, re-mounting R/W and run deferred recovery

    In the former case, we have journal heads seeked to the a bud, in the latter
    case, they are non-seeked (wbuf->lnum == -1). So in the latter case we do not
    try to recover the GC LEB by garbage-collecting to the GC head, but we just
    try to find an empty LEB, and there may be no empty LEBs, so we just fail.
    On the other hand, in the former case (mount R/W), we are able to make a GC LEB
    (@c->gc_lnum) by garbage-collecting.

    Thus, let's remove this small nice optimization and always allocate
    write-buffers. This should not make too big difference - we have only 3
    of them, each of max. write unit size, which is usually 2KiB. So this is
    about 6KiB of RAM for the typical case, and only when mounted R/O.

    [1]: Note, currently the replay process is setting (seeking) the journal heads
    to _some_ buds, not necessarily to the buds which had been the journal heads
    before the power cut happened. This will be fixed separately.

    Signed-off-by: Artem Bityutskiy
    Cc: stable@kernel.org

    Artem Bityutskiy
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda - Fix Realtek's chained fixup checks
    Revert "ALSA: hda - Fix pin-config of Gigabyte mobo"
    ALSA: HDA: Fix automute for Gateway NV79
    ALSA: hda: add beep quirk for Realtek 0x1043:831a
    ALSA: usb-audio - Terratec Aureon 7.1 USB ID as C-Media cm6206 quirks
    ALSA: hda - VIA: Fix notify_aa_path_ctls() invalid issue.
    ALSA - au88x0 - Add buffer bytes constraints

    Linus Torvalds
     

02 May, 2011

11 commits


01 May, 2011

1 commit


30 Apr, 2011

14 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
     
  • …/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf, x86, nmi: Move LVT un-masking into irq handlers
    perf events, x86: Work around the Nehalem AAJ80 erratum
    perf, x86: Fix BTS condition
    ftrace: Build without frame pointers on Microblaze

    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
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: ce4100: Configure IOAPIC pins for USB and SATA to level type
    x86: devicetree: Configure IOAPIC pin only once
    x86, setup: When probing memory with e801, use ax/bx as a pair

    Linus Torvalds
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (lm85) Fix error paths in probe function
    hwmon: (lm85) Add missing list terminators
    hwmon: (adm1021) Clarify documentation regarding Xeon processors
    hwmon: (lm90) Fix update interval information in driver documentation
    hwmon: (lm90) Add support for ADT7461A and NCT1008

    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
     
  • Somebody has to do it, however unfortunate be the cause.

    Signed-off-by: Oliver Neukum
    Signed-off-by: David S. Miller

    Oliver Neukum
     
  • 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
     
  • If a rescuer and stop_machine() bringing down a CPU race with each
    other, they may deadlock on non-preemptive kernel. The CPU won't
    accept a new task, so the rescuer can't migrate to the target CPU,
    while stop_machine() can't proceed because the rescuer is holding one
    of the CPU retrying migration. GCWQ_DISASSOCIATED is never cleared
    and worker_maybe_bind_and_lock() retries indefinitely.

    This problem can be reproduced semi reliably while the system is
    entering suspend.

    http://thread.gmane.org/gmane.linux.kernel/1122051

    A lot of kudos to Thilo-Alexander for reporting this tricky issue and
    painstaking testing.

    stable: This affects all kernels with cmwq, so all kernels since and
    including v2.6.36 need this fix.

    Signed-off-by: Tejun Heo
    Reported-by: Thilo-Alexander Ginkel
    Tested-by: Thilo-Alexander Ginkel
    Cc: stable@kernel.org

    Tejun Heo
     

29 Apr, 2011

1 commit

  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    OMAP3+: voltage: remove initial voltage
    OMAP4: Intialize IVA Device in addition to DSP device.
    omap: rx51: mark reserved memory earlier
    OMAP3: l3: fix for "irq 10: nobody cared" message
    arm: omap2: enable smc instruction for sleep34xx
    OMAP2/3: hwmod: fix gpio-reset timeouts seen during bootup.
    OMAP3: PM: Do not rely on ROM code to restore CM_AUTOIDLE_PLL.AUTO_PERIPH_DPLL
    OMAP2+: PM: Fix the saving of CM_AUTOIDLE_PLL register on scratchpad area
    OMAP4: clock data: Change DSS clock aliases
    OMAP2+: hwmod data: Fix wrong dma_system end address

    Linus Torvalds