Skip to content
  1. Mar 31, 2009
    • Rusty Russell's avatar
      module: use strstarts() · 49502677
      Rusty Russell authored
      
      
      Impact: minor cleanup.
      
      I'm not going to neaten anyone else's code, but I'm happy to clean up
      my own.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      49502677
    • Rusty Russell's avatar
      strstarts: helper function for !strncmp(str, prefix, strlen(prefix)) · 66f92cf9
      Rusty Russell authored
      
      
      Impact: minor new API
      
      ksplice added a "starts_with" function, which seems like a common need.
      When people open-code it they seem to use fixed numbers rather than strlen,
      so it's quite a readability win (also, strncmp() almost always wants != 0
      on it).
      
      So here's strstarts().
      
      Cc: Anders Kaseorg <andersk@mit.edu>
      Cc: Jeff Arnold <jbarnold@mit.edu>
      Cc: Tim Abbott <tabbott@mit.edu>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      66f92cf9
    • Rusty Russell's avatar
      arm: allow usage of string functions in linux/string.h · aa0d3bb7
      Rusty Russell authored
      
      
      In introducing a trivial "strstarts()" function in linux/string.h, we
      hit:
      
      	arch/arm/boot/compressed/misc.o: In function `strstarts':
      	misc.c:(.text+0x368): undefined reference to `strlen'
      	misc.c:(.text+0x378): undefined reference to `strncmp'
      
      This is because of "CFLAGS_misc.o := -Dstatic=" in the Makefile.
      "static inline strstarts(...)" becomes non-inline, and refers to the
      other string ops.
      
      The simplest workaround is to include asm/string.h.  This makes sense
      anyway, since lib/string.c won't be linked against this so we can't
      use those functions anyway.
      
      Compile tested here.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      aa0d3bb7
    • Rusty Russell's avatar
      module: don't use stop_machine on module load · e91defa2
      Rusty Russell authored
      
      
      Kay Sievers <kay.sievers@vrfy.org> discovered that boot times are slowed
      by about half a second because all the stop_machine_create() calls,
      and he only probes about 40 modules (I have 125 loaded on this laptop).
      
      We only do stop_machine_create() so we can unlink the module if
      something goes wrong, but it's overkill (and buggy anyway: if
      stop_machine_create() fails we still call stop_machine_destroy()).
      
      Since we are only protecting against kallsyms (esp. oops) walking the
      list, synchronize_sched() is sufficient (synchronize_rcu() is probably
      sufficient, but we're not in a hurry).
      
      Kay says of this patch:
      	... no module takes more than 40 millisecs to link now, most of
      	them are between 3 and 8 millisecs.
      
      	That looks very different to the numbers without this patch
      	and the otherwise same setup, where we get heavy noise in the
      	traces and many delays of up to 200 millisecs until linking,
      	most of them taking 30+ millisecs.
      
      Tested-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      e91defa2
    • Arjan van de Ven's avatar
      module: create a request_module_nowait() · acae0515
      Arjan van de Ven authored
      
      
      There seems to be a common pattern in the kernel where drivers want to
      call request_module() from inside a module_init() function. Currently
      this would deadlock.
      
      As a result, several drivers go through hoops like scheduling things via
      kevent, or creating custom work queues (because kevent can deadlock on them).
      
      This patch changes this to use a request_module_nowait() function macro instead,
      which just fires the modprobe off but doesn't wait for it, and thus avoids the
      original deadlock entirely.
      
      On my laptop this already results in one less kernel thread running..
      
      (Includes Jiri's patch to use enum umh_wait)
      
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (bool-ified)
      Cc: Jiri Slaby <jirislaby@gmail.com>
      acae0515
    • Rusty Russell's avatar
      module: include other structures in module version check · 8c8ef42a
      Rusty Russell authored
      
      
      With CONFIG_MODVERSIONS, we version 'struct module' using a dummy
      export, but other things matter too:
      
      1) 'struct modversion_info' determines the layout of the __versions section,
      2) 'struct kernel_param' determines the layout of the __params section,
      3) 'struct kernel_symbol' determines __ksymtab*.
      4) 'struct marker' determines __markers.
      5) 'struct tracepoint' determines __tracepoints.
      
      So we rename 'struct_module' to 'module_layout' and include these in
      the signature.  Now it's general we can add others later on without
      confusion.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      8c8ef42a
    • Rusty Russell's avatar
      module: remove the SHF_ALLOC flag on the __versions section. · 9cb610d8
      Rusty Russell authored
      
      
      Impact: reduce kernel memory usage
      
      This patch just takes off the SHF_ALLOC flag on __versions so we don't
      keep them around after module load.
      
      This saves about 7% of module memory if CONFIG_MODVERSIONS=y.
      
      Cc: Shawn Bohrer <shawn.bohrer@gmail.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      9cb610d8
    • Rusty Russell's avatar
      module: clarify the force-loading taint message. · c6e665c8
      Rusty Russell authored
      
      
      Impact: Message cleanup
      
      Two of three callers of try_to_force_load() are not because of a
      missing version, so change the messages:
      
      Old:
      	<modname>: no version for "magic" found: kernel tainted.
      New:
      	<modname>: bad vermagic: kernel tainted.
      
      Old:
      	<modname>: no version for "nocrc" found: kernel tainted.
      New:
      	<modname>: no versions for exported symbols: kernel tainted.
      
      Old:
      	<modname>: no version for "<symname>" found: kernel tainted.
      New:
      	<modname>: <symname>: kernel tainted.
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c6e665c8
    • Tim Abbott's avatar
      module: Export symbols needed for Ksplice · c6b37801
      Tim Abbott authored
      
      
      Impact: Expose some module.c symbols
      
      Ksplice uses several functions from module.c in order to resolve
      symbols and implement dependency handling.  Calling these functions
      requires holding module_mutex, so it is exported.
      
      (This is just the module part of a bigger add-exports patch from Tim).
      
      Cc: Anders Kaseorg <andersk@mit.edu>
      Cc: Jeff Arnold <jbarnold@mit.edu>
      Signed-off-by: default avatarTim Abbott <tabbott@mit.edu>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      c6b37801
    • Anders Kaseorg's avatar
      Ksplice: Add functions for walking kallsyms symbols · 75a66614
      Anders Kaseorg authored
      
      
      Impact: New API
      
      kallsyms_lookup_name only returns the first match that it finds.  Ksplice
      needs information about all symbols with a given name in order to correctly
      resolve local symbols.
      
      kallsyms_on_each_symbol provides a generic mechanism for iterating over the
      kallsyms table.
      
      Cc: Jeff Arnold <jbarnold@mit.edu>
      Cc: Tim Abbott <tabbott@mit.edu>
      Signed-off-by: default avatarAnders Kaseorg <andersk@mit.edu>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      75a66614
    • Rusty Russell's avatar
      module: remove module_text_address() · a6e6abd5
      Rusty Russell authored
      
      
      Impact: Replace and remove risky (non-EXPORTed) API
      
      module_text_address() returns a pointer to the module, which given locking
      improvements in module.c, is useless except to test for NULL:
      
      1) If the module can't go away, use __module_text_address.
      2) Otherwise, just use is_module_text_address().
      
      Cc: linux-mtd@lists.infradead.org
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      a6e6abd5
    • Rusty Russell's avatar
      module: __module_address · e610499e
      Rusty Russell authored
      
      
      Impact: New API, cleanup
      
      ksplice wants to know the bounds of a module, not just the module text.
      
      It makes sense to have __module_address.  We then implement
      is_module_address and __module_text_address in terms of this (and
      change is_module_text_address() to bool while we're at it).
      
      Also, add proper kerneldoc for them all.
      
      Cc: Anders Kaseorg <andersk@mit.edu>
      Cc: Jeff Arnold <jbarnold@mit.edu>
      Cc: Tim Abbott <tabbott@mit.edu>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      e610499e
    • Tim Abbott's avatar
      module: Make find_symbol return a struct kernel_symbol · 414fd31b
      Tim Abbott authored
      
      
      Impact: Cleanup, internal API change
      
      Ksplice needs access to the kernel_symbol structure in order to support
      modifications to the exported symbol table.
      
      Cc: Anders Kaseorg <andersk@mit.edu>
      Cc: Jeff Arnold <jbarnold@mit.edu>
      Signed-off-by: default avatarTim Abbott <tabbott@mit.edu>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (bugfix and style)
      414fd31b
    • Américo Wang's avatar
      kernel/module.c: fix an unused goto label · b10153fe
      Américo Wang authored
      
      
      Impact: cleanup
      
      Label 'free_init' is only used when defined(CONFIG_MODULE_UNLOAD) &&
      defined(CONFIG_SMP), so move it inside to shut up gcc.
      
      Signed-off-by: default avatarWANG Cong <xiyou.wangcong@gmail.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      b10153fe
    • Rusty Russell's avatar
      param: fix charp parameters set via sysfs · e180a6b7
      Rusty Russell authored
      
      
      Impact: fix crash on reading from /sys/module/.../ieee80211_default_rc_algo
      
      The module_param type "charp" simply sets a char * pointer in the
      module to the parameter in the commandline string: this is why we keep
      the (mangled) module command line around.  But when set via sysfs (as
      about 11 charp parameters can be) this memory is freed on the way
      out of the write().  Future reads hit random mem.
      
      So we kstrdup instead: we have to check we're not in early commandline
      parsing, and we have to note when we've used it so we can reliably
      kfree the parameter when it's next overwritten, and also on module
      unload.
      
      (Thanks to Randy Dunlap for CONFIG_SYSFS=n fixes)
      
      Reported-by: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
      Diagnosed-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Tested-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Tested-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      e180a6b7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 15f7176e
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        wireless: remove duplicated .ndo_set_mac_address
        netfilter: xtables: fix IPv6 dependency in the cluster match
        tg3: Add GRO support.
        niu: Add GRO support.
        ucc_geth: Fix use-after-of_node_put() in ucc_geth_probe().
        gianfar: Fix use-after-of_node_put() in gfar_of_init().
        kernel: remove HIPQUAD()
        netpoll: store local and remote ip in net-endian
        netfilter: fix endian bug in conntrack printks
        dmascc: fix incomplete conversion to network_device_ops
        gso: Fix support for linear packets
        skbuff.h: fix missing kernel-doc
        ni5010: convert to net_device_ops
      15f7176e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · d3d52d68
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc64: Fix reset hangs on Niagara systems.
        cpumask: use mm_cpumask() wrapper: sparc
        cpumask: remove dangerous CPU_MASK_ALL_PTR, &CPU_MASK_ALL.: sparc
        cpumask: remove the now-obsoleted pcibus_to_cpumask(): sparc
        cpumask: remove cpu_coregroup_map: sparc
        cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc
        cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc64
        cpumask: Use accessors code.: sparc64
        cpumask: Use accessors code: sparc
        cpumask: arch_send_call_function_ipi_mask: sparc
        cpumask: Use smp_call_function_many(): sparc64
      d3d52d68
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask · d17abcd5
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:
        oprofile: Thou shalt not call __exit functions from __init functions
        cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic
        cpumask: remove cpumask_t from core
        cpumask: convert rcutorture.c
        cpumask: use new cpumask_ functions in core code.
        cpumask: remove references to struct irqaction's mask field.
        cpumask: use mm_cpumask() wrapper: kernel/fork.c
        cpumask: use set_cpu_active in init/main.c
        cpumask: remove node_to_first_cpu
        cpumask: fix seq_bitmap_*() functions.
        cpumask: remove dangerous CPU_MASK_ALL_PTR, &CPU_MASK_ALL
      d17abcd5
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest-and-virtio · db6f2040
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest-and-virtio:
        lguest: barrier me harder
        lguest: use bool instead of int
        lguest: use KVM hypercalls
        lguest: wire up pte_update/pte_update_defer
        lguest: fix spurious BUG_ON() on invalid guest stack.
        virtio: more neatening of virtio_ring macros.
        virtio: fix BAD_RING, START_US and END_USE macros
      db6f2040
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 · 3c6fae67
      Linus Torvalds authored
      * 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
        hwmon: (fschmd) Add support for the FSC Hades IC
        hwmon: (fschmd) Add support for the FSC Syleus IC
        i2c-i801: Instantiate FSC hardware montioring chips
        dmi: Let dmi_walk() users pass private data
        hwmon: Define a standard interface for chassis intrusion detection
        Move the pcf8591 driver to hwmon
        hwmon: (w83627ehf) Only expose in6 or temp3 on the W83667HG
        hwmon: (w83627ehf) Add support for W83667HG
        hwmon: (w83627ehf) Invert fan pin variables logic
        hwmon: (hdaps) Fix Thinkpad X41 axis inversion
        hwmon: (hdaps) Allow inversion of separate axis
        hwmon: (ds1621) Clean up documentation
        hwmon: (ds1621) Avoid unneeded register access
        hwmon: (ds1621) Clean up register access
        hwmon: (ds1621) Reorder code statements
      3c6fae67
    • Linus Torvalds's avatar
      Merge branch 'locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · c4e1aa67
      Linus Torvalds authored
      * 'locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)
        lockdep: fix deadlock in lockdep_trace_alloc
        lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB
        lockdep: annotate reclaim context (__GFP_NOFS), fix
        lockdep: build fix for !PROVE_LOCKING
        lockstat: warn about disabled lock debugging
        lockdep: use stringify.h
        lockdep: simplify check_prev_add_irq()
        lockdep: get_user_chars() redo
        lockdep: simplify get_user_chars()
        lockdep: add comments to mark_lock_irq()
        lockdep: remove macro usage from mark_held_locks()
        lockdep: fully reduce mark_lock_irq()
        lockdep: merge the !_READ mark_lock_irq() helpers
        lockdep: merge the _READ mark_lock_irq() helpers
        lockdep: simplify mark_lock_irq() helpers #3
        lockdep: further simplify mark_lock_irq() helpers
        lockdep: simplify the mark_lock_irq() helpers
        lockdep: split up mark_lock_irq()
        lockdep: generate usage strings
        lockdep: generate the state bit definitions
        ...
      c4e1aa67
    • Linus Torvalds's avatar
      Merge branch 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc · cf2f7d7c
      Linus Torvalds authored
      * 'proc-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:
        Revert "proc: revert /proc/uptime to ->read_proc hook"
        proc 2/2: remove struct proc_dir_entry::owner
        proc 1/2: do PDE usecounting even for ->read_proc, ->write_proc
        proc: fix sparse warnings in pagemap_read()
        proc: move fs/proc/inode-alloc.txt comment into a source file
      cf2f7d7c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 · 53d8f670
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
        PCI PM: Make pci_prepare_to_sleep() disable wake-up if needed
        radeonfb: Use __pci_complete_power_transition()
        PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2)
        PCI PM: Restore config spaces of all devices during early resume
        PCI PM: Make pci_set_power_state() handle devices with no PM support
        PCI PM: Put devices into low power states during late suspend (rev. 2)
        PCI PM: Move pci_restore_standard_config to pci-driver.c
        PCI PM: Use pci_set_power_state during early resume
        PCI PM: Consistently use variable name "error" for pm call return values
        kexec: Change kexec jump code ordering
        PM: Change hibernation code ordering
        PM: Change suspend code ordering
        PM: Rework handling of interrupts during suspend-resume
        PM: Introduce functions for suspending and resuming device interrupts
      53d8f670
    • Randy Dunlap's avatar
      dma-debug: fix printk formats (i386) · 93c36ed8
      Randy Dunlap authored
      
      
      Fix printk format warnings in dma-debug:
      
        lib/dma-debug.c:645: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:662: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:676: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
        lib/dma-debug.c:686: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t'
      
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      93c36ed8
    • Jeff Mahoney's avatar
      reiserfs: xattr_create is unused with xattrs disabled · 3a355cc6
      Jeff Mahoney authored
      
      
      This patch ifdefs xattr_create when xattrs aren't enabled.
      
      Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3a355cc6
    • Alexander Beregalov's avatar
      reiserfs: fix build breakage · 77e46586
      Alexander Beregalov authored
      
      
      Fix this build error when REISERFS_FS_POSIX_ACL is not set:
      
        fs/reiserfs/inode.c: In function 'reiserfs_new_inode':
        fs/reiserfs/inode.c:1919: warning: passing argument 1 of 'reiserfs_inherit_default_acl' from incompatible pointer type
        fs/reiserfs/inode.c:1919: warning: passing argument 2 of 'reiserfs_inherit_default_acl' from incompatible pointer type
        fs/reiserfs/inode.c:1919: warning: passing argument 3 of 'reiserfs_inherit_default_acl' from incompatible pointer type
        fs/reiserfs/inode.c:1919: error: too many arguments to function 'reiserfs_inherit_default_acl'
      
      due to a missing transaction-handle argument in the non-acl
      compatibility function.
      
      Signed-off-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Acked-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      77e46586
    • Peter Zijlstra's avatar
      lockdep: fix deadlock in lockdep_trace_alloc · 2f850181
      Peter Zijlstra authored
      
      
      Heiko reported that we grab the graph lock with irqs enabled.
      
      Fix this by providng the same wrapper as all other lockdep entry
      functions have.
      
      Reported-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Nick Piggin <npiggin@suse.de>
      LKML-Reference: <1237544000.24626.52.camel@twins>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2f850181
    • Alexey Dobriyan's avatar
      Revert "proc: revert /proc/uptime to ->read_proc hook" · a9caa3de
      Alexey Dobriyan authored
      This reverts commit 6c87df37
      
      .
      
      proc files implemented through seq_file do pread(2) now.
      
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      a9caa3de
    • Alexey Dobriyan's avatar
      proc 2/2: remove struct proc_dir_entry::owner · 99b76233
      Alexey Dobriyan authored
      
      
      Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
      as correctly noted at bug #12454. Someone can lookup entry with NULL
      ->owner, thus not pinning enything, and release it later resulting
      in module refcount underflow.
      
      We can keep ->owner and supply it at registration time like ->proc_fops
      and ->data.
      
      But this leaves ->owner as easy-manipulative field (just one C assignment)
      and somebody will forget to unpin previous/pin current module when
      switching ->owner. ->proc_fops is declared as "const" which should give
      some thoughts.
      
      ->read_proc/->write_proc were just fixed to not require ->owner for
      protection.
      
      rmmod'ed directories will be empty and return "." and ".." -- no harm.
      And directories with tricky enough readdir and lookup shouldn't be modular.
      We definitely don't want such modular code.
      
      Removing ->owner will also make PDE smaller.
      
      So, let's nuke it.
      
      Kudos to Jeff Layton for reminding about this, let's say, oversight.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12454
      
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      99b76233
    • Alexey Dobriyan's avatar
      proc 1/2: do PDE usecounting even for ->read_proc, ->write_proc · 3dec7f59
      Alexey Dobriyan authored
      
      
      struct proc_dir_entry::owner is going to be removed. Now it's only necessary
      to protect PDEs which are using ->read_proc, ->write_proc hooks.
      
      However, ->owner assignments are racy and make it very easy for someone to switch
      ->owner on live PDE (as some subsystems do) without fixing refcounts and so on.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12454
      
      So, ->owner is on death row.
      
      Proxy file operations exist already (proc_file_operations), just bump usecount
      when necessary.
      
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      3dec7f59
    • Milind Arun Choudhary's avatar
      proc: fix sparse warnings in pagemap_read() · 09729a99
      Milind Arun Choudhary authored
      
      
      fs/proc/task_mmu.c:696:12: warning: cast removes address space of expression
      fs/proc/task_mmu.c:696:9: warning: incorrect type in assignment (different address spaces)
      fs/proc/task_mmu.c:696:9:    expected unsigned long long [noderef] [usertype] <asn:1>*out
      fs/proc/task_mmu.c:696:9:    got unsigned long long [usertype] *<noident>
      fs/proc/task_mmu.c:697:12: warning: cast removes address space of expression
      fs/proc/task_mmu.c:697:9: warning: incorrect type in assignment (different address spaces)
      fs/proc/task_mmu.c:697:9:    expected unsigned long long [noderef] [usertype] <asn:1>*end
      fs/proc/task_mmu.c:697:9:    got unsigned long long [usertype] *<noident>
      fs/proc/task_mmu.c:723:12: warning: cast removes address space of expression
      fs/proc/task_mmu.c:723:26: error: subtraction of different types can't work (different address spaces)
      fs/proc/task_mmu.c:725:24: error: subtraction of different types can't work (different address spaces)
      
      Signed-off-by: default avatarMilind Arun Choudhary <milindchoudhary@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      09729a99
    • Randy Dunlap's avatar
      proc: move fs/proc/inode-alloc.txt comment into a source file · 1681bc30
      Randy Dunlap authored
      
      
      so that people will realize that it exists and can update it as needed.
      
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      1681bc30
    • Ingo Molnar's avatar
      lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB · 19cefdff
      Ingo Molnar authored
      
      
      Impact: build fix
      
      fix typo in mm/slob.c:
      
       mm/slob.c:469: error: ‘flags’ undeclared (first use in this function)
       mm/slob.c:469: error: (Each undeclared identifier is reported only once
       mm/slob.c:469: error: for each function it appears in.)
      
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <20090128135457.350751756@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      19cefdff
    • Linus Torvalds's avatar
      Merge branch 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · dfbbe89e
      Linus Torvalds authored
      * 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (53 commits)
        drm: detect hdmi monitor by hdmi identifier (v3)
        drm: drm_fops.c unlock missing on error path
        drm: reorder struct drm_ioctl_desc to save space on 64 bit builds
        radeon: add some new pci ids
        drm: read EDID extensions from monitor
        drm: Use a little stash on the stack to avoid kmalloc in most DRM ioctls.
        drm/radeon: add regs required for occlusion queries support
        drm/i915: check the return value from the copy from user
        drm/radeon: fix logic in r600_page_table_init() to match ati_gart
        drm/radeon: r600 ptes are 64-bit, cleanup cleanup function.
        drm/radeon: don't call irq changes on r600 suspend/resume
        drm/radeon: fix r600 writeback across suspend/resume
        drm/radeon: fix r600 writeback setup.
        drm: fix warnings about new mappings in info code.
        drm/radeon: NULL noise: drivers/gpu/drm/radeon/radeon_*.c
        drm/radeon: fix r600 pci mapping calls.
        drm/radeon: r6xx/r7xx: fix possible oops in r600_page_table_cleanup()
        radeon: call the correct idle function, logic got inverted.
        drm/radeon: RS600: fix interrupt handling
        drm/r600: fix rptr address along lines of previous fixes to radeon.
        ...
      dfbbe89e
    • Linus Torvalds's avatar
      Merge branch 'iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 712b0006
      Linus Torvalds authored
      * 'iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)
        dma-debug: make memory range checks more consistent
        dma-debug: warn of unmapping an invalid dma address
        dma-debug: fix dma_debug_add_bus() definition for !CONFIG_DMA_API_DEBUG
        dma-debug/x86: register pci bus for dma-debug leak detection
        dma-debug: add a check dma memory leaks
        dma-debug: add checks for kernel text and rodata
        dma-debug: print stacktrace of mapping path on unmap error
        dma-debug: Documentation update
        dma-debug: x86 architecture bindings
        dma-debug: add function to dump dma mappings
        dma-debug: add checks for sync_single_sg_*
        dma-debug: add checks for sync_single_range_*
        dma-debug: add checks for sync_single_*
        dma-debug: add checking for [alloc|free]_coherent
        dma-debug: add add checking for map/unmap_sg
        dma-debug: add checking for map/unmap_page/single
        dma-debug: add core checking functions
        dma-debug: add debugfs interface
        dma-debug: add kernel command line parameters
        dma-debug: add initialization code
        ...
      
      Fix trivial conflicts due to whitespace changes in arch/x86/kernel/pci-nommu.c
      712b0006
    • Rafael J. Wysocki's avatar
      PCI PM: Make pci_prepare_to_sleep() disable wake-up if needed · 8efb8c76
      Rafael J. Wysocki authored
      
      
      If the device is not supposed to wake up the system, ie. when
      device_may_wakeup(&dev->dev) returns 'false', pci_prepare_to_sleep()
      should pass 'false' to pci_enable_wake() so that it calls the
      platform to disable the wake-up capability of the device.
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      8efb8c76
    • Rafael J. Wysocki's avatar
      radeonfb: Use __pci_complete_power_transition() · b8e676d2
      Rafael J. Wysocki authored
      
      
      Use __pci_complete_power_transition() to finalize the transition into
      D2 after programming the PMCSR of the device directly.
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      b8e676d2
    • Rafael J. Wysocki's avatar
      PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2) · 0e5dd46b
      Rafael J. Wysocki authored
      
      
      The radeonfb driver needs to program the device's PMCSR directly due
      to some quirky hardware it has to handle (see
      http://bugzilla.kernel.org/show_bug.cgi?id=12846 for details) and
      after doing that it needs to call the platform (usually ACPI) to
      finish the power transition of the device.  Currently it uses
      pci_set_power_state() for this purpose, however making a specific
      assumption about the internal behavior of this function, which has
      changed recently so that this assumption is no longer satisfied.
      For this reason, introduce __pci_complete_power_transition() that may
      be called by the radeonfb driver to complete the power transition of
      the device.  For symmetry, introduce __pci_start_power_transition().
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      0e5dd46b
    • Rafael J. Wysocki's avatar
      PCI PM: Restore config spaces of all devices during early resume · 931ff68a
      Rafael J. Wysocki authored
      
      
      At present the configuration spaces of PCI devices that have no
      drivers or no PM support in the drivers (either legacy or through a
      pm object) are not saved during suspend and, consequently, they are
      not restored during resume.  This generally may lead to the state of
      the system being slightly inconsistent after the resume, so it's
      better to save and restore the configuration spaces of these devices
      as well.
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      931ff68a
    • Rafael J. Wysocki's avatar
      PCI PM: Make pci_set_power_state() handle devices with no PM support · 4a865905
      Rafael J. Wysocki authored
      
      
      There is a problem with PCI devices without any PM support (either
      native or through the platform) that pci_set_power_state() always
      returns error code for them, even if they are being put into D0.
      However, such devices are always in D0, so pci_set_power_state()
      should return success when attempting to put such a device into D0.
      It also should update the current_state field for these devices as
      appropriate.  This modification is necessary so that the standard
      configuration registers of these devices are successfully restored by
      pci_restore_standard_config() during the "early" phase of resume.
      
      In addition, pci_set_power_state() should check the value of
      current_state before calling the platform to change the power state
      of the device to avoid doing that unnecessarily.
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      4a865905