22 Nov, 2011

27 commits

  • Greg Kroah-Hartman
     
  • commit 6b76106d8ef31111d6fc469564b83b5f5542794f upstream.

    Even after commit 5478755616ae2ef1ce144dded589b62b2a50d575
    ("block: check for proper length of iov entries earlier ...")
    we still won't check for zero-length entries after an unaligned
    entry. Remove the break-statement, so all entries are checked.

    Signed-off-by: Ben Hutchings
    Signed-off-by: Jens Axboe
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     
  • commit 7a401a972df8e184b3d1a3fc958c0a4ddee8d312 upstream.

    bdi_prune_sb() in bdi_unregister() attempts to removes the bdi links
    from all super_blocks and then del_timer_sync() the writeback timer.

    However, this can race with __mark_inode_dirty(), leading to
    bdi_wakeup_thread_delayed() rearming the writeback timer on the bdi
    we're unregistering, after we've called del_timer_sync().

    This can end up with the bdi being freed with an active timer inside it,
    as in the case of the following dump after the removal of an SD card.

    Fix this by redoing the del_timer_sync() in bdi_destory().

    ------------[ cut here ]------------
    WARNING: at /home/rabin/kernel/arm/lib/debugobjects.c:262 debug_print_object+0x9c/0xc8()
    ODEBUG: free active (active state 0) object type: timer_list hint: wakeup_timer_fn+0x0/0x180
    Modules linked in:
    Backtrace:
    [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c)
    r6:c02bc638 r5:00000106 r4:c79f5d18 r3:00000000
    [] (dump_stack+0x0/0x1c) from [] (warn_slowpath_common+0x54/0x6c)
    [] (warn_slowpath_common+0x0/0x6c) from [] (warn_slowpath_fmt+0x38/0x40)
    r8:20000013 r7:c780c6f0 r6:c031613c r5:c780c6f0 r4:c02b1b29
    r3:00000009
    [] (warn_slowpath_fmt+0x0/0x40) from [] (debug_print_object+0x9c/0xc8)
    r3:c02b1b29 r2:c02bc662
    [] (debug_print_object+0x0/0xc8) from [] (debug_check_no_obj_freed+0xac/0x1dc)
    r6:c7964000 r5:00000001 r4:c7964000
    [] (debug_check_no_obj_freed+0x0/0x1dc) from [] (kmem_cache_free+0x88/0x1f8)
    [] (kmem_cache_free+0x0/0x1f8) from [] (blk_release_queue+0x70/0x78)
    [] (blk_release_queue+0x0/0x78) from [] (kobject_release+0x70/0x84)
    r5:c79641f0 r4:c796420c
    [] (kobject_release+0x0/0x84) from [] (kref_put+0x68/0x80)
    r7:00000083 r6:c74083d0 r5:c015289c r4:c796420c
    [] (kref_put+0x0/0x80) from [] (kobject_put+0x48/0x5c)
    r5:c79643b4 r4:c79641f0
    [] (kobject_put+0x0/0x5c) from [] (blk_cleanup_queue+0x68/0x74)
    r4:c7964000
    [] (blk_cleanup_queue+0x0/0x74) from [] (mmc_blk_put+0x78/0xe8)
    r5:00000000 r4:c794c400
    [] (mmc_blk_put+0x0/0xe8) from [] (mmc_blk_release+0x24/0x38)
    r5:c794c400 r4:c0322824
    [] (mmc_blk_release+0x0/0x38) from [] (__blkdev_put+0xe8/0x170)
    r5:c78d5e00 r4:c74083c0
    [] (__blkdev_put+0x0/0x170) from [] (blkdev_put+0x11c/0x12c)
    r8:c79f5f70 r7:00000001 r6:c74083d0 r5:00000083 r4:c74083c0
    r3:00000000
    [] (blkdev_put+0x0/0x12c) from [] (kill_block_super+0x60/0x6c)
    r7:c7942300 r6:c79f4000 r5:00000083 r4:c74083c0
    [] (kill_block_super+0x0/0x6c) from [] (deactivate_locked_super+0x44/0x70)
    r6:c79f4000 r5:c031af64 r4:c794dc00 r3:c00b06c4
    [] (deactivate_locked_super+0x0/0x70) from [] (deactivate_super+0x6c/0x70)
    r5:c794dc00 r4:c794dc00
    [] (deactivate_super+0x0/0x70) from [] (mntput_no_expire+0x188/0x194)
    r5:c794dc00 r4:c7942300
    [] (mntput_no_expire+0x0/0x194) from [] (sys_umount+0x2e4/0x310)
    r6:c7942300 r5:00000000 r4:00000000 r3:00000000
    [] (sys_umount+0x0/0x310) from [] (ret_fast_syscall+0x0/0x30)
    ---[ end trace e5c83c92ada51c76 ]---

    Signed-off-by: Rabin Vincent
    Signed-off-by: Linus Walleij
    Signed-off-by: Jens Axboe
    Signed-off-by: Greg Kroah-Hartman

    Rabin Vincent
     
  • commit d715e433b7ad19c02fc4becf0d5e9a59f97925de upstream.

    kdump fails because we try to execute an HV only instruction. Feature
    fixups are being applied after we copy the exception vectors down to 0
    so they miss out on any updates.

    We have always had this issue but it only became critical in v3.0
    when we added CFAR support (breaks POWER5) and v3.1 when we added
    POWERNV (breaks everyone).

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Greg Kroah-Hartman

    Anton Blanchard
     
  • commit de1d9248eadd27539eba449b4d09428252e80c04 upstream.

    If you build with KVM and UP it fails with the following due to a
    missing include.

    /arch/powerpc/kvm/book3s_hv.c: In function 'do_h_register_vpa':
    arch/powerpc/kvm/book3s_hv.c:156:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:156:10: note: each undeclared identifier is reported only once for each function it appears in
    arch/powerpc/kvm/book3s_hv.c:192:12: error: 'H_RESOURCE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:222:9: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c: In function 'kvmppc_pseries_do_hcall':
    arch/powerpc/kvm/book3s_hv.c:228:30: error: 'H_SUCCESS' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:232:7: error: 'H_CEDE' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:234:7: error: 'H_PROD' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:238:10: error: 'H_PARAMETER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:250:7: error: 'H_CONFER' undeclared (first use in this function)
    arch/powerpc/kvm/book3s_hv.c:252:7: error: 'H_REGISTER_VPA' undeclared (first use in this function)
    make[2]: *** [arch/powerpc/kvm/book3s_hv.o] Error 1

    Signed-off-by: Michael Neuling
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Greg Kroah-Hartman

    Michael Neuling
     
  • commit 72f3bea075287785ed32b777b6dd2636aa7002e8 upstream.

    Fixes the PS3 bootup hang introduced in 3.0-rc1 by:

    commit 317f394160e9beb97d19a84c39b7e5eb3d7815a
    sched: Move the second half of ttwu() to the remote cpu

    Move the PS3's LV1 EOI call lv1_end_of_interrupt_ext() from ps3_chip_eoi()
    to ps3_get_irq() for IPI messages.

    If lv1_send_event_locally() is called between a previous call to
    lv1_send_event_locally() and the coresponding call to
    lv1_end_of_interrupt_ext() the second event will not be delivered to the
    target cpu.

    The PS3's SMP IPIs are implemented using lv1_send_event_locally(), so if two
    IPI messages of the same type are sent to the same target in a relatively
    short period of time the second IPI event can become lost when
    lv1_end_of_interrupt_ext() is called from ps3_chip_eoi().

    Signed-off-by: Geoff Levand
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Greg Kroah-Hartman

    Geoff Levand
     
  • commit 99cb2ddcc617f43917e94a4147aa3ccdb2bcd77e upstream.

    gref->gref_id is unsigned so the error handling didn't work.
    gnttab_grant_foreign_access() returns an int type, so we can add a
    cast here, and it doesn't cause any problems.
    gnttab_grant_foreign_access() can return a variety of errors
    including -ENOSPC, -ENOSYS and -ENOMEM.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit 21643e69a4c06f7ef155fbc70e3fba13fba4a756 upstream.

    On 32 bit systems a high value of op.count could lead to an integer
    overflow in the kzalloc() and gref_ids would be smaller than
    expected. If the you triggered another integer overflow in
    "if (gref_size + op.count > limit)" then you'd probably get memory
    corruption inside add_grefs().

    Signed-off-by: Dan Carpenter
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit 90d4f5534d14815bd94c10e8ceccc57287657ecc upstream.

    PVHVM running with more than 32 vcpus and pv_irq/pv_time enabled
    need VCPU placement to work, or else it will softlockup.

    Acked-by: Stefano Stabellini
    Signed-off-by: Zhenzhong Duan
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Greg Kroah-Hartman

    Zhenzhong Duan
     
  • commit f09ee0451a44a4e913a7c3cec3805508f7de6c54 upstream.

    The codec for Devkit8000 (TWL4030) was not detected except
    when build with CONFIG_SND_SOC_ALL_CODECS.

    twl-core.c still uses the CONFIG_TWL4030_CODEC for
    twl_has_codec().

    In commit 57fe7251f5bfc4332f24479376de48a1e8ca6211
    the CONFIG_TWL4030_CODEC was renamed
    into CONFIG_MFD_TWL4030_AUDIO, thatswhy the codec
    was not detected.

    This patch renames the CONFIG_ TWL4030_CODEC into
    CONFIG_MFD_TWL4030_AUDIO in twl-core.c.

    Signed-off-by: Thomas Weber
    Acked-by: Peter Ujfalusi
    Signed-off-by: Samuel Ortiz
    Cc: Jarkko Nikula
    Signed-off-by: Greg Kroah-Hartman

    Thomas Weber
     
  • [This patch is supposed to be applied in 3.1 (and maybe older) branches only.]

    New kernels support newer firmware that users may try to incorrectly use
    with older kernels. Display error and explain the problem in such a case

    Signed-off-by: Rafał Miłecki
    Signed-off-by: Greg Kroah-Hartman

    Rafał Miłecki
     
  • commit 5a84d6ad4c9306afb467a600a4c6d7b50da49440 upstream.

    The brcmsmac driver supports different rates on 5GHz but this is not
    taken into account when providing the rate index in the receive
    status information passed to mac80211.

    Reviewed-by: Roland Vossen
    Reviewed-by: Pieter-Paul Giesberts
    Reviewed-by: Henry Ptasinski
    Signed-off-by: Arend van Spriel
    Signed-off-by: Greg Kroah-Hartman

    Arend van Spriel
     
  • commit b872a37437e93df9d112ce674752b3b3a0a17020 upstream.

    Noticed by Egbert.

    Signed-off-by: Alex Deucher
    Cc: Egbert Eich
    Signed-off-by: Dave Airlie
    Signed-off-by: Greg Kroah-Hartman

    Alex Deucher
     
  • commit cb871513f656bdfc48b185b55f37857b5c750c40 upstream.

    Revert commit 6123b0e274503a0d3588e84fbe07c9aa01bfaf5d.

    The problem this patch intends to solve has alreadqy been fixed by
    commit 7a5caabd090b ("drivers/leds/ledtrig-timer.c: fix broken sysfs
    delay handling").

    Signed-off-by: Johan Hovold
    Cc: Antonio Ospite
    Cc: Johannes Berg
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Johan Hovold
     
  • commit bc5b8a9003132ae44559edd63a1623b7b99dfb68 upstream.

    On a corrupted file system the ->len field could be wrong leading to
    a buffer overflow.

    Reported-and-acked-by: Clement LECIGNE
    Signed-off-by: Dan Carpenter
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit 9f35a33b8d06263a165efe3541d9aa0cdbd70b3b upstream.

    Fix a NULL pointer deref in the user-defined key type whereby updating a
    negative key into a fully instantiated key will cause an oops to occur
    when the code attempts to free the non-existent old payload.

    This results in an oops that looks something like the following:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [] __call_rcu+0x11/0x13e
    PGD 3391d067 PUD 3894a067 PMD 0
    Oops: 0002 [#1] SMP
    CPU 1
    Pid: 4354, comm: keyctl Not tainted 3.1.0-fsdevel+ #1140 /DG965RY
    RIP: 0010:[] [] __call_rcu+0x11/0x13e
    RSP: 0018:ffff88003d591df8 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 000000000000006e
    RDX: ffffffff8161d0c0 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88003d591e18 R08: 0000000000000000 R09: ffffffff8152fa6c
    R10: 0000000000000000 R11: 0000000000000300 R12: ffff88003b8f9538
    R13: ffffffff8161d0c0 R14: ffff88003b8f9d50 R15: ffff88003c69f908
    FS: 00007f97eb18c720(0000) GS:ffff88003bd00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000008 CR3: 000000003d47a000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process keyctl (pid: 4354, threadinfo ffff88003d590000, task ffff88003c78a040)
    Stack:
    ffff88003e0ffde0 ffff88003b8f9538 0000000000000001 ffff88003b8f9d50
    ffff88003d591e28 ffffffff810860f0 ffff88003d591e68 ffffffff8117bfea
    ffff88003d591e68 ffffffff00000000 ffff88003e0ffde1 ffff88003e0ffde0
    Call Trace:
    [] call_rcu_sched+0x10/0x12
    [] user_update+0x8d/0xa2
    [] key_create_or_update+0x236/0x270
    [] sys_add_key+0x123/0x17e
    [] system_call_fastpath+0x16/0x1b

    Signed-off-by: David Howells
    Acked-by: Jeff Layton
    Acked-by: Neil Horman
    Acked-by: Steve Dickson
    Acked-by: James Morris
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    David Howells
     
  • commit dcaaf9f2c16b56f8bb316881fcd3f15c18fc71e7 upstream.

    In the recent usb-audio driver, the initialization of volume ranges
    may be delayed when the device doesn't respond well at the probing time.
    But the volume quirks for certain devices are applied only in
    mixer_ctl_feature_info() thus only at the very first probe and will be
    missing when the volume range is initialized later.

    This patch moves the volume quirk code to be always called from the
    volume-range extraction (get_min_max()), so that the quirks are properly
    applied in the later init time.

    Reported-and-tested-by: Alexey Fisher
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 9fcd0ab130579d9742538340edda3225f2b49a3e upstream.

    When the initial check of dB-range failed due to the read error, try to
    check again at the later read, too. When an invalid dB range is found,
    remove TLV flags and notify the mixer info change.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 091264f0bc12419560ac64fcef4567809d611658 upstream.

    Can happen when there is no DP panel attached, confusing
    users. Make it debug only.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie
    Signed-off-by: Greg Kroah-Hartman

    Alex Deucher
     
  • commit 5e60ee780e792efe6dce97eceb110b1d30bab850 upstream.

    Fence lock needs to be initialized before any call to nouveau_channel_put
    because it calls nouveau_channel_idle->nouveau_fence_update which uses
    fence lock.

    BUG: spinlock bad magic on CPU#0, test/24134
    lock: ffff88019f90dba8, .magic: 00000000, .owner: /-1, .owner_cpu: 0
    Pid: 24134, comm: test Not tainted 3.0.0-nv+ #800
    Call Trace:
    spin_bug+0x9c/0xa3
    do_raw_spin_lock+0x29/0x13c
    _raw_spin_lock+0x1e/0x22
    nouveau_fence_update+0x2d/0xf1
    nouveau_channel_idle+0x22/0xa0
    nouveau_channel_put_unlocked+0x84/0x1bd
    nouveau_channel_put+0x20/0x24
    nouveau_channel_alloc+0x4ec/0x585
    nouveau_ioctl_fifo_alloc+0x50/0x130
    drm_ioctl+0x289/0x361
    do_vfs_ioctl+0x4dd/0x52c
    sys_ioctl+0x42/0x65
    system_call_fastpath+0x16/0x1b

    It's easily triggerable from userspace.

    Additionally remove double initialization of chan->fence.pending.

    Signed-off-by: Marcin Slusarz
    Signed-off-by: Ben Skeggs
    Signed-off-by: Greg Kroah-Hartman

    Marcin Slusarz
     
  • commit 14660ccd599dc7bd6ecef17408bd76dc853f9b77 upstream.

    I've been seeing memory leaks on my system in the form of large
    (300-400MB) GEM objects created by now-dead processes laying around
    clogging up memory. I usually notice when it gets to about 1.2GB of
    them. Hopefully this clears up the issue, but I just found this bug
    by inspection.

    Signed-off-by: Eric Anholt
    Signed-off-by: Keith Packard
    Signed-off-by: Greg Kroah-Hartman

    Eric Anholt
     
  • commit dfd3b596fbbfa48b8e7966ef996d587157554b69 upstream.

    In the case of 29bit mode, CAC/UNCAC_ADDR does not return a right address.
    This revises this problem by using P1SEGADDR and P2SEGADDR in 29bit mode.

    Reported-by: Yutaro Ebihara
    Signed-off-by: Nobuhiro Iwamatsu
    Tested-by: Kuninori Morimoto
    Tested-by: Simon Horman
    Signed-off-by: Paul Mundt
    Signed-off-by: Greg Kroah-Hartman

    Nobuhiro Iwamatsu
     
  • commit 8eeea521d9d0fa6afd62df8c6e6566ee946117fa upstream.

    The field is no longer initialised so this will crash if running on
    wm8958.

    Reported-by: Thomas Abraham
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Mark Brown
     
  • commit dd0b3825495a2e7a8cd6cf0ec077618c008ac7c4 upstream.

    Since 193ab2a6070039e7ee2b9b9bebea754a7c52fd1b, various AT91 boards don't
    register USBA adapters anymore due to depending on a now non-existing
    symbol. Fix the symbol name.

    Signed-off-by: Jochen Friedrich
    Acked-by: Nicolas Ferre
    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Signed-off-by: Greg Kroah-Hartman

    Jochen Friedrich
     
  • commit 72103bd1285211440621f2c46f4fce377584de54 upstream.

    Commit 31a3ddda166cda86d2b5111e09ba4bda5239fae6 introduced
    a use after free in virtio-pci. The main issue is
    that the release method signals removal of the virtio device,
    while remove signals removal of the pci device.

    For example, on driver removal or hot-unplug,
    virtio_pci_release_dev is called before virtio_pci_remove.
    We then might get a crash as virtio_pci_remove tries to use the
    device freed by virtio_pci_release_dev.

    We allocate/free all resources together with the
    pci device, so we can leave the release method empty.

    Signed-off-by: Michael S. Tsirkin
    Acked-by: Amit Shah
    Signed-off-by: Rusty Russell
    Signed-off-by: Greg Kroah-Hartman

    Michael S. Tsirkin
     
  • commit aeb4b88ec0a948efce8e3a23a8f964d3560a7308 upstream.

    When a virtual mater control is created, the driver looks for slave
    elements from the assigned card instance. But this may include the
    elements of other codecs when multiple codecs are on the same HD-audio
    bus. This works at the first time, but it'll give Oops when it's once
    freed and re-created via reconfig sysfs.

    This patch changes the element-look-up strategy to limit only to the
    mixer elements of the same codec.

    Reported-by: David Henningsson
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f7f9bdfadfda07afb904a9767468e38c2d1a6033 upstream.

    Fix the not working internal mic on Dell Vostro 3500 laptop by introducing the
    new model dell-vostro-3500.

    Signed-off-by: Julian Wollrath
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Julian Wollrath
     

12 Nov, 2011

13 commits

  • Greg Kroah-Hartman
     
  • commit 21404b772a1c65f7b935b8c0fddc388a949f4e31 upstream.

    This removes the use of the special "macbookair_fn_keys" keyboard
    translation table for the MacBookAir4,x models (ie the 2011 refresh).
    They use the standard apple_fn_keys[] translation. Apparently only the
    old MacBook Air's need a different translation table.

    This mirrors the change that commit da617c7cb915 ("HID: consolidate
    MacbookAir 4,1 mappings") did for the WELLSPRING6A ones, but does it for
    the WELLSPRING6 model used on the MacBookAir4,2.

    Reported-and-tested-by: Dirk Hohndel
    Cc: Jiri Kosina
    Cc: Joshua V Dillon
    Cc: Chase Douglas
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Linus Torvalds
     
  • commit da617c7cb915545dda4280df888dd6f8d5697420 upstream.

    MacbookAir 4,1 doesn't require extra mapping table, as the mappings
    are identical to apple_fn_keys[].

    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • commit ad734bc1565364f9e4b70888d3ce5743b3c1030a upstream.

    I've recently bought a Apple wireless aluminum keyboard (model 2011) which is
    not yet supported by the kernel - it seems they just changed the device id.
    After applying the attached patch, the device is fully functional.

    Signed-off-by: Andreas Krist
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Andreas Krist
     
  • commit 213f9da80533940560bef8fa43b10c590895459c upstream.

    This patch adds keyboard support for Macbook Pro 8 models which has
    WELLSPRING5A model name and 0x0252, 0x0253 and 0x0254 USB IDs. Trackpad
    support for those models are added to bcm5974 in
    c331eb580a0a7906c0cdb8dbae3cfe99e3c0e555 ("Input: bcm5974 - Add
    support for newer MacBookPro8,2).

    Signed-off-by: Gökçen Eraslan
    Acked-by: Henrik Rydberg
    Signed-off-by: Jiri Kosina
    Cc: Chase Douglas
    Signed-off-by: Greg Kroah-Hartman

    Gökçen Eraslan
     
  • commit d762cc290b9f17e346f4297fd5984b70ce71ef66 upstream.

    Added USB device IDs and keyboard map for MacBookAir 4,1 keyboard.

    Signed-off-by: Nobuhiro Iwamatsu
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Nobuhiro Iwamatsu
     
  • commit f6f554f09c5b831efdaf67c449e18ca06ee648fe upstream.

    Otherwise the generic driver wouldn't unbind from it and wouldn't
    let hid-apple to automatically take over.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     
  • commit c50bb1a4005630f47b5da26336f74a485033a515 upstream.

    This panel is also known as the Dell ST2220Tc.

    Signed-off-by: jeffbrown@android.com
    Reviewed-By: Benjamin Tissoires
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Jeff Brown
     
  • commit 5d922baa631058c7e37ae33e81c4d3e6437f8d1d upstream.

    Added USB device IDs for MacBookAir4,2 keyboard. Device constants were
    copied from the MacBookAir3,2 constants. The 4,2 device specification is
    reportedly unchanged from the 3,2 predecessor and seems to work well.

    Signed-off-by: Joshua V Dillon
    Signed-off-by: Chase Douglas
    Signed-off-by: Jiri Kosina
    Signed-off-by: Greg Kroah-Hartman

    Joshua V. Dillon
     
  • commit f722013ee9fd24623df31dec9a91a6d02c3e2f2f upstream.

    In nand_do_write_ops() code it is possible for a caller to provide
    ops.oobbuf populated and ops.mode == MTD_OOB_AUTO, which currently
    means that the chip->oob_poi buffer isn't initialised to all 0xFF.
    The nand_fill_oob() method then carries out the task of copying
    the provided OOB data to oob_poi, but with MTD_OOB_AUTO it skips
    areas marked as unavailable by the layout struct, including the
    bad block marker bytes.

    An example of this causing issues is when the last OOB data read
    was from the start of a bad block where the markers are not 0xFF,
    and the caller wishes to write new OOB data at the beginning of
    another block. In this scenario the caller would provide OOB data,
    but nand_fill_oob() would skip the bad block marker bytes in
    oob_poi before copying the OOB data provided by the caller.
    This means that when the OOB data is written back to NAND,
    the block is inadvertently marked as bad without the caller knowing.
    This has been witnessed when using YAFFS2 where tags are stored
    in the OOB.

    To avoid this oob_poi is always initialised to 0xFF to make sure
    no left over data is inadvertently written back to the OOB area.

    Credits to Brian Norris for fixing this
    patch.

    Signed-off-by: Adam Thomson
    Signed-off-by: Artem Bityutskiy
    Signed-off-by: Greg Kroah-Hartman

    THOMSON, Adam (Adam)
     
  • commit 257a4b42af7586fab4eaec7f04e6896b86551843 upstream.

    All updates that occur under STRIPE_ACTIVE should be globally visible
    when STRIPE_ACTIVE clears. test_and_set_bit() implies a barrier, but
    clear_bit() does not.

    This is suitable for 3.1-stable.

    Signed-off-by: Dan Williams
    Signed-off-by: NeilBrown
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     
  • commit 9a3f530f39f4490eaa18b02719fb74ce5f4d2d86 upstream.

    When the number of failed devices exceeds the allowed number
    we must abort any active parity operations (checks or updates) as they
    are no longer meaningful, and can lead to a BUG_ON in
    handle_parity_checks6.

    This bug was introduce by commit 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8
    in 2.6.29.

    Reported-by: Manish Katiyar
    Tested-by: Manish Katiyar
    Acked-by: Dan Williams
    Signed-off-by: NeilBrown
    Signed-off-by: Greg Kroah-Hartman

    NeilBrown
     
  • commit 52d6d4ef5e6d1517688e27c11c01ab303ec681dd upstream.

    My recent commits (3782c69d, 324c74a) introduced regression
    for register offset selection that based on the macversion.
    Not using parentheses in proper manner for ternary operator
    leads to select wrong offset for the registers.

    This issue was observed with AR9462 chip that immediate disconnect
    after the association with the following message

    ieee80211 phy3: wlan0: Failed to send nullfunc to AP 00:23:69:12:ea:47
    after 500ms, disconnecting.

    Signed-off-by: Rajkumar Manoharan
    Signed-off-by: John W. Linville
    Signed-off-by: Greg Kroah-Hartman

    Rajkumar Manoharan