15 Nov, 2007

32 commits

  • i386 and x86-64 registers System RAM as IORESOURCE_MEM | IORESOURCE_BUSY.

    But ia64 registers it as IORESOURCE_MEM only.
    In addition, memory hotplug code registers new memory as IORESOURCE_MEM too.

    This difference causes a failure of memory unplug of x86-64. This patch
    fixes it.

    This patch adds IORESOURCE_BUSY to avoid potential overlap mapping by PCI
    device.

    Signed-off-by: Yasunori Goto
    Signed-off-by: Badari Pulavarty
    Cc: Luck, Tony"
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yasunori Goto
     
  • We allow violation of bdi limits if there is a lot of room on the system.
    Once we hit half the total limit we start enforcing bdi limits and bdi
    ramp-up should happen. Doing it this way avoids many small writeouts on an
    otherwise idle system and should also speed up the ramp-up.

    Signed-off-by: Peter Zijlstra
    Reviewed-by: Fengguang Wu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Update the getdelays utility to become cgroupstats aware. A new -C option has
    been added. It takes in a control group path and prints out a summary of the
    states of tasks in the control group

    Signed-off-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     
  • We should unset migrate type "ISOLATE" when we successfully removed memory.
    But current code has BUG and cannot works well.

    This patch also includes bugfix? to change get_pageblock_flags to
    get_pageblock_migratetype().

    Thanks to Badari Pulavarty for finding this.

    Signed-off-by: KAMEZAWA Hiroyuki
    Acked-by: Badari Pulavarty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • We hit the BUG_ON() in mm/rmap.c:vma_address() when trying to migrate via
    mbind(MPOL_MF_MOVE) a non-anon region that spans multiple vmas. For
    anon-regions, we just fail to migrate any pages beyond the 1st vma in the
    range.

    This occurs because do_mbind() collects a list of pages to migrate by
    calling check_range(). check_range() walks the task's mm, spanning vmas as
    necessary, to collect the migratable pages into a list. Then, do_mbind()
    calls migrate_pages() passing the list of pages, a function to allocate new
    pages based on vma policy [new_vma_page()], and a pointer to the first vma
    of the range.

    For each page in the list, new_vma_page() calls page_address_in_vma()
    passing the page and the vma [first in range] to obtain the address to get
    for alloc_page_vma(). The page address is needed to get interleaving
    policy correct. If the pages in the list come from multiple vmas,
    eventually, new_page_address() will pass that page to page_address_in_vma()
    with the incorrect vma. For !PageAnon pages, this will result in a bug
    check in rmap.c:vma_address(). For anon pages, vma_address() will just
    return EFAULT and fail the migration.

    This patch modifies new_vma_page() to check the return value from
    page_address_in_vma(). If the return value is EFAULT, new_vma_page()
    searchs forward via vm_next for the vma that maps the page--i.e., that does
    not return EFAULT. This assumes that the pages in the list handed to
    migrate_pages() is in address order. This is currently case. The patch
    documents this assumption in a new comment block for new_vma_page().

    If new_vma_page() cannot locate the vma mapping the page in a forward
    search in the mm, it will pass a NULL vma to alloc_page_vma(). This will
    result in the allocation using the task policy, if any, else system default
    policy. This situation is unlikely, but the patch documents this behavior
    with a comment.

    Note, this patch results in restarting from the first vma in a multi-vma
    range each time new_vma_page() is called. If this is not acceptable, we
    can make the vma argument a pointer, both in new_vma_page() and it's caller
    unmap_and_move() so that the value held by the loop in migrate_pages()
    always passes down the last vma in which a page was found. This will
    require changes to all new_page_t functions passed to migrate_pages(). Is
    this necessary?

    For this patch to work, we can't bug check in vma_address() for pages
    outside the argument vma. This patch removes the BUG_ON(). All other
    callers [besides new_vma_page()] already check the return status.

    Tested on x86_64, 4 node NUMA platform.

    Signed-off-by: Lee Schermerhorn
    Acked-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • It appears we overlooked support for removing generic proc files
    when we added support for multiple proc super blocks. Handle
    that now.

    [akpm@linux-foundation.org: coding-style cleanups]
    Signed-off-by: Eric W. Biederman
    Acked-by: Pavel Emelyanov
    Cc: Alexey Dobriyan
    Acked-by: Sukadev Bhattiprolu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • The following is an extra entry to enable the touch screen on the new LG
    C1 EXPRESS DUAL machine.

    Cc: Russell King
    Cc: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Damian Jurd
     
  • This patch fixes the possible usage of a negative value as an array
    index spotted by the Coverity checker.

    sisfb_validate_mode() could return a negative error code and we must check for
    that prior to using its return value as an array index.

    Signed-off-by: Adrian Bunk
    Cc: Thomas Winischhofer
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • This patch fixes a memory leak spotted by the Coverity checker.

    Signed-off-by: Adrian Bunk
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • A relatively recent version of the Geode LX datasheet listed the wrong
    address for one of the MSRs that controls TFT panels, resulting in
    breakage. This patch corrects the MSR address.

    Signed-off-by: Jordan Crouse
    Cc: "Antonino A. Daplas"
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jordan Crouse
     
  • Forbid user from changing file flags on quota files. User has no bussiness
    in playing with these flags when quota is on. Furthermore there is a
    remote possibility of deadlock due to a lock inversion between quota file's
    i_mutex and transaction's start (i_mutex for quota file is locked only when
    trasaction is started in quota operations) in ext3 and ext4.

    Signed-off-by: Jan Kara
    Cc: LIOU Payphone
    Cc:
    Acked-by: Dave Kleikamp
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • Attached patch fixes two compilation problems of s1d13xxxfb.c:

    - Fixes outdated dbg() message to fix compilation error with debugging enabled.

    - Do not read kernel command line options when compiled as module.

    Signed-off-by: Stanislav Brabec
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stanislav Brabec
     
  • When I boot with the 'quiet' parameter, I see on the screen:

    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 39.036026] Initializing cgroup subsys cpuacct
    [ 39.036080] Initializing cgroup subsys debug
    [ 39.036118] Initializing cgroup subsys ns

    This patch lowers the priority of those messages, adds a "cgroup: " prefix
    to another couple of printks and kills the useless reference to the source
    file.

    Signed-off-by: Diego Calleja
    Cc: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Diego Calleja
     
  • pud_clear wasn't setting the _PAGE_NEWPAGE bit, fooling tlb_flush into
    thinking that this area of the address space was up-to-date and not unmapping
    whatever was covered by the pud.

    This manifested itself as ldconfig on x86_64 complaining about the first
    library it looked at not being a valid ELF file. A config file is mapped at
    0x4000000, as the only thing mapped under its pud, and unmapped. The
    unmapping caused a pud_clear, which, due to this bug, didn't actually unmap
    the config file data on the host. The first library is then mapped at the
    same location, but is not actually mapped on the host because accesses to it
    cause no page faults. As a result, ldconfig sees the old config file data.

    [akpm@linux-foundation.org: coding-style cleanups]
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Stupid bug - we need to compare the return value of recvmsg to the value of
    iov_len, not its size. This caused port_helper processes not to be killed on
    shutdown on x86_64 because the pids weren't being passed out properly.

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

    Jeff Dike
     
  • Instruction pointer returned by profile_pc() can be a random value. This
    break the assumption than we can safely set struct op_sample.eip field to a
    magic value to signal to the per-cpu buffer reader side special event like
    task switch ending up in a segfault in get_task_mm() when profile_pc()
    return ~0UL. Fixed by sanitizing the sampled eip and reject/log invalid
    eip.

    Problem reported by Sami Farin, patch tested by him.

    Signed-off-by: Philippe Elie
    Tested-by: Sami Farin
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Philippe Elie
     
  • Variables that are only used in #ifdef CONFIG_X86 should also only be
    declared there.

    Signed-off-by: Frank Lichtenheld
    Cc: Michal Januszewski
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frank Lichtenheld
     
  • chipsfb uses PCI interfaces and should depend on PCI.

    CC drivers/video/chipsfb.o
    drivers/video/chipsfb.c: In function 'chipsfb_pci_init':
    drivers/video/chipsfb.c:378: error: implicit declaration of function 'pci_request_region'
    drivers/video/chipsfb.c:435: error: implicit declaration of function 'pci_release_region'
    make[2]: *** [drivers/video/chipsfb.o] Error 1
    make[1]: *** [drivers/video] Error 2
    make: *** [drivers] Error 2

    !CONFIG_PCI causes the build to fail.

    Signed-off-by: Randy Dunlap
    Cc: Kamalesh Babulal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • The max_user_freq member is not really meant for RTC drivers to modify, so
    update the rtc documentation so drivers writers know what is expected of
    them when handling periodic events.

    Signed-off-by: Mike Frysinger
    Acked-by: Alessandro Zummo
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • symlinks to directories in the non-O= case were lacking -n, which meant
    that, when the link already existed, a new link pointing at itself was
    created in the target directory.

    Signed-off-by: Jeff Dike
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • mac80211 has a reference to __bitmap_empty() via bitmap_empty(). In
    lib/bitmap.c this is flagged with an EXPORT_SYMBOL(), but this is
    ultimately ineffective due to bitmap.o being linked in lib-y, resulting in:

    ERROR: "__bitmap_empty" [net/mac80211/mac80211.ko] undefined!

    Moving bitmap.o to obj-y fixes this up.

    Signed-off-by: Paul Mundt
    Cc: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mundt
     
  • When PCMCIA_DEBUG is set, cm40x0_cs.c and cm4000_cs.c don't build because the
    definition of reader_to_dev uses a non-existent handle field of the struct
    pcmcia_device in the call to handle_to_dev. As handle_to_dev works on struct
    pcmcia_device, the fix is quite trivial.

    Signed-off-by: Pascal Terjan
    Cc: Harald Welte
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pascal Terjan
     
  • Original patch assumed args->nlen < CTL_MAXNAME, but it can be false.

    Signed-off-by: Tetsuo Handa
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tetsuo Handa
     
  • This should resolve these bug reports of the modem not working:
    http://bugzilla.kernel.org/show_bug.cgi?id=4355
    http://www.linuxquestions.org/questions/linux-newbie-8/connect-script-failed-on-ppp-go-123975/

    I don't have hardware to test this, but the initial report in the kernel
    bugzilla indicates that this change fixed the problem.

    Signed-off-by: Bjorn Helgaas
    Cc: Dmitry Vavilov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • This patch fixes wrong array index in allocation failure handling.

    Cc: Pekka Enberg
    Acked-by: Christoph Lameter
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • The size argument passed to memset is wrong.

    Signed-off-by Li Zefan
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • The size passed to memset is wrong.

    Signed-off-by Li Zefan
    Acked-by: Geert Uytterhoeven
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • Export the NVRAM on DS1307 and DS1338 chips, like several of the
    other drivers do for such combination RTC-and-NVRAM chips.

    Signed-off-by: David Brownell
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Several of the RTC drivers are exporting binary "nvram" files in sysfs. Such
    NVRAM (or on many systems, EEPROM) data is often initialized during system
    manufacture to hold data about identity (serial numbers, Ethernet addresses,
    etc), configuration, calibration, and so forth.

    This patch improves integrity and security of those files:

    - Correctly initializes the size in one of the two cases where
    that was not yet being done.

    - Improves system security/integrity by making this state not
    be world-writable by default.

    Letting arbitrary userspace code mangle such state by default is at least Not
    A Good Thing; and it could sometimes be worse, depending on the particular
    data that might be corrupted. (I disregard the paranoiac "don't let anyone
    read it either" approach. Anyone storing passwords in such memory doesn't
    really care about security.)

    Signed-off-by: David Brownell
    Acked-by: Atsushi Nemoto
    Cc: Torsten Ertbjerg Rasmussen
    Cc: Mark Zhan
    Cc: Thomas Hommel
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • The RTC "hctosys" mechanism expects that RTC clock will use UTC, not local
    time (e.g. PST). Say so in Kconfig and in the kernel message.

    (Strictly speaking, the RTC clock should be tracking the POSIX epoch. That's
    not worth going into here. Goofing timezones means clocks are wrong by many
    hours; the POSIX-v-UTC differences just cost seconds.)

    Signed-off-by: David Brownell
    Acked-by: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • When backlight_device_register() fails, return after undo initialization, do
    not try to use pointer that just was reset to NULL

    This fixes this oops:

    [ 1595.177672] [] show_trace_log_lvl+0x1a/0x30
    [ 1595.177706] [] show_trace+0x12/0x20
    [ 1595.177718] [] dump_stack+0x15/0x20
    [ 1595.177728] [] kobject_shadow_add+0x125/0x1c0
    [ 1595.177754] [] kobject_add+0xa/0x10
    [ 1595.177764] [] device_add+0x97/0x5d0
    [ 1595.177776] [] device_register+0x12/0x20
    [ 1595.177786] [] backlight_device_register+0x9f/0x110 [backlight]
    [ 1595.177814] [] toshiba_acpi_init+0x117/0x15e [toshiba_acpi]
    [ 1595.177834] [] sys_init_module+0xfd/0x14e0
    [ 1595.177871] [] sysenter_past_esp+0x5f/0x99
    [ 1595.177883] =======================
    [ 1595.177890] Could not register toshiba backlight device
    [ 1595.177985] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000004
    ...
    [ 1595.394097] EIP: 0060:[] Not tainted VLI
    [ 1595.394101] EFLAGS: 00010282 (2.6.23-rc9-1avb #24)
    [ 1595.480081] EIP is at toshiba_acpi_init+0x143/0x15e [toshiba_acpi]

    Signed-off-by: Andrey Borzenkov
    Cc: John Belmonte
    Acked-by: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Borzenkov
     
  • page->index should be cast to loff_t instead of off_t.

    Signed-off-by: Michael Halcrow
    Reported-by: Eric Sandeen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Halcrow
     

14 Nov, 2007

8 commits