03 Apr, 2009

29 commits

  • Now that task_detached() is exported, change tracehook_notify_death() to
    use this helper, nobody else checks ->exit_signal == -1 by hand.

    Signed-off-by: Oleg Nesterov
    Cc: "Eric W. Biederman"
    Cc: "Metzger, Markus T"
    Acked-by: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • By discussion with Roland.

    - Rename ptrace_exit() to exit_ptrace(), and change it to do all the
    necessary work with ->ptraced list by its own.

    - Move this code from exit.c to ptrace.c

    - Update the comment in ptrace_detach() to explain the rechecking of
    the child->ptrace.

    Signed-off-by: Oleg Nesterov
    Cc: "Eric W. Biederman"
    Cc: "Metzger, Markus T"
    Cc: Roland McGrath
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • When ptrace_detach() takes tasklist, the tracee can be SIGKILL'ed. If it
    has already passed exit_notify() we can leak a zombie, because a) ptracing
    disables the auto-reaping logic, and b) ->real_parent was not notified
    about the child's death.

    ptrace_detach() should follow the ptrace_exit's logic, change the code
    accordingly.

    Signed-off-by: Oleg Nesterov
    Cc: Jerome Marchand
    Cc: Roland McGrath
    Tested-by: Denys Vlasenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Container-init must behave like global-init to processes within the
    container and hence it must be immune to unhandled fatal signals from
    within the container (i.e SIG_DFL signals that terminate the process).

    But the same container-init must behave like a normal process to processes
    in ancestor namespaces and so if it receives the same fatal signal from a
    process in ancestor namespace, the signal must be processed.

    Implementing these semantics requires that send_signal() determine pid
    namespace of the sender but since signals can originate from workqueues/
    interrupt-handlers, determining pid namespace of sender may not always be
    possible or safe.

    This patchset implements the design/simplified semantics suggested by
    Oleg Nesterov. The simplified semantics for container-init are:

    - container-init must never be terminated by a signal from a
    descendant process.

    - container-init must never be immune to SIGKILL from an ancestor
    namespace (so a process in parent namespace must always be able
    to terminate a descendant container).

    - container-init may be immune to unhandled fatal signals (like
    SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP
    are the only reliable signals to a container-init from ancestor
    namespace.

    This patch:

    Based on an earlier patch submitted by Oleg Nesterov and comments from
    Roland McGrath (http://lkml.org/lkml/2008/11/19/258).

    The handler parameter is currently unused in the tracehook functions.
    Besides, the tracehook functions are called with siglock held, so the
    functions can check the handler if they later need to.

    Removing the parameter simiplifies changes to sig_ignored() in a follow-on
    patch.

    Signed-off-by: Sukadev Bhattiprolu
    Acked-by: Roland McGrath
    Signed-off-by: Oleg Nesterov
    Cc: "Eric W. Biederman"
    Cc: Daniel Lezcano
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • The cpuset_zone_allowed() variants are actually only a function of the
    zone's node.

    Cc: Paul Menage
    Acked-by: Christoph Lameter
    Cc: Randy Dunlap
    Signed-off-by: David Rientjes
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     
  • We need to pass some data to test_task() or process_task() in some cases.
    Will be used later.

    Signed-off-by: Li Zefan
    Cc: KAMEZAWA Hiroyuki
    Cc: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • Try to use CSS ID for records in swap_cgroup. By this, on 64bit machine,
    size of swap_cgroup goes down to 2 bytes from 8bytes.

    This means, when 2GB of swap is equipped, (assume the page size is 4096bytes)

    From size of swap_cgroup = 2G/4k * 8 = 4Mbytes.
    To size of swap_cgroup = 2G/4k * 2 = 1Mbytes.

    Reduction is large. Of course, there are trade-offs. This CSS ID will
    add overhead to swap-in/swap-out/swap-free.

    But in general,
    - swap is a resource which the user tend to avoid use.
    - If swap is never used, swap_cgroup area is not used.
    - Reading traditional manuals, size of swap should be proportional to
    size of memory. Memory size of machine is increasing now.

    I think reducing size of swap_cgroup makes sense.

    Note:
    - ID->CSS lookup routine has no locks, it's under RCU-Read-Side.
    - memcg can be obsolete at rmdir() but not freed while refcnt from
    swap_cgroup is available.

    Changelog v4->v5:
    - reworked on to memcg-charge-swapcache-to-proper-memcg.patch
    Changlog ->v4:
    - fixed not configured case.
    - deleted unnecessary comments.
    - fixed NULL pointer bug.
    - fixed message in dmesg.

    [nishimura@mxp.nes.nec.co.jp: css_tryget can be called twice in !PageCgroupUsed case]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Li Zefan
    Cc: Balbir Singh
    Cc: Paul Menage
    Cc: Hugh Dickins
    Signed-off-by: Daisuke Nishimura
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • commit 4f98a2fee8acdb4ac84545df98cccecfd130f8db (vmscan: split LRU lists
    into anon & file sets) removed mem_cgroup_reclaim_imbalance(), but there
    are some leftovers in memcontrol.h.

    Signed-off-by: KOSAKI Motohiro
    Cc: KAMEZAWA Hiroyuki
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Currently, mem_cgroup_calc_mapped_ratio() is unused at all. it can be
    removed and KAMEZAWA-san suggested it.

    Signed-off-by: KOSAKI Motohiro
    Cc: KAMEZAWA Hiroyuki
    Acked-by: Balbir Singh
    Cc: Johannes Weiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Add RSS and swap to OOM output from memcg

    Display memcg values like failcnt, usage and limit when an OOM occurs due
    to memcg.

    Thanks to Johannes Weiner, Li Zefan, David Rientjes, Kamezawa Hiroyuki,
    Daisuke Nishimura and KOSAKI Motohiro for review.

    Sample output
    -------------

    Task in /a/x killed as a result of limit of /a
    memory: usage 1048576kB, limit 1048576kB, failcnt 4183
    memory+swap: usage 1400964kB, limit 9007199254740991kB, failcnt 0

    [akpm@linux-foundation.org: compilation fix]
    [akpm@linux-foundation.org: fix kerneldoc and whitespace]
    [akpm@linux-foundation.org: add printk facility level]
    Signed-off-by: Balbir Singh
    Cc: KAMEZAWA Hiroyuki
    Cc: Daisuke Nishimura
    Cc: Li Zefan
    Cc: Paul Menage
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     
  • This patch tries to fix OOM Killer problems caused by hierarchy.
    Now, memcg itself has OOM KILL function (in oom_kill.c) and tries to
    kill a task in memcg.

    But, when hierarchy is used, it's broken and correct task cannot
    be killed. For example, in following cgroup

    /groupA/ hierarchy=1, limit=1G,
    01 nolimit
    02 nolimit
    All tasks' memory usage under /groupA, /groupA/01, groupA/02 is limited to
    groupA's 1Gbytes but OOM Killer just kills tasks in groupA.

    This patch provides makes the bad process be selected from all tasks
    under hierarchy. BTW, currently, oom_jiffies is updated against groupA
    in above case. oom_jiffies of tree should be updated.

    To see how oom_jiffies is used, please check mem_cgroup_oom_called()
    callers.

    [akpm@linux-foundation.org: build fix]
    [akpm@linux-foundation.org: const fix]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Paul Menage
    Cc: Li Zefan
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • We have some read-only files and write-only files, but currently they are
    all set to 0644, which is counter-intuitive and cause trouble for some
    cgroup tools like libcgroup.

    This patch adds 'mode' to struct cftype to allow cgroup subsys to set it's
    own files' file mode, and for the most cases cft->mode can be default to 0
    and cgroup will figure out proper mode.

    Acked-by: Paul Menage
    Reviewed-by: KAMEZAWA Hiroyuki
    Signed-off-by: Li Zefan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • In following situation, with memory subsystem,

    /groupA use_hierarchy==1
    /01 some tasks
    /02 some tasks
    /03 some tasks
    /04 empty

    When tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim
    is triggered and the kernel walks tree under groupA. In this case,
    rmdir /groupA/04 fails with -EBUSY frequently because of temporal
    refcnt from the kernel.

    In general. cgroup can be rmdir'd if there are no children groups and
    no tasks. Frequent fails of rmdir() is not useful to users.
    (And the reason for -EBUSY is unknown to users.....in most cases)

    This patch tries to modify above behavior, by
    - retries if css_refcnt is got by someone.
    - add "return value" to pre_destroy() and allows subsystem to
    say "we're really busy!"

    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Paul Menage
    Cc: Li Zefan
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Patch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.

    This patch attaches unique ID to each css and provides following.

    - css_lookup(subsys, id)
    returns pointer to struct cgroup_subysys_state of id.
    - css_get_next(subsys, id, rootid, depth, foundid)
    returns the next css under "root" by scanning

    When cgroup_subsys->use_id is set, an id for css is maintained.

    The cgroup framework only parepares
    - css_id of root css for subsys
    - id is automatically attached at creation of css.
    - id is *not* freed automatically. Because the cgroup framework
    don't know lifetime of cgroup_subsys_state.
    free_css_id() function is provided. This must be called by subsys.

    There are several reasons to develop this.
    - Saving space .... For example, memcg's swap_cgroup is array of
    pointers to cgroup. But it is not necessary to be very fast.
    By replacing pointers(8bytes per ent) to ID (2byes per ent), we can
    reduce much amount of memory usage.

    - Scanning without lock.
    CSS_ID provides "scan id under this ROOT" function. By this, scanning
    css under root can be written without locks.
    ex)
    do {
    rcu_read_lock();
    next = cgroup_get_next(subsys, id, root, &found);
    /* check sanity of next here */
    css_tryget();
    rcu_read_unlock();
    id = found + 1
    } while(...)

    Characteristics:
    - Each css has unique ID under subsys.
    - Lifetime of ID is controlled by subsys.
    - css ID contains "ID" and "Depth in hierarchy" and stack of hierarchy
    - Allowed ID is 1-65535, ID 0 is UNUSED ID.

    Design Choices:
    - scan-by-ID v.s. scan-by-tree-walk.
    As /proc's pid scan does, scan-by-ID is robust when scanning is done
    by following kind of routine.
    scan -> rest a while(release a lock) -> conitunue from interrupted
    memcg's hierarchical reclaim does this.

    - When subsys->use_id is set, # of css in the system is limited to
    65535.

    [bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]
    Signed-off-by: KAMEZAWA Hiroyuki
    Acked-by: Paul Menage
    Cc: Li Zefan
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Signed-off-by: Bharata B Rao
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • The ns_proxy cgroup allows moving processes to child cgroups only one
    level deep at a time. This commit relaxes this restriction and makes it
    possible to attach tasks directly to grandchild cgroups, e.g.:

    ($pid is in the root cgroup)
    echo $pid > /cgroup/CG1/CG2/tasks

    Previously this operation would fail with -EPERM and would have to be
    performed as two steps:
    echo $pid > /cgroup/CG1/tasks
    echo $pid > /cgroup/CG1/CG2/tasks

    Also, the target cgroup no longer needs to be empty to move a task there.

    Signed-off-by: Grzegorz Nosek
    Acked-by: Serge Hallyn
    Reviewed-by: Li Zefan
    Cc: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Grzegorz Nosek
     
  • Fix the style of some multi-line comments in cgroup.h to match
    Documentation/CodingStyle

    Signed-off-by: Paul Menage
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Menage
     
  • Reformat ext3/ioctl.c to make it look more like ext4/ioctl.c and remove
    the BKL around ext3_ioctl().

    Signed-off-by: Cyrus Massoumi
    Cc:
    Acked-by: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrus Massoumi
     
  • Change spi-gpio so that it is possible to drive SPI communications over
    GPIO without the need for a chipselect signal.

    This is useful in very small setups where there's only one slave device
    on the bus.

    This patch does not affect existing setups.

    I use this for a tiny communication channel between an embedded device and
    a microcontroller. There are not enough GPIOs available for chipselect
    and it's not needed anyway in this case.

    Signed-off-by: Michael Buesch
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Buesch
     
  • Allow GPIOs in GPIOLIB chips to be named. This name is then used when the
    GPIO is exported to sysfs, although it could be used elsewhere if deemed
    useful.

    Signed-off-by: Daniel Silverstone
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Silverstone
     
  • The v3020 RTC can be connected to GPIOs as well as to memory-like
    interface. Add ability to use GPIO bit-bang for v3020 read-write access.

    [akpm@linux-foundation.org: fix off-by-one in error path]
    Signed-off-by: Mike Rapoport
    Acked-by: Alessandro Zummo
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • First argument unused since 2.3.11.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Alexey Dobriyan
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • - Define new setup() hook to export the accessor
    - Implement accessor methods

    Moves some error checking out of the sysfs interface code into the layer
    below it, which is now shared by both sysfs and memory access code.

    Signed-off-by: David Brownell
    Signed-off-by: Kevin Hilman
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • In the case of at24, the platform code registers a 'setup' callback with
    the at24_platform_data. When the at24 driver detects an EEPROM, it fills
    out the read and write functions of the memory_accessor and calls the
    setup callback passing the memory_accessor struct. The platform code can
    then use the read/write functions in the memory_accessor struct for
    reading and writing the EEPROM.

    Signed-off-by: Kevin Hilman
    Cc: David Brownell
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kevin Hilman
     
  • Add an interface by which other kernel code can read/write persistent
    memory such as I2C or SPI EEPROMs, or devices which provide NVRAM. Use
    cases include storage of board-specific configuration data like Ethernet
    addresses and sensor calibrations.

    Original idea, review and improvement suggestions by David Brownell.

    Acked-by: David Brownell
    Signed-off-by: Kevin Hilman
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kevin Hilman
     
  • It is a fairly common operation to have a pointer to a work and to need a
    pointer to the delayed work it is contained in. In particular, all
    delayed works which want to rearm themselves will have to do that. So it
    would seem fair to offer a helper function for this operation.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Jean Delvare
    Acked-by: Ingo Molnar
    Cc: "David S. Miller"
    Cc: Herbert Xu
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: Greg KH
    Cc: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • A new "address_space flag"--AS_MM_ALL_LOCKS--was defined to use the next
    available AS flag while the Unevictable LRU was under development. The
    Unevictable LRU was using the same flag and "no one" noticed. Current
    mainline, since 2.6.28, has same value for two symbolic flag names.

    So, define a unique flag value for AS_UNEVICTABLE--up close to the other
    flags, [at the cost of an additional #ifdef] so we'll notice next time.
    Note that #ifdef is not actually required, if we don't mind having the
    unused flag value defined.

    Replace #defines with an enum.

    Signed-off-by: Lee Schermerhorn
    Cc: [2.6.28.x, 2.6.29.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lee Schermerhorn
     
  • Include fiemap.h in header-y; it defines the interface for the
    FS_IOC_FIEMAP file mapping ioctl.

    Signed-off-by: Eric Sandeen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sandeen
     
  • Fix a number of issues with the per-MM VMA patch:

    (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on
    a NOMMU system with more than 2G pages. Makes no difference on a 32-bit
    system.

    (2) Report vma->vm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,
    lest it overflow.

    (3) Move the allocation of the vm_area_struct slab back for fork.c.

    (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.

    (5) Use BUG_ON() rather than if () BUG().

    (6) Make the default validate_nommu_regions() a static inline rather than a
    #define.

    (7) Make free_page_series()'s objection to pages with a refcount != 1 more
    informative.

    (8) Adjust the __put_nommu_region() banner comment to indicate that the
    semaphore must be held for writing.

    (9) Limit the number of warnings about munmaps of non-mmapped regions.

    Reported-by: Andrew Morton
    Signed-off-by: David Howells
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • This fixes a build failure with generic debug pagealloc:

    mm/debug-pagealloc.c: In function 'set_page_poison':
    mm/debug-pagealloc.c:8: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'clear_page_poison':
    mm/debug-pagealloc.c:13: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'page_poison':
    mm/debug-pagealloc.c:18: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: At top level:
    mm/debug-pagealloc.c:120: error: redefinition of 'kernel_map_pages'
    include/linux/mm.h:1278: error: previous definition of 'kernel_map_pages' was here
    mm/debug-pagealloc.c: In function 'kernel_map_pages':
    mm/debug-pagealloc.c:122: error: 'debug_pagealloc_enabled' undeclared (first use in this function)

    by fixing

    - debug_flags should be in struct page
    - define DEBUG_PAGEALLOC config option for all architectures

    Signed-off-by: Akinobu Mita
    Reported-by: Alexander Beregalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

02 Apr, 2009

5 commits

  • * 'for-linus' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (58 commits)
    SUNRPC: Ensure IPV6_V6ONLY is set on the socket before binding to a port
    NSM: Fix unaligned accesses in nsm_init_private()
    NFS: Simplify logic to compare socket addresses in client.c
    NFS: Start PF_INET6 callback listener only if IPv6 support is available
    lockd: Start PF_INET6 listener only if IPv6 support is available
    SUNRPC: Remove CONFIG_SUNRPC_REGISTER_V4
    SUNRPC: rpcb_register() should handle errors silently
    SUNRPC: Simplify kernel RPC service registration
    SUNRPC: Simplify svc_unregister()
    SUNRPC: Allow callers to pass rpcb_v4_register a NULL address
    SUNRPC: rpcbind actually interprets r_owner string
    SUNRPC: Clean up address type casts in rpcb_v4_register()
    SUNRPC: Don't return EPROTONOSUPPORT in svc_register()'s helpers
    SUNRPC: Use IPv4 loopback for registering AF_INET6 kernel RPC services
    SUNRPC: Set IPV6ONLY flag on PF_INET6 RPC listener sockets
    NFS: Revert creation of IPv6 listeners for lockd and NFSv4 callbacks
    SUNRPC: Remove @family argument from svc_create() and svc_create_pooled()
    SUNRPC: Change svc_create_xprt() to take a @family argument
    SUNRPC: svc_setup_socket() gets protocol family from socket
    SUNRPC: Pass a family argument to svc_register()
    ...

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (33 commits)
    ext4: Regularize mount options
    ext4: fix locking typo in mballoc which could cause soft lockup hangs
    ext4: fix typo which causes a memory leak on error path
    jbd2: Update locking coments
    ext4: Rename pa_linear to pa_type
    ext4: add checks of block references for non-extent inodes
    ext4: Check for an valid i_mode when reading the inode from disk
    ext4: Use WRITE_SYNC for commits which are caused by fsync()
    ext4: Add auto_da_alloc mount option
    ext4: Use struct flex_groups to calculate get_orlov_stats()
    ext4: Use atomic_t's in struct flex_groups
    ext4: remove /proc tuning knobs
    ext4: Add sysfs support
    ext4: Track lifetime disk writes
    ext4: Fix discard of inode prealloc space with delayed allocation.
    ext4: Automatically allocate delay allocated blocks on rename
    ext4: Automatically allocate delay allocated blocks on close
    ext4: add EXT4_IOC_ALLOC_DA_BLKS ioctl
    ext4: Simplify delalloc code by removing mpage_da_writepages()
    ext4: Save stack space by removing fake buffer heads
    ...

    Linus Torvalds
     
  • Trond Myklebust
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (59 commits)
    ide-floppy: do not complete rq's prematurely
    ide: be able to build pmac driver without IDE built-in
    ide-pmac: IDE cable detection on Apple PowerBook
    ide: inline SELECT_DRIVE()
    ide: turn selectproc() method into dev_select() method (take 5)
    MAINTAINERS: move old ide-{floppy,tape} entries to CREDITS (take 2)
    ide: move data register access out of tf_{read|load}() methods (take 2)
    ide: call {in|out}put_data() methods from tf_{read|load}() methods (take 2)
    ide-io-std: shorten ide_{in|out}put_data()
    ide: rename IDE_TFLAG_IN_[HOB_]FEATURE
    ide: turn set_irq() method into write_devctl() method
    ide: use ATA_HOB
    ide-disk: use ATA_ERR
    ide: add support for CFA specified transfer modes (take 3)
    ide-iops: only clear DMA words on setting DMA mode
    ide: identify data word 53 bit 1 doesn't cover words 62 and 63 (take 3)
    au1xxx-ide: auide_{in|out}sw() should be static
    ide-floppy: use ide_pio_bytes()
    ide-{floppy,tape}: fix padding for PIO transfers
    ide: remove CONFIG_BLK_DEV_IDEDOUBLER config option
    ...

    Linus Torvalds
     
  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (88 commits)
    PCI: fix HT MSI mapping fix
    PCI: don't enable too much HT MSI mapping
    x86/PCI: make pci=lastbus=255 work when acpi is on
    PCI: save and restore PCIe 2.0 registers
    PCI: update fakephp for bus_id removal
    PCI: fix kernel oops on bridge removal
    PCI: fix conflict between SR-IOV and config space sizing
    powerpc/PCI: include pci.h in powerpc MSI implementation
    PCI Hotplug: schedule fakephp for feature removal
    PCI Hotplug: rename legacy_fakephp to fakephp
    PCI Hotplug: restore fakephp interface with complete reimplementation
    PCI: Introduce /sys/bus/pci/devices/.../rescan
    PCI: Introduce /sys/bus/pci/devices/.../remove
    PCI: Introduce /sys/bus/pci/rescan
    PCI: Introduce pci_rescan_bus()
    PCI: do not enable bridges more than once
    PCI: do not initialize bridges more than once
    PCI: always scan child buses
    PCI: pci_scan_slot() returns newly found devices
    PCI: don't scan existing devices
    ...

    Fix trivial append-only conflict in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     

01 Apr, 2009

6 commits

  • The s1d13xxx chip provides two values of identification value: the
    Production id (e.g 13506/13505/13806..) and a revision number 0,1,2,3).
    Together these can help us to differentiate between similiar setups.

    This patch adds the proper way of grabbing both those values and save them
    for future reference (in order to decide what functions a card supports,
    e.g acceleration).

    We also move away from the concept of all s1d13xxx = s1d13806 when we
    really support alot more.

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: simplify s1d13xxxfb_probe()]
    Signed-off-by: Kristoffer Ericson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kristoffer Ericson
     
  • With a postfix decrement t reaches -1 on timeout which results in a
    return of 0.

    Signed-off-by: Roel Kluin
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • Before:

    text data bss dec hex filename
    3648 2910 32 6590 19be drivers/video/backlight/backlight.o
    3226 2812 32 6070 17b6 drivers/video/backlight/lcd.o
    30990 16688 8480 56158 db5e drivers/video/console/fbcon.o
    15488 8400 24 23912 5d68 drivers/video/fbmem.o

    After:

    text data bss dec hex filename
    3537 2870 32 6439 1927 drivers/video/backlight/backlight.o
    3131 2772 32 5935 172f drivers/video/backlight/lcd.o
    30876 16648 8480 56004 dac4 drivers/video/console/fbcon.o
    15506 8400 24 23930 5d7a drivers/video/fbmem.o

    Cc: Andrea Righi
    Cc: Geert Uytterhoeven
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Add an accelerator constant so almost all Cirrus are recognized as
    accelerators by the fbset command.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Fix 8bpp mode by adding handling of the Laguna chipsets to various places
    and stop trashing a HDR register which probably does not exist on the
    Laguna.

    Fix compilation warnings about uninitialized variables also.

    Finally, all 8bpp, 16bpp and 32bpp modes work on the Laguna chipset.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Add additional overflow register setting for Laguna chips.

    Also, simplify some code in the cirrusfb_pan_display() and
    cirrusfb_blank().

    Signed-off-by: Krzysztof Helt
    Cc: Geert Uytterhoeven

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

    Krzysztof Helt