02 Apr, 2010

1 commit


29 Mar, 2010

4 commits

  • For the boot, enable_mmu() is called from setup_arch() but we don't call
    setup_arch() for any of the other cpus. So turn on the non-boot cpu's
    mmu inside of start_secondary().

    I noticed this bug on an SMP board when trying to map I/O memory
    (smsc911x registers) into the kernel address space. Since the Address
    Translation bit in MMUCR wasn't set, accessing the virtual address where
    the smsc911x registers were supposedly mapped actually performed a
    physical address access.

    Signed-off-by: Matt Fleming
    Cc: stable@kernel.org
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • Ensure that the aux table is properly initialized, even when optional
    features are missing. Without this, the FDPIC loader did not work.

    Signed-off-by: Andrew Stubbs
    Cc: stable@kernel.org
    Signed-off-by: Paul Mundt

    Andrew Stubbs
     
  • Use set_cpus_allowed_ptr rather than set_cpus_allowed.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression E1,E2;
    @@

    - set_cpus_allowed(E1, cpumask_of_cpu(E2))
    + set_cpus_allowed_ptr(E1, cpumask_of(E2))

    @@
    expression E;
    identifier I;
    @@

    - set_cpus_allowed(E, I)
    + set_cpus_allowed_ptr(E, &I)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Paul Mundt

    Julia Lawall
     
  • Signed-off-by: Yusuke Goda
    Signed-off-by: Paul Mundt

    Yusuke Goda
     

26 Mar, 2010

2 commits


25 Mar, 2010

