25 Nov, 2010

22 commits

  • The recent changes to gfp.h to satisfy sparse broke scripts/gfp-translate.
    This patch fixes it up to work with old and new versions of gfp.h .

    [akpm@linux-foundation.org: use `grep -q', per WANG Cong]
    Signed-off-by: Mel Gorman
    Cc: Namhyung Kim
    Reviewed-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • reiserfs_unpack() locks the inode mutex with reiserfs_mutex_lock_safe()
    to protect against reiserfs lock dependency. However this protection
    requires to have the reiserfs lock to be locked.

    This is the case if reiserfs_unpack() is called by reiserfs_ioctl but
    not from reiserfs_quota_on() when it tries to unpack tails of quota
    files.

    Fix the ordering of the two locks in reiserfs_unpack() to fix this
    issue.

    Signed-off-by: Frederic Weisbecker
    Reported-by: Markus Gapp
    Reported-by: Jan Kara
    Cc: Jeff Mahoney
    Cc: [2.6.36.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frederic Weisbecker
     
  • According to the comment describing ops_lock in the definition of struct
    backlight_device and when comparing with other functions in backlight.c
    the mutex must be hold when checking ops to be non-NULL.

    Fixes a problem added by c835ee7f4154992e6 ("backlight: Add suspend/resume
    support to the backlight core") in Jan 2009.

    Signed-off-by: Uwe Kleine-König
    Acked-by: Richard Purdie
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     
  • struct als_data *data is not used in this driver at all.

    Also add a missing ">" character for MODULE_AUTHOR.

    Signed-off-by: Axel Lin
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Currently one pagemap_read() call walks in PAGEMAP_WALK_SIZE bytes (== 512
    pages.) But there is a corner case where walk_pmd_range() accidentally
    runs over a VMA associated with a hugetlbfs file.

    For example, when a process has mappings to VMAs as shown below:

    # cat /proc//maps
    ...
    3a58f6d000-3a58f72000 rw-p 00000000 00:00 0
    7fbd51853000-7fbd51855000 rw-p 00000000 00:00 0
    7fbd5186c000-7fbd5186e000 rw-p 00000000 00:00 0
    7fbd51a00000-7fbd51c00000 rw-s 00000000 00:12 8614 /hugepages/test

    then pagemap_read() goes into walk_pmd_range() path and walks in the range
    0x7fbd51853000-0x7fbd51a53000, but the hugetlbfs VMA should be handled by
    walk_hugetlb_range(). Otherwise PMD for the hugepage is considered bad
    and cleared, which causes undesirable results.

    This patch fixes it by separating pagemap walk range into one PMD.

    Signed-off-by: Naoya Horiguchi
    Cc: Jun'ichi Nomura
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Naoya Horiguchi
     
  • Commit d33b9f45 ("mm: hugetlb: fix hugepage memory leak in
    walk_page_range()") introduces a check if a vma is a hugetlbfs one and
    later in 5dc37642 ("mm hugetlb: add hugepage support to pagemap") it is
    moved under #ifdef CONFIG_HUGETLB_PAGE but a needless find_vma call is
    left behind and its result is not used anywhere else in the function.

    The side-effect of caching vma for @addr inside walk->mm is neither
    utilized in walk_page_range() nor in called functions.

    Signed-off-by: David Sterba
    Reviewed-by: Naoya Horiguchi
    Acked-by: Andi Kleen
    Cc: Andy Whitcroft
    Cc: David Rientjes
    Cc: Hugh Dickins
    Cc: Lee Schermerhorn
    Cc: Matt Mackall
    Acked-by: Mel Gorman
    Cc: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Sterba
     
  • … under stop_machine_run()

    During memory hotplug, build_allzonelists() may be called under
    stop_machine_run(). In this function, setup_zone_pageset() is called.
    But it's bug because it will do page allocation under stop_machine_run().

    Here is a report from Alok Kataria.

    BUG: sleeping function called from invalid context at kernel/mutex.c:94
    in_atomic(): 0, irqs_disabled(): 1, pid: 4, name: migration/0
    Pid: 4, comm: migration/0 Not tainted 2.6.35.6-45.fc14.x86_64 #1
    Call Trace:
    [<ffffffff8103d12b>] __might_sleep+0xeb/0xf0
    [<ffffffff81468245>] mutex_lock+0x24/0x50
    [<ffffffff8110eaa6>] pcpu_alloc+0x6d/0x7ee
    [<ffffffff81048888>] ? load_balance+0xbe/0x60e
    [<ffffffff8103a1b3>] ? rt_se_boosted+0x21/0x2f
    [<ffffffff8103e1cf>] ? dequeue_rt_stack+0x18b/0x1ed
    [<ffffffff8110f237>] __alloc_percpu+0x10/0x12
    [<ffffffff81465e22>] setup_zone_pageset+0x38/0xbe
    [<ffffffff810d6d81>] ? build_zonelists_node.clone.58+0x79/0x8c
    [<ffffffff81452539>] __build_all_zonelists+0x419/0x46c
    [<ffffffff8108ef01>] ? cpu_stopper_thread+0xb2/0x198
    [<ffffffff8108f075>] stop_machine_cpu_stop+0x8e/0xc5
    [<ffffffff8108efe7>] ? stop_machine_cpu_stop+0x0/0xc5
    [<ffffffff8108ef57>] cpu_stopper_thread+0x108/0x198
    [<ffffffff81467a37>] ? schedule+0x5b2/0x5cc
    [<ffffffff8108ee4f>] ? cpu_stopper_thread+0x0/0x198
    [<ffffffff81065f29>] kthread+0x7f/0x87
    [<ffffffff8100aae4>] kernel_thread_helper+0x4/0x10
    [<ffffffff81065eaa>] ? kthread+0x0/0x87
    [<ffffffff8100aae0>] ? kernel_thread_helper+0x0/0x10
    Built 5 zonelists in Node order, mobility grouping on. Total pages: 289456
    Policy zone: Normal

    This patch tries to fix the issue by moving setup_zone_pageset() out from
    stop_machine_run(). It's obviously not necessary to be called under
    stop_machine_run().

    [akpm@linux-foundation.org: remove unneeded local]
    Reported-by: Alok Kataria <akataria@vmware.com>
    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Petr Vandrovec <petr@vmware.com>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Reviewed-by: Christoph Lameter <cl@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

    KAMEZAWA Hiroyuki
     
  • Swap accounting can be configured by CONFIG_CGROUP_MEM_RES_CTLR_SWAP
    configuration option and then it is turned on by default. There is a boot
    option (noswapaccount) which can disable this feature.

    This makes it hard for distributors to enable the configuration option as
    this feature leads to a bigger memory consumption and this is a no-go for
    general purpose distribution kernel. On the other hand swap accounting
    may be very usuful for some workloads.

    This patch adds a new configuration option which controls the default
    behavior (CGROUP_MEM_RES_CTLR_SWAP_ENABLED). If the option is selected
    then the feature is turned on by default.

    It also adds a new boot parameter swapaccount[=1|0] which enhances the
    original noswapaccount parameter semantic by means of enable/disable logic
    (defaults to 1 if no value is provided to be still consistent with
    noswapaccount).

    The default behavior is unchanged (if CONFIG_CGROUP_MEM_RES_CTLR_SWAP is
    enabled then CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is enabled as well)

    Signed-off-by: Michal Hocko
    Acked-by: Daisuke Nishimura
    Cc: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • __mem_cgroup_try_charge() can be called under down_write(&mmap_sem)(e.g.
    mlock does it). This means it can cause deadlock if it races with move charge:

    Ex.1)
    move charge | try charge
    --------------------------------------+------------------------------
    mem_cgroup_can_attach() | down_write(&mmap_sem)
    mc.moving_task = current | ..
    mem_cgroup_precharge_mc() | __mem_cgroup_try_charge()
    mem_cgroup_count_precharge() | prepare_to_wait()
    down_read(&mmap_sem) | if (mc.moving_task)
    -> cannot aquire the lock | -> true
    | schedule()

    Ex.2)
    move charge | try charge
    --------------------------------------+------------------------------
    mem_cgroup_can_attach() |
    mc.moving_task = current |
    mem_cgroup_precharge_mc() |
    mem_cgroup_count_precharge() |
    down_read(&mmap_sem) |
    .. |
    up_read(&mmap_sem) |
    | down_write(&mmap_sem)
    mem_cgroup_move_task() | ..
    mem_cgroup_move_charge() | __mem_cgroup_try_charge()
    down_read(&mmap_sem) | prepare_to_wait()
    -> cannot aquire the lock | if (mc.moving_task)
    | -> true
    | schedule()

    To avoid this deadlock, we do all the move charge works (both can_attach() and
    attach()) under one mmap_sem section.
    And after this patch, we set/clear mc.moving_task outside mc.lock, because we
    use the lock only to check mc.from/to.

    Signed-off-by: Daisuke Nishimura
    Cc: Balbir Singh
    Acked-by: KAMEZAWA Hiroyuki
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Nishimura
     
  • Chip detection may fail if the chip is in some odd state for example after
    system restart. Chip doesn't have HW reset line.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Chip detection may fail if the chip is in some odd state for example after
    system restart. Chip doesn't have HW reset line.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Delays were little bit too long. Adjust delay times and add some comments
    to them.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Delays were little bit too long. Adjust delay times and add some comments
    to them.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • A small macro changed to inline function to have proper type checking.
    Inline added to two similar small functions.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Some small macros changed to inline functions to have proper type
    checking.

    Signed-off-by: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • The attribute cache for a file was not being cleared when a file is opened
    with O_TRUNC.

    If the filesystem's open operation truncates the file ("atomic_o_trunc"
    feature flag is set) then the kernel should invalidate the cached st_mtime
    and st_ctime attributes.

    Also i_size should be explicitly be set to zero as it is used sometimes
    without refreshing the cache.

    Signed-off-by: Ken Sumrall
    Cc: Anfei
    Cc: "Anand V. Avati"
    Signed-off-by: Miklos Szeredi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ken Sumrall
     
  • UV hardware defines 256 memory protection regions versus the baseline 64
    with increasing size for the SN2 ia64. This was overlooked when XPC was
    modified to accomodate both UV and SN2.

    Without this patch, a user could reconfigure their existing system and
    suddenly disable cross-partition communications with no indication of what
    has gone wrong. It also prevents larger configurations from using
    cross-partition communication.

    Signed-off-by: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin@sgi.com
     
  • Fix this:

    kernel BUG at mm/memcontrol.c:2155!
    invalid opcode: 0000 [#1]
    last sysfs file:

    Pid: 18, comm: sh Not tainted 2.6.37-rc3 #3 /Bochs
    EIP: 0060:[] EFLAGS: 00000246 CPU: 0
    EIP is at mem_cgroup_move_account+0xe2/0xf0
    EAX: 00000004 EBX: c6f931d4 ECX: c681c300 EDX: c681c000
    ESI: c681c300 EDI: ffffffea EBP: c681c000 ESP: c46f3e30
    DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
    Process sh (pid: 18, ti=c46f2000 task=c6826e60 task.ti=c46f2000)
    Stack:
    00000155 c681c000 0805f000 c46ee180 c46f3e5c c7058820 c1074d37 00000000
    08060000 c46db9a0 c46ec080 c7058820 0805f000 08060000 c46f3e98 c1074c50
    c106c75e c46f3e98 c46ec080 08060000 0805ffff c46db9a0 c46f3e98 c46e0340
    Call Trace:
    [] ? mem_cgroup_move_charge_pte_range+0xe7/0x130
    [] ? mem_cgroup_move_charge_pte_range+0x0/0x130
    [] ? walk_page_range+0xee/0x1d0
    [] ? mem_cgroup_move_task+0x66/0x90
    [] ? mem_cgroup_move_charge_pte_range+0x0/0x130
    [] ? mem_cgroup_move_task+0x0/0x90
    [] ? cgroup_attach_task+0x136/0x200
    [] ? cgroup_tasks_write+0x48/0xc0
    [] ? cgroup_file_write+0xde/0x220
    [] ? do_page_fault+0x17d/0x3f0
    [] ? alloc_fd+0x2d/0xd0
    [] ? cgroup_file_write+0x0/0x220
    [] ? vfs_write+0x92/0xc0
    [] ? sys_write+0x41/0x70
    [] ? syscall_call+0x7/0xb
    Code: 03 00 74 09 8b 44 24 04 e8 1c f1 ff ff 89 73 04 8d 86 b0 00 00 00 b9 01 00 00 00 89 da 31 ff e8 65 f5 ff ff e9 4d ff ff ff 0f 0b 0b 0f 0b 0f 0b 90 8d b4 26 00 00 00 00 83 ec 10 8b 0d f4 e3
    EIP: [] mem_cgroup_move_account+0xe2/0xf0 SS:ESP 0068:c46f3e30
    ---[ end trace 7daa1582159b6532 ]---

    lock_page_cgroup and unlock_page_cgroup are implemented using
    bit_spinlock. bit_spinlock doesn't touch the bit if we are on non-SMP
    machine, so we can't use the bit to check whether the lock was taken.

    Let's introduce is_page_cgroup_locked based on bit_spin_is_locked instead
    of PageCgroupLocked to fix it.

    [akpm@linux-foundation.org: s/is_page_cgroup_locked/page_is_cgroup_locked/]
    Signed-off-by: Kirill A. Shutemov
    Reviewed-by: Johannes Weiner
    Acked-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Disable the winch irq early to make sure we don't take an interrupt part
    way through the freeing of the handler data, resulting in a crash on
    shutdown:

    winch_interrupt : read failed, errno = 9
    fd 13 is losing SIGWINCH support
    ------------[ cut here ]------------
    WARNING: at lib/list_debug.c:48 list_del+0xc6/0x100()
    list_del corruption, next is LIST_POISON1 (00100100)
    082578c8: [] dump_stack+0x22/0x24
    082578e0: [] warn_slowpath_common+0x5a/0x80
    08257908: [] warn_slowpath_fmt+0x2e/0x30
    08257920: [] list_del+0xc6/0x100
    08257940: [] free_winch+0x14/0x80
    08257958: [] winch_interrupt+0xdb/0xe0
    08257978: [] handle_IRQ_event+0x35/0xe0
    08257998: [] handle_edge_irq+0xb7/0x170
    082579bc: [] do_IRQ+0x34/0x50
    082579d4: [] sigio_handler+0x5b/0x80
    082579ec: [] sig_handler_common+0x44/0xb0
    08257a68: [] sig_handler+0x38/0x50
    08257a78: [] handle_signal+0x5c/0xa0
    08257a9c: [] hard_handler+0x18/0x20
    08257aac: [] 0xc14400

    Signed-off-by: Will Newton
    Acked-by: WANG Cong
    Cc: Jeff Dike
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Will Newton
     
  • Depending on processor speed, page size, and the amount of memory a
    process is allowed to amass, cleanup of a large VM may freeze the system
    for many seconds. This can result in a watchdog timeout.

    Make sure other tasks receive some service when cleaning up large VMs.

    Signed-off-by: Steven J. Magnani
    Cc: Greg Ungerer
    Reviewed-by: KOSAKI Motohiro
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steven J. Magnani
     
  • dpkg uses fiemap but didn't particularly need to include stdint.h so far.
    Since 367a51a33902 ("fs: Add FITRIM ioctl"), build of linux/fs.h failed in
    dpkg with:

    In file included from ../../src/filesdb.c:27:0:
    /usr/include/linux/fs.h:37:2: error: expected specifier-qualifier-list before 'uint64_t'

    Use exportable type __u64 to avoid the dependency on stdint.h.

    b31d42a5af18 ("Fix compile brekage with !CONFIG_BLOCK") fixed only the
    kernel build by including linux/types.h, but this also fixed "make
    headers_check", so don't revert it.

    Signed-off-by: Loïc Minier
    Tested-by: Arnd Bergmann
    Cc: Lukas Czerner
    Cc: Dmitry Monakhov
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Loïc Minier
     
  • While running randconfg with ktest.pl I stumbled upon this bug:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000003
    IP: [] strstr+0x39/0x86
    PGD 0
    Oops: 0000 [#1] SMP
    last sysfs file:
    CPU 0
    Modules linked in:

    Pid: 1, comm: swapper Not tainted 2.6.37-rc1-test+ #6 DG965MQ/
    RIP: 0010:[] [] strstr+0x39/0x86
    RSP: 0018:ffff8800797cbd80 EFLAGS: 00010213
    RAX: 0000000000000000 RBX: 0000000000000003 RCX: ffffffffffffffff
    RDX: 0000000000000000 RSI: ffffffff82eb7ac9 RDI: 0000000000000003
    RBP: ffff8800797cbda0 R08: ffff880000000003 R09: 0000000000030725
    R10: ffff88007d294c00 R11: 0000000000014c00 R12: 0000000000000020
    R13: ffffffff82eb7ac9 R14: ffffffffffffffff R15: ffffffff82eb7b08
    FS: 0000000000000000(0000) GS:ffff88007d200000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 0000000000000003 CR3: 0000000002a1d000 CR4: 00000000000006f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process swapper (pid: 1, threadinfo ffff8800797ca000, task ffff8800797d0000)
    Stack:
    00000000000000ba ffffffff82eb7ac9 ffffffff82eb7ab8 00000000000000ba
    ffff8800797cbdf0 ffffffff81e2050f ffff8800797cbdc0 00000000815f913b
    ffff8800797cbe00 ffffffff82eb7ab8 0000000000000000 0000000000000000
    Call Trace:
    [] dmi_matches+0x117/0x154
    [] dmi_check_system+0x3d/0x8d
    [] ? nas_gpio_init+0x0/0x2c8
    [] nas_gpio_init+0x24/0x2c8
    [] ? wm8350_led_init+0x0/0x20
    [] ? nas_gpio_init+0x0/0x2c8
    [] do_one_initcall+0xab/0x1b2
    [] kernel_init+0x248/0x331
    [] kernel_thread_helper+0x4/0x10
    [] ? kernel_init+0x0/0x331

    Found that the nas_led_whitelist dmi_system_id structure array had no
    NULL end delimiter, causing the dmi_check_system() loop to read an
    undefined entry.

    Signed-off-by: Steven Rostedt
    Acked-by: Dave Hansen
    Acked-by: Richard Purdie
    Acked-by: Arjan van de Ven
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     

24 Nov, 2010

4 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (41 commits)
    ALSA: hda - Identify more variants for ALC269
    ALSA: hda - Fix wrong ALC269 variant check
    ALSA: hda - Enable jack sense for Thinkpad Edge 11
    ALSA: Revert "ALSA: hda - Fix switching between dmic and mic using the same mux on IDT/STAC"
    ALSA: hda - Fixed ALC887-VD initial error
    ALSA: atmel - Fix the return value in error path
    ALSA: hda: Use hp-laptop quirk to enable headphones automute for Asus A52J
    ALSA: snd-atmel-abdac: test wrong variable
    ALSA: azt3328: period bug fix (for PA), add missing ACK on stop timer
    ALSA: hda: Add Samsung R720 SSID for subwoofer pin fixup
    ALSA: sound/pci/asihpi/hpioctl.c: Remove unnecessary casts of pci_get_drvdata
    ALSA: sound/core/pcm_lib.c: Remove unnecessary semicolons
    ALSA: sound/ppc: Use printf extension %pR for struct resource
    ALSA: ac97: Apply quirk for Dell Latitude D610 binding Master and Headphone controls
    ASoC: uda134x - set reg_cache_default to uda134x_reg
    ASoC: Add support for MAX98089 CODEC
    ASoC: davinci: fixes for multi-component
    ASoC: Fix register cache setup WM8994 for multi-component
    ASoC: Fix dapm_seq_compare() for multi-component
    ASoC: RX1950: Fix hw_params function
    ...

    Linus Torvalds
     
  • * 'upstream/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen: (23 commits)
    xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs.
    xen: set IO permission early (before early_cpu_init())
    xen: re-enable boot-time ballooning
    xen/balloon: make sure we only include remaining extra ram
    xen/balloon: the balloon_lock is useless
    xen: add extra pages to balloon
    xen: make evtchn's name less generic
    xen/evtchn: the evtchn device is non-seekable
    Revert "xen/privcmd: create address space to allow writable mmaps"
    xen/events: use locked set|clear_bit() for cpu_evtchn_mask
    xen/evtchn: clear secondary CPUs' cpu_evtchn_mask[] after restore
    xen/xenfs: update xenfs_mount for new prototype
    xen: fix header export to userspace
    xen: implement XENMEM_machphys_mapping
    xen: set vma flag VM_PFNMAP in the privcmd mmap file_op
    xen: xenfs: privcmd: check put_user() return code
    xen/evtchn: add missing static
    xen/evtchn: Fix name of Xen event-channel device
    xen/evtchn: don't do unbind_from_irqhandler under spinlock
    xen/evtchn: remove spurious barrier
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    of/phylib: Use device tree properties to initialize Marvell PHYs.
    phylib: Add support for Marvell 88E1149R devices.
    phylib: Use common page register definition for Marvell PHYs.
    qlge: Fix incorrect usage of module parameters and netdev msg level
    ipv6: fix missing in6_ifa_put in addrconf
    SuperH IrDA: correct Baud rate error correction
    atl1c: Fix hardware type check for enabling OTP CLK
    net: allow GFP_HIGHMEM in __vmalloc()
    bonding: change list contact to netdev@vger.kernel.org
    e1000: fix screaming IRQ

    Linus Torvalds
     
  • * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: EHCI: fix obscure race in ehci_endpoint_disable
    USB: gadget: AT91: fix typo in atmel_usba_udc driver
    USB: isp1362-hcd - fix section mismatch warning
    USB: EHCI: AMD periodic frame list table quirk
    USB: OTG: langwell_otg: fix up some sysfs attribute permissions
    USB: misc: usbsevseg: fix up some sysfs attribute permissions
    USB: misc: usbled: fix up some sysfs attribute permissions
    USB: misc: trancevibrator: fix up a sysfs attribute permission
    USB: misc: cypress_cy7c63: fix up some sysfs attribute permissions
    USB: storage: sierra_ms: fix sysfs file attribute
    USB: ehci: fix debugfs 'lpm' permissions
    USB: atm: ueagle-atm: fix up some permissions on the sysfs files
    xhci: Fix command ring replay after resume.
    xHCI: fix wMaxPacketSize mask
    xHCI: release spinlock when setup interrupt
    xhci: Remove excessive printks with shared IRQs.

    Linus Torvalds
     

23 Nov, 2010

13 commits

  • Takashi Iwai
     
  • …soc-2.6 into fix/asoc

    Takashi Iwai
     
  • Give more correct chip names for ALC269-variant codecs.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • The refactoring commit d433a67831ab2c470cc53a3ff9b60f656767be15
    ALSA: hda - Optimize the check of ALC269 codec variants
    introduced a wrong check for ALC269-vb type. This patch corrects it.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • Add a quirk entry for Thinkpad Edge 11 as well as other TP Edge models.

    Signed-off-by: Manoj Iyer
    Signed-off-by: Takashi Iwai

    Manoj Iyer
     
  • This reverts commit f41cc2a85d52ac6971299922084ac5ac59dc339d.

    The patch broke the digital mic pin handling wrongly.
    Reference: bko#23162
    https://bugzilla.kernel.org/show_bug.cgi?id=23162

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • * upstream/core:
    xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs.
    xen: set IO permission early (before early_cpu_init())
    xen: re-enable boot-time ballooning
    xen/balloon: make sure we only include remaining extra ram
    xen/balloon: the balloon_lock is useless
    xen: add extra pages to balloon
    xen/events: use locked set|clear_bit() for cpu_evtchn_mask
    xen/evtchn: clear secondary CPUs' cpu_evtchn_mask[] after restore
    xen: implement XENMEM_machphys_mapping

    * upstream/xenfs:
    Revert "xen/privcmd: create address space to allow writable mmaps"
    xen/xenfs: update xenfs_mount for new prototype
    xen: fix header export to userspace
    xen: set vma flag VM_PFNMAP in the privcmd mmap file_op
    xen: xenfs: privcmd: check put_user() return code

    * upstream/evtchn:
    xen: make evtchn's name less generic
    xen/evtchn: the evtchn device is non-seekable
    xen/evtchn: add missing static
    xen/evtchn: Fix name of Xen event-channel device
    xen/evtchn: don't do unbind_from_irqhandler under spinlock
    xen/evtchn: remove spurious barrier
    xen/evtchn: ports start enabled
    xen/evtchn: dynamically allocate port_user array
    xen/evtchn: track enabled state for each port

    Jeremy Fitzhardinge
     
  • When we allocate a vector for MSI/MSI-X we save away the PIRQ, and the
    vector value. When we unmap (de-allocate) the MSI/MSI-X vector(s) we
    need to provide the PIRQ and the vector value. What we did instead
    was to provide the GSI (which was zero) and the vector value, and we
    got these unhappy error messages:

    (XEN) irq.c:1575: dom0: pirq 0 not mapped
    [ 7.733415] unmap irq failed -22

    This patches fixes this and we use the PIRQ value instead of the GSI
    value.

    CC: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • This patch is based off "xen dom0: Set up basic IO permissions for dom0."
    by Juan Quintela .

    On AMD machines when we boot the kernel as Domain 0 we get this nasty:

    mapping kernel into physical memory
    Xen: setup ISA identity maps
    about to get started...
    (XEN) traps.c:475:d0 Unhandled general protection fault fault/trap [#13] on VCPU 0 [ec=0000]
    (XEN) domain_crash_sync called from entry.S
    (XEN) Domain 0 (vcpu#0) crashed on cpu#0:
    (XEN) ----[ Xen-4.1-101116 x86_64 debug=y Not tainted ]----
    (XEN) CPU: 0
    (XEN) RIP: e033:[]
    (XEN) RFLAGS: 0000000000000282 EM: 1 CONTEXT: pv guest
    (XEN) rax: 000000008000c068 rbx: ffffffff8186c680 rcx: 0000000000000068
    (XEN) rdx: 0000000000000cf8 rsi: 000000000000c000 rdi: 0000000000000000
    (XEN) rbp: ffffffff81801e98 rsp: ffffffff81801e50 r8: ffffffff81801eac
    (XEN) r9: ffffffff81801ea8 r10: ffffffff81801eb4 r11: 00000000ffffffff
    (XEN) r12: ffffffff8186c694 r13: ffffffff81801f90 r14: ffffffffffffffff
    (XEN) r15: 0000000000000000 cr0: 000000008005003b cr4: 00000000000006f0
    (XEN) cr3: 0000000221803000 cr2: 0000000000000000
    (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e02b cs: e033
    (XEN) Guest stack trace from rsp=ffffffff81801e50:

    RIP points to read_pci_config() function.

    The issue is that we don't set IO permissions for the Linux kernel early enough.

    The call sequence used to be:

    xen_start_kernel()
    x86_init.oem.arch_setup = xen_setup_arch;
    setup_arch:
    - early_cpu_init
    - early_init_amd
    - read_pci_config
    - x86_init.oem.arch_setup [ xen_arch_setup ]
    - set IO permissions.

    We need to set the IO permissions earlier on, which this patch does.

    Acked-by: Jeremy Fitzhardinge
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Some aspects of PHY initialization are board dependent, things like
    indicator LED connections and some clocking modes cannot be determined
    by probing. The dev_flags element of struct phy_device can be used to
    control these things if an appropriate value can be passed from the
    Ethernet driver. We run into problems however if the PHY connections
    are specified by the device tree. There is no way for the Ethernet
    driver to know what flags it should pass.

    If we are using the device tree, the struct phy_device will be
    populated with the device tree node corresponding to the PHY, and we
    can extract extra configuration information from there.

    The next question is what should the format of that information be?
    It is highly device specific, and the device tree representation
    should not be tied to any arbitrary kernel defined constants. A
    straight forward representation is just to specify the exact bits that
    should be set using the "marvell,reg-init" property:

    phy5: ethernet-phy@5 {
    reg = ;
    compatible = "marvell,88e1149r";
    marvell,reg-init =
    /* led[0]:1000, led[1]:100, led[2]:10, led[3]:tx */
    , /* Reg 3,16 , /* Reg 3,17 , /* Reg 3,18 ; /* Reg 3,19 ;
    compatible = "marvell,88e1118";
    marvell,reg-init =
    /* Fix rx and tx clock transition timing */
    , /* Reg 2,21 Clear bits 4, 5 */
    /* Adjust LED drive. */
    , /* Reg 3,17 ; /* Reg 3,16
    Cc: Grant Likely
    Cc: Cyril Chemparathy
    Cc: David Daney
    Cc: Arnaud Patard
    Cc: Benjamin Herrenschmidt
    Reviewed-by: Grant Likely
    Signed-off-by: David S. Miller

    David Daney
     
  • The 88E1149R is 10/100/1000 quad-gigabit Ethernet PHY. The
    .config_aneg function can be shared with 88E1118, but it needs its own
    .config_init.

    Signed-off-by: David Daney
    Cc: Cyril Chemparathy
    Cc: Arnaud Patard
    Cc: Benjamin Herrenschmidt
    Cc: Wolfram Sang
    Signed-off-by: David S. Miller

    David Daney
     
  • The definition of the Marvell PHY page register is not specific to
    88E1121, so rename the macro to MII_MARVELL_PHY_PAGE, and use it
    throughout.

    Suggested-by: Cyril Chemparathy
    Signed-off-by: David Daney
    Cc: Cyril Chemparathy
    Cc: Arnaud Patard
    Cc: Benjamin Herrenschmidt
    Signed-off-by: David S. Miller

    David Daney
     
  • Driver appears to be mistaking the permission field with default value
    in the case of debug and qlge_irq_type.

    Driver is also passing debug as a bitmask into netif_msg_init()
    which wants a number of bits. Ron Mercer suggests we should
    change this to pass in -1 so the defaults get used instead,
    which makes the default much less verbose.

    Signed-off-by: Milton Miller
    Signed-off-by: Sonny Rao
    Signed-off-by: David S. Miller

    Sonny Rao
     

22 Nov, 2010

1 commit

  • Fix ref count bug introduced by

    commit 2de795707294972f6c34bae9de713e502c431296
    Author: Lorenzo Colitti
    Date: Wed Oct 27 18:16:49 2010 +0000

    ipv6: addrconf: don't remove address state on ifdown if the address
    is being kept

    Fix logic so that addrconf_ifdown() decrements the inet6_ifaddr
    refcnt correctly with in6_ifa_put().

    Reported-by: Stephen Hemminger
    Signed-off-by: John Fastabend
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    John Fastabend