33 commits

  • * 'for-linus' of git://gitorious.org/linux-omap-dss2/linux:
    OMAP: DSS2: panel-generic: re-implement mode changing
    OMAP: DSS2: initialize dss clk sources properly
    OMAP: DSS2: VRAM: Fix early_param for vram

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] Orion5x: replace KEY_WLAN with KEY_WPS_BUTTON
    [ARM] Kirkwood: WPS button keycode mapping
    pxa168fb: fix incorrect resource calculation
    [ARM] pxa/raumfeld: fix button name
    [ARM] pxa/raumfeld: remove duplicated #include
    [ARM] locomo: fix unpaired spin_lock_irqsave
    [ARM] locomo: fix SPI register offset
    [ARM] pxa/sharpsl: add dependency of max1111 driver to sharpsl_pm
    [ARM] pxa: remove unnecessary 'select FB_W100' from some platforms
    [ARM] pxa: remove spi cs gpio direction to avoid clash with driver
    [ARM] mmp: fix for variables in uncompress.h being discarded
    [ARM] pxa: fix for variables in uncompress.h being discarded
    ARM: Update mach-types
    ARM: Fix IXP23xx build error in mach/memory.h

    Linus Torvalds
     
  • * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    NFS: don't try to decode GETATTR if DELEGRETURN returned error
    sunrpc: handle allocation errors from __rpc_lookup_create()
    SUNRPC: Fix the return value of rpc_run_bc_task()
    SUNRPC: Fix a use after free bug with the NFSv4.1 backchannel
    SUNRPC: Fix a potential memory leak in auth_gss
    NFS: Prevent another deadlock in nfs_release_page()

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    libata-sff: fix spurious IRQ handling
    pata_via: Add VIA VX900 support

    Linus Torvalds
     
  • * 'sh/for-2.6.34' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    sh: Silence unintialized variable warnings in dwarf unwinder.
    sh: Tidy up a couple of section mismatches.
    sh: Fix build after dynamic PMB rework
    sh: Replace unsafe manipulation of MMUCR
    sh: Flush ITLB too in PTEAEX's flush_tlb_page()
    sh64: Remove long unused mid_sched macro
    SH: remove superfluous warning from the serial driver
    SH: fix SCIFA SCASCR register bit definitions
    serial: sh-sci: fix SH-Mobile SH breakage
    sh: Add watch-dog register address for SH7722/SH7723/SH7724
    sh: ms7724: Add tiny-document for sound
    sh: mach-ecovec24: Add i2c_put_adapter on sh_eth_init

    Linus Torvalds
     
  • Sparse complained about this missing spin_unlock()

    Signed-off-by: Dan Carpenter
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator: fix dangling pointers
    lp3971: Fix BUCK_VOL_CHANGE_SHIFT logic
    lp3971: Fix setting val for LDO2 and LDO4
    regulator: Get rid of lockdep warning
    regulator: handle kcalloc() failure
    Regulators: max8925-regulator - clean up driver data after removal

    Linus Torvalds
     
  • do_sync_read/write() should set kiocb.ki_nbytes to be consistent with
    do_sync_readv_writev().

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Fix an incorrect for-loop in elf_core_vma_data_size(). The advance-pointer
    statement lacks an assignment:

    CC fs/binfmt_elf_fdpic.o
    fs/binfmt_elf_fdpic.c: In function 'elf_core_vma_data_size':
    fs/binfmt_elf_fdpic.c:1593: warning: statement with no effect

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
    drm/i915: Stop trying to use ACPI lid status to determine LVDS connection.
    drm/intel: fix up set_tiling for untiled->tiled transition
    drm/i915: Set up the documented clock gating on Sandybridge and Ironlake.
    agp/intel: Don't do the chipset flush on Sandybridge.
    agp/intel: Respect the GTT size on Sandybridge for scratch page setup.
    drm/i915: fix small leak on overlay error path
    drm/i915: Avoid NULL deref in get_pages() unwind after error.
    drm/i915: Fix check with IS_GEN6
    drivers/gpu/drm/i915/intel_bios.c: fix continuation line formats
    drm/i915: Enable VS timer dispatch.
    drm/i915: Rename FBC_C3_IDLE to FBC_CTL_C3_IDLE to match other registers
    drm/i915: remove an unnecessary wait_request()
    drm/i915: Don't bother with the BKL for GEM ioctls.

    Linus Torvalds
     
  • * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c-scmi: Provide module aliases for automatic loading
    i2c-scmi: Support IBM SMBus CMI devices
    acpi: Support IBM SMBus CMI devices

    Linus Torvalds
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
    [S390] fix boot failures with compressed kernels
    [S390] fix broken proc interface for sclp_async
    [S390] sclp: avoid 64 bit division
    [S390] dasd: check tsb validity
    [S390] dasd: fix alignment of transport mode recovery TCW
    [S390] system.h: Fix compile error for 1 and 2 byte cmpxchg
    [S390] smp: fix lowcore allocation
    [S390] zcore: CPU registers are not saved under LPAR

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: cmipci: work around invalid PCM pointer
    ASoC: Remove BROKEN from i.MX audio after dependencies merged
    ALSA: hda - Fix access-after-free in patch_realtek.c
    ALSA: hda - Sort codec entry list of Nvidia HDMI
    ALSA: hda - Add support of Nvidia GT220 HDMI
    ALSA: hda: Fix 0 dB offset for HP laptops using CX20551 (Waikiki)
    ALSA: hda - Add PCI quirk for HP dv6-1110ax.
    sound/oss/vidc.c: change the field used with DMA_ACTIVE
    ASoC: pxa-pcm-lib: initialize DMA channel to -1
    ASoC: Bail out of wm_hubs DC servo if calibration fails
    ASoC: tlv320dac33: Internal clocking changes
    ASoC: tlv320dac33: Fix DSP modes
    ASoC: SIU driver shall select FW_LOADER

    Linus Torvalds
     
  • Document the circular buffering capabilities available in Linux.

    Signed-off-by: David Howells
    Signed-off-by: Paul E. McKenney
    Reviewed-by: Randy Dunlap
    Reviewed-by: Stefan Richter
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Smaller size than a minimum blocksize can't be used, after all it's
    handled like 0 size.

    For extended partition itself, this makes sure to use bigger size than one
    logical sector size at least.

    Signed-off-by: OGAWA Hirofumi
    Cc: Daniel Taylor
    Cc: "H. Peter Anvin"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • In order to use disks larger than 2TiB on Windows XP, it is necessary to
    use 4096-byte logical sectors in an MBR.

    Although the kernel storage and functions called from msdos.c used
    "sector_t" internally, msdos.c still used u32 variables, which results in
    the ability to handle XP-compatible large disks.

    This patch changes the internal variables to "sector_t".

    Daniel said: "In the near future, WD will be releasing products that need
    this patch".

    [hirofumi@mail.parknet.co.jp: tweaks and fix]
    Signed-off-by: Daniel Taylor
    Signed-off-by: OGAWA Hirofumi
    Cc: "H. Peter Anvin"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Taylor
     
  • Fixup for the flatpanel output. The geode_modedb attribute flags are used
    to set the SYNC polarity of the flatpanel. Without this patch our
    flatpanel registers stayed unconfigured, so we just saw garbage output.

    Signed-off-by: Michael Grzeschik
    Cc: Andres Salomon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Grzeschik
     
  • "m" is never NULL here. We need a different test for the end of list
    condition.

    Signed-off-by: Dan Carpenter
    Acked-by: KAMEZAWA Hiroyuki
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Discovered while testing other mempolicy changes:

    get_mempolicy() does not handle static/relative mode flags correctly.
    Return the value that the user specified so that it can be restored
    via set_mempolicy() if desired.

    Signed-off-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc: Ravikiran Thirumalai
    Cc: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • In the extended CSD register the CARD_TYPE is an 8-bit value of which the
    upper 6 bits were reserved in JEDEC specifications prior to version 4.4.
    In version 4.4 two of the reserved bits were designated for identifying
    support for the newly added High-Speed Dual Data Rate. Unfortunately the
    mmc_read_ext_csd() function required that the reserved bits be zero
    instead of ignoring them as it should.

    This patch makes mmc_read_ext_csd() ignore the CARD_TYPE bits that are
    reserved or not yet supported. It also stops the function jumping to the
    end as though an error occurred, when it is only warns that the CARD_TYPE
    bits (that it does interpret) are invalid.

    Signed-off-by: Adrian Hunter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Hunter
     
  • The reiserfs journal behaves inconsistently when determining whether to
    allow a mount of a read-only device.

    This is due to the use of the continue_replay variable to short circuit
    the journal scanning. If it's set, it's assumed that there are
    transactions to replay, but there may not be. If it's unset, it's assumed
    that there aren't any, and that may not be the case either.

    I've observed two failure cases:
    1) Where a clean file system on a read-only device refuses to mount
    2) Where a clean file system on a read-only device passes the
    optimization and then tries writing the journal header to update
    the latest mount id.

    The former is easily observable by using a freshly created file system on
    a read-only loopback device.

    This patch moves the check into journal_read_transaction, where it can
    bail out before it's about to replay a transaction. That way it can go
    through and skip transactions where appropriate, yet still refuse to mount
    a file system with outstanding transactions.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     
  • Commit 57fe60df ("reiserfs: add atomic addition of selinux attributes
    during inode creation") contains a bug that will cause it to oops when
    mounting a file system that didn't previously contain extended attributes
    on a system using security.* xattrs.

    The issue is that while creating the privroot during mount
    reiserfs_security_init calls reiserfs_xattr_jcreate_nblocks which
    dereferences the xattr root. The xattr root doesn't exist, so we get an
    oops.

    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=15309

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     
  • In 2.6.34-rc1, removing vhost_net module causes an oops in sync_mm_rss
    (called from do_exit) when workqueue is destroyed. This does not happen
    on net-next, or with vhost on top of to 2.6.33.

    The issue seems to be introduced by
    34e55232e59f7b19050267a05ff1226e5cd122a5 ("mm: avoid false sharing of
    mm_counter) which added sync_mm_rss() that is passed task->mm, and
    dereferences it without checking. If task is a kernel thread, mm might be
    NULL. I think this might also happen e.g. with aio.

    This patch fixes the oops by calling sync_mm_rss when task->mm is set to
    NULL. I also added BUG_ON to detect any other cases where counters get
    incremented while mm is NULL.

    The oops I observed looks like this:

    BUG: unable to handle kernel NULL pointer dereference at 00000000000002a8
    IP: [] sync_mm_rss+0x33/0x6f
    PGD 0
    Oops: 0002 [#1] SMP
    last sysfs file: /sys/devices/system/cpu/cpu7/cache/index2/shared_cpu_map
    CPU 2
    Modules linked in: vhost_net(-) tun bridge stp sunrpc ipv6 cpufreq_ondemand acpi_cpufreq freq_table kvm_intel kvm i5000_edac edac_core rtc_cmos bnx2 button i2c_i801 i2c_core rtc_core e1000e sg joydev ide_cd_mod serio_raw pcspkr rtc_lib cdrom virtio_net virtio_blk virtio_pci virtio_ring virtio af_packet e1000 shpchp aacraid uhci_hcd ohci_hcd ehci_hcd [last unloaded: microcode]

    Pid: 2046, comm: vhost Not tainted 2.6.34-rc1-vhost #25 System Planar/IBM System x3550 -[7978B3G]-
    RIP: 0010:[] [] sync_mm_rss+0x33/0x6f
    RSP: 0018:ffff8802379b7e60 EFLAGS: 00010202
    RAX: 0000000000000008 RBX: ffff88023f2390c0 RCX: 0000000000000000
    RDX: ffff88023f2396b0 RSI: 0000000000000000 RDI: ffff88023f2390c0
    RBP: ffff8802379b7e60 R08: 0000000000000000 R09: 0000000000000000
    R10: ffff88023aecfbc0 R11: 0000000000013240 R12: 0000000000000000
    R13: ffffffff81051a6c R14: ffffe8ffffc0f540 R15: 0000000000000000
    FS: 0000000000000000(0000) GS:ffff880001e80000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00000000000002a8 CR3: 000000023af23000 CR4: 00000000000406e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process vhost (pid: 2046, threadinfo ffff8802379b6000, task ffff88023f2390c0)
    Stack:
    ffff8802379b7ee0 ffffffff81040687 ffffe8ffffc0f558 ffffffffa00a3e2d
    0000000000000000 ffff88023f2390c0 ffffffff81055817 ffff8802379b7e98
    ffff8802379b7e98 0000000100000286 ffff8802379b7ee0 ffff88023ad47d78
    Call Trace:
    [] do_exit+0x147/0x6c4
    [] ? handle_rx_net+0x0/0x17 [vhost_net]
    [] ? autoremove_wake_function+0x0/0x39
    [] ? worker_thread+0x0/0x229
    [] kthreadd+0x0/0xf2
    [] kernel_thread_helper+0x4/0x10
    [] ? kthread+0x0/0x87
    [] ? kernel_thread_helper+0x0/0x10
    Code: 00 8b 87 6c 02 00 00 85 c0 74 14 48 98 f0 48 01 86 a0 02 00 00 c7 87 6c 02 00 00 00 00 00 00 8b 87 70 02 00 00 85 c0 74 14 48 98 48 01 86 a8 02 00 00 c7 87 70 02 00 00 00 00 00 00 8b 87 74
    RIP [] sync_mm_rss+0x33/0x6f
    RSP
    CR2: 00000000000002a8
    ---[ end trace 41603ba922beddd2 ]---
    Fixing recursive fault but reboot is needed!

    (note: handle_rx_net is a work item using workqueue in question).
    sync_mm_rss+0x33/0x6f gave me a hint. I also tried reverting
    34e55232e59f7b19050267a05ff1226e5cd122a5 and the oops goes away.

    The module in question calls use_mm and later unuse_mm from a kernel
    thread. It is when this kernel thread is destroyed that the crash
    happens.

    Signed-off-by: Michael S. Tsirkin
    Andrea Arcangeli
    Reviewed-by: Rik van Riel
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael S. Tsirkin
     
  • Signed-off-by: Miao Xie
    Acked-by: David Rientjes
    Cc: Nick Piggin
    Cc: Paul Menage
    Cc: Li Zefan
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miao Xie
     
  • cpuset_mem_spread_node() returns an offline node, and causes an oops.

    This patch fixes it by initializing task->mems_allowed to
    node_states[N_HIGH_MEMORY], and updating task->mems_allowed when doing
    memory hotplug.

    Signed-off-by: Miao Xie
    Acked-by: David Rientjes
    Reported-by: Nick Piggin
    Tested-by: Nick Piggin
    Cc: Paul Menage
    Cc: Li Zefan
    Cc: Ingo Molnar
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miao Xie
     
  • commit 3f226aa1c (mempolicy: support mpol=local tmpfs mount option) added
    new mpol=local mount option. but it didn't add a documentation.

    This patch does it.

    Signed-off-by: KOSAKI Motohiro
    Cc: Ravikiran Thirumalai
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • mpol_parse_str() made lots 'err' variable related bug. Because it is ugly
    and reviewing unfriendly.

    This patch simplifies it.

    Signed-off-by: KOSAKI Motohiro
    Cc: Ravikiran Thirumalai
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • commit 71fe804b6d5 (mempolicy: use struct mempolicy pointer in
    shmem_sb_info) added mpol=local mount option. but its feature is broken
    since it was born. because such code always return 1 (i.e. mount
    failure).

    This patch fixes it.

    Signed-off-by: KOSAKI Motohiro
    Cc: Ravikiran Thirumalai
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Currently, following mount operation cause mount error.

    % mount -t tmpfs -ompol=bind:0 none /tmp

    Because commit 71fe804b6d5 (mempolicy: use struct mempolicy pointer in
    shmem_sb_info) corrupted MPOL_BIND parse code.

    This patch restore the needed one.

    Signed-off-by: KOSAKI Motohiro
    Cc: Ravikiran Thirumalai
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Fix an 'oops' when a tmpfs mount point is mounted with the mpol=default
    mempolicy.

    Upon remounting a tmpfs mount point with 'mpol=default' option, the mount
    code crashed with a null pointer dereference. The initial problem report
    was on 2.6.27, but the problem exists in mainline 2.6.34-rc as well. On
    examining the code, we see that mpol_new returns NULL if default mempolicy
    was requested. This 'NULL' mempolicy is accessed to store the node mask
    resulting in oops.

    The following patch fixes it.

    Signed-off-by: Ravikiran Thirumalai
    Signed-off-by: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: Lee Schermerhorn
    Cc: Hugh Dickins
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ravikiran G Thirumalai
     
  • Use IS_ERR() instead of comparing to NULL.

    [akpm@linux-foundation.org: preserve the error code]
    Signed-off-by: Jani Nikula
    Cc: Vegard Nossum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jani Nikula
     
  • ksm.c's write_protect_page implements a lockless means of verifying a page
    does not have any users of the page which are not accounted for via other
    kernel tracking means. It does this by removing the writable pte with TLB
    flushes, checking the page_count against the total known users, and then
    using set_pte_at_notify to make it a read-only entry.

    An unneeded mmu_notifier callout is made in the case where the known users
    does not match the page_count. In that event, we are inserting the
    identical pte and there is no need for the set_pte_at_notify, but rather
    the simpler set_pte_at suffices.

    Signed-off-by: Robin Holt
    Acked-by: Izik Eidus
    Acked-by: Andrea Arcangeli
    Acked-by: Hugh Dickins
    Cc: Chris Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     
  • Fix a fatal error in scripts/kernel-doc when a function signature uses
    __init_or_module (just ignore that string):

    Error(drivers/base/platform.c:568): cannot understand prototype: 'struct platform_device * __init_or_module platform_create_bundle(struct platform_driver *driver, int (*probe)(struct platform_device *), struct resource *res, unsigned int n_res, const void *data, size_t size) '

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap