1. 09 2月, 2008 40 次提交
    • A
      revert "proc: fix the threaded proc self" · b55fcb22
      Andrew Morton 提交于
      Revert commit c6caeb7c ("proc: fix the
      threaded /proc/self"), since Eric says "The patch really is wrong.
      There is at least one corner case in procps that cares."
      
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "Guillaume Chazarain" <guichaz@yahoo.fr>
      Cc: "Pavel Emelyanov" <xemul@openvz.org>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Cc: Roland McGrath <roland@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b55fcb22
    • L
      Merge branch 'cris' of git://www.jni.nu/cris · 0cf975e1
      Linus Torvalds 提交于
      * 'cris' of git://www.jni.nu/cris: (158 commits)
        CRIS v32: Remove hwregs/timer_defs.h, it is now architecture specific.
        CRIS v32: Change drivers/i2c.c locking.
        CRIS v32: Rewrite ARTPEC-3 gpio driver to avoid volatiles and general cleanup.
        CRIS: Add new timerfd syscall entries.
        MAINTAINERS: Add my information for the CRIS port.
        CRIS v32: Correct spelling of bandwidth in function name.
        CRIS v32: Clean up nandflash.c for ARTPEC-3 and ETRAX FS.
        CRIS v10: Cleanup of drivers/gpio.c
        CRIS v10: drivers/net/cris/eth_v10.c rename LED defines to CRIS_LED to avoid name clash.
        CRIS: Make io_pwm_set_period members unsigned in etraxgpio.h
        CRIS: Move ETRAX_AXISFLASHMAP to common Kconfig file.
        CRIS: Drop regs parameter from call to profile_tick in kernel/time.c
        CRIS v32: Fix minor formatting issue in mach-a3/io.c
        CRIS v32: Initialize GIO even if we're rambooting in kernel/head.S
        CRIS v32: Remove kernel/arbiter.c, it now exists in machine dependent directory.
        CRIS v32: Minor changes to avoid errors in asm-cris/arch-v32/hwregs/reg_rdwr.h
        CRIS v32: arch-v32/hwregs/intr_vect_defs.h moved to machine dependent directory.
        CRIS v32: Correct offset for TASK_pid in asm-cris/arch-v32/offset.h
        CRIS v32: Move register map header to machine dependent directory.
        CRIS v32: Let compiler know that memory is clobbered after a break op.
        ...
      0cf975e1
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 03054de1
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        Enhanced partition statistics: documentation update
        Enhanced partition statistics: remove old partition statistics
        Enhanced partition statistics: procfs
        Enhanced partition statistics: sysfs
        Enhanced partition statistics: aoe fix
        Enhanced partition statistics: update partition statitics
        Enhanced partition statistics: core statistics
        block: fixup rq_init() a bit
      
      Manually fixed conflict in drivers/block/aoe/aoecmd.c due to statistics
      support.
      03054de1
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm · b5eb9513
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
        dlm: add __init and __exit marks to init and exit functions
        dlm: eliminate astparam type casting
        dlm: proper types for asts and basts
        dlm: dlm/user.c input validation fixes
        dlm: fix dlm_dir_lookup() handling of too long names
        dlm: fix overflows when copying from ->m_extra to lvb
        dlm: make find_rsb() fail gracefully when namelen is too large
        dlm: receive_rcom_lock_args() overflow check
        dlm: verify that places expecting rcom_lock have packet long enough
        dlm: validate data in dlm_recover_directory()
        dlm: missing length check in check_config()
        dlm: use proper type for ->ls_recover_buf
        dlm: do not byteswap rcom_config
        dlm: do not byteswap rcom_lock
        dlm: dlm_process_incoming_buffer() fixes
        dlm: use proper C for dlm/requestqueue stuff (and fix alignment bug)
      b5eb9513
    • L
      Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · dde00137
      Linus Torvalds 提交于
      * 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Add arch-specific walk_memory_remove() for 64-bit powerpc
        [POWERPC] Enable hotplug memory remove for 64-bit powerpc
        [POWERPC] Add remove_memory() for 64-bit powerpc
        [POWERPC] Make cell IOMMU fixed mapping printk more useful
        [POWERPC] Fix potential cell IOMMU bug when switching back to default DMA ops
        [POWERPC] Don't enable cell IOMMU fixed mapping if there are no dma-ranges
        [POWERPC] Fix cell IOMMU null pointer explosion on old firmwares
        [POWERPC] spufs: Fix timing dependent false return from spufs_run_spu
        [POWERPC] spufs: No need to have a runnable SPU for libassist update
        [POWERPC] spufs: Update SPU_Status[CISHP] in backing runcntl write
        [POWERPC] spufs: Fix state_mutex leaks
        [POWERPC] Disable G5 NAP mode during SMU commands on U3
      dde00137
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · f3aafa6c
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC64]: Make use of the new fs/compat_binfmt_elf.c
        [SPARC64]: Make use of compat_sys_ptrace()
      
      Manually fixed trivial delete/modift conflict in arch/sparc64/kernel/binfmt_elf32.c
      f3aafa6c
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 3668805a
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
        [IPSEC] flow: reorder "struct flow_cache_entry" and remove SLAB_HWCACHE_ALIGN
        [DECNET] ROUTE: remove unecessary alignment
        [IPSEC]: Add support for aes-ctr.
        [ISDN]: fix section mismatch warning in enpci_card_msg
        [TIPC]: declare proto_ops structures as 'const'.
        [TIPC]: Kill unused static inline (x5)
        [TC]: oops in em_meta
        [IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h
        [IPV6] Minor clenup: remove two unused definitions in net/ip6_route.h
        [AF_IUCV]: defensive programming of iucv_callback_txdone
        [AF_IUCV]: broken send_skb_q results in endless loop
        [IUCV]: wrong irq-disabling locking at module load time
        [CAN]: Minor clean-ups
        [CAN]: Move proto_{,un}register() out of spin-locked region
        [CAN]: Clean up module auto loading
        [IPSEC] flow: Remove an unnecessary ____cacheline_aligned
        [IPV4]: route: fix crash ip_route_input
        [NETFILTER]: xt_iprange: add missing #include
        [NETFILTER]: xt_iprange: fix typo in address family
        [NETFILTER]: nf_conntrack: fix ct_extend ->move operation
        ...
      3668805a
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 7b791d44
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
        acer-wmi, tc1100-wmi: select ACPI_WMI
        ACPI: WMI: Improve Kconfig description
        ACPI: DMI: add Panasonic CF-52 and Thinpad X61
        ACPI: thermal: syntax, spelling, kernel-doc
        intel_menlo: build on X86 only
        ACPI: build WMI on X86 only
        ACPI: cpufreq: Print _PPC changes via cpufreq debug layer
        ACPI: add newline to printk
      7b791d44
    • J
      splice: missing user pointer access verification · 8811930d
      Jens Axboe 提交于
      vmsplice_to_user() must always check the user pointer and length
      with access_ok() before copying. Likewise, for the slow path of
      copy_from_user_mmap_sem() we need to check that we may read from
      the user region.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      Cc: Wojciech Purczynski <cliph@research.coseinc.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8811930d
    • J
      quota: turn quotas off when remounting read-only · 66191dc6
      Jan Kara 提交于
      Turn off quotas before filesystem is remounted read only.  Otherwise quota
      will try to write to read-only filesystem which does no good...  We could
      also just refuse to remount ro when quota is enabled but turning quota off
      is consistent with what we do on umount.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      66191dc6
    • N
      ext3 can fail badly when device stops accepting BIO_RW_BARRIER requests · 28ae094c
      Neil Brown 提交于
      Some devices - notably dm and md - can change their behaviour in response
      to BIO_RW_BARRIER requests.  They might start out accepting such requests
      but on reconfiguration, they find out that they cannot any more.
      
      ext3 (and other filesystems) deal with this by always testing if
      BIO_RW_BARRIER requests fail with EOPNOTSUPP, and retrying the write
      requests without the barrier (probably after waiting for any pending writes
      to complete).
      
      However there is a bug in the handling for this for ext3.
      
      When ext3 (jbd actually) decides to submit a BIO_RW_BARRIER request, it
      sets the buffer_ordered flag on the buffer head.  If the request completes
      successfully, the flag STAYS SET.
      
      Other code might then write the same buffer_head after the device has been
      reconfigured to not accept barriers.  This write will then fail, but the
      "other code" is not ready to handle EOPNOTSUPP errors and the error will be
      treated as fatal.
      
      This can be seen without having to reconfigure a device at exactly the
      wrong time by putting:
      
      		if (buffer_ordered(bh))
      			printk("OH DEAR, and ordered buffer\n");
      
      in the while loop in "commit phase 5" of journal_commit_transaction.
      
      If it ever prints the "OH DEAR ..." message (as it does sometimes for
      me), then that request could (in different circumstances) have failed
      with EOPNOTSUPP, but that isn't tested for.
      
      My proposed fix is to clear the buffer_ordered flag after it has been
      used, as in the following patch.
      Signed-off-by: NNeil Brown <neilb@suse.de>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      28ae094c
    • E
      reduce large do_mount stack usage with noinlines · 2dafe1c4
      Eric Sandeen 提交于
      do_mount() uses a whopping 616 bytes of stack on x86_64 in 2.6.24-mm1,
      largely thanks to gcc inlining the various helper functions.
      
      noinlining these can slim it down a lot; on my box this patch gets it down
      to 168, which is mostly the struct nameidata nd; left on the stack.
      
      These functions are called only as do_mount() helpers; none of them should
      be in any path that would see a performance benefit from inlining...
      Signed-off-by: NEric Sandeen <sandeen@redhat.com>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2dafe1c4
    • J
      uml: fix mm_context memory leak · ac2a6599
      Jeff Dike 提交于
      [ Spotted by Miklos ]
      
      Fix a memory leak in init_new_context.  The struct page ** buffer allocated
      for install_special_mapping was never recorded, and thus leaked when the
      mm_struct was freed.  Fix it by saving the pointer in mm_context_t and freeing
      it in arch_exit_mmap.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ac2a6599
    • J
      uml: x86_64 should copy %fs during fork · 5aaf5f7b
      Jeff Dike 提交于
      %fs needs to be copied from parent to child during fork.
      
      Tidied up some whitespace while I was here.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5aaf5f7b
    • J
      uml: improved error handling while locating temp dir · 11a7ac23
      Jim Meyering 提交于
      * arch/um/os-Linux/mem.c (make_tempfile): Don't deref NULL upon failed malloc.
      
      * arch/um/os-Linux/mem.c (make_tempfile): Handle NULL tempdir.
      Don't let a long tempdir (e.g., via TMPDIR) provoke heap corruption.
      
      [ jdike - formatting cleanups, deleted obsolete comment ]
      Signed-off-by: NJim Meyering <meyering@redhat.com>
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      11a7ac23
    • J
      uml: style fixes in arch/um/os-Linux · 5134d8fe
      Jeff Dike 提交于
      Style changes under arch/um/os-Linux:
      	include trimming
      	CodingStyle fixes
      	some printks needed severity indicators
      
      make_tempfile turns out not to be used outside of mem.c, so it is now static.
      Its declaration in tempfile.h is no longer needed, and tempfile.h itself is no
      longer needed.
      
      create_tmp_file was also made static.
      
      checkpatch moans about an EXPORT_SYMBOL in user_syms.c which is part of a
      macro definition - this is copying a bit of kernel infrastructure into the
      libc side of UML because the kernel headers can't be included there.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5134d8fe
    • J
      uml: runtime host VMSPLIT detection · 536788fe
      Jeff Dike 提交于
      Calculate TASK_SIZE at run-time by figuring out the host's VMSPLIT - this is
      needed on i386 if UML is to run on hosts with varying VMSPLITs without
      recompilation.
      
      TASK_SIZE is now defined in terms of a variable, task_size.  This gets rid of
      an include of pgtable.h from processor.h, which can cause include loops.
      
      On i386, task_size is calculated early in boot by probing the address space in
      a binary search to figure out where the boundary between usable and non-usable
      memory is.  This tries to make sure that a page that is considered to be in
      userspace is, or can be made, read-write.  I'm concerned about a system-global
      VDSO page in kernel memory being hit and considered to be a userspace page.
      
      On x86_64, task_size is just the old value of CONFIG_TOP_ADDR.
      
      A bunch of config variable are gone now.  CONFIG_TOP_ADDR is directly replaced
      by TASK_SIZE.  NEST_LEVEL is gone since the relocation of the stubs makes it
      irrelevant.  All the HOST_VMSPLIT stuff is gone.  All references to these in
      arch/um/Makefile are also gone.
      
      I noticed and fixed a missing extern in os.h when adding os_get_task_size.
      
      Note: This has been revised to fix the 32-bit UML on 64-bit host bug that
      Miklos ran into.
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      536788fe
    • M
      CONFIG_HIGHPTE vs. sub-page page tables. · 2f569afd
      Martin Schwidefsky 提交于
      Background: I've implemented 1K/2K page tables for s390.  These sub-page
      page tables are required to properly support the s390 virtualization
      instruction with KVM.  The SIE instruction requires that the page tables
      have 256 page table entries (pte) followed by 256 page status table entries
      (pgste).  The pgstes are only required if the process is using the SIE
      instruction.  The pgstes are updated by the hardware and by the hypervisor
      for a number of reasons, one of them is dirty and reference bit tracking.
      To avoid wasting memory the standard pte table allocation should return
      1K/2K (31/64 bit) and 2K/4K if the process is using SIE.
      
      Problem: Page size on s390 is 4K, page table size is 1K or 2K.  That means
      the s390 version for pte_alloc_one cannot return a pointer to a struct
      page.  Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one
      cannot return a pointer to a pte either, since that would require more than
      32 bit for the return value of pte_alloc_one (and the pte * would not be
      accessible since its not kmapped).
      
      Solution: The only solution I found to this dilemma is a new typedef: a
      pgtable_t.  For s390 pgtable_t will be a (pte *) - to be introduced with a
      later patch.  For everybody else it will be a (struct page *).  The
      additional problem with the initialization of the ptl lock and the
      NR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and
      a destructor pgtable_page_dtor.  The page table allocation and free
      functions need to call these two whenever a page table page is allocated or
      freed.  pmd_populate will get a pgtable_t instead of a struct page pointer.
       To get the pgtable_t back from a pmd entry that has been installed with
      pmd_populate a new function pmd_pgtable is added.  It replaces the pmd_page
      call in free_pte_range and apply_to_pte_range.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2f569afd
    • A
      update checkpatch.pl to version 0.14 · 13214adf
      Andy Whitcroft 提交于
      This version brings the remainder of the queued fixes.  A number of fixes
      for items missed reported by Andrew Morton and others.  Also a handful
      of new checks and fixes for false positives.  Of note:
      
       - new warning associated with --file to try and avoid cleanup only patches,
       - corrected handling of completly empty files,
       - corrected report handling with multiple files,
       - handling of possible types in the face of multiple declarations,
       - detection of unnessary braces on complex if statements (where present), and
       - all new comment spacing handling.
      
      Andi Kleen (1):
            Introduce a warning when --file mode is used
      
      Andy Whitcroft (14):
            Version: 0.14
            clean up some space violations in checkpatch.pl
            a completly empty file should not provoke a whinge
            reset report lines buffers between files
            unary ++/-- may abutt close braces
            __typeof__ is also unary
            comments: revamp comment handling
            add --summary-file option adding filename to summary line
            trailing backslashes are not trailing statements
            handle operators passed as parameters such as to ASSERTCMP
            possible types -- enhance debugging
            check for boolean operations with constants
            possible types: handle multiple declarations
            detect and report if statements where all branches are single statements
      
      Arjan van de Ven (1):
            quiet option should not print the summary on no errors
      
      Bartlomiej Zolnierkiewicz (1):
            warn about using __FUNCTION__
      
      Timur Tabi (1):
            loosen spacing checks for __asm__
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      13214adf
    • R
      MIPS: Mark all but i8259 interrupts as no-probe. · 24649c00
      Ralf Baechle 提交于
      Use set_irq_noprobe() to mark all MIPS interrupts as non-probe.  Override that
      default for i8259 interrupts.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Acked-and-tested-by: NRob Landley <rob@landley.net>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      24649c00
    • R
      IRQ_NOPROBE helper functions · 46f4f8f6
      Ralf Baechle 提交于
      Probing non-ISA interrupts using the handle_percpu_irq as their handle_irq
      method may crash the system because handle_percpu_irq does not check
      IRQ_WAITING.  This for example hits the MIPS Qemu configuration.
      
      This patch provides two helper functions set_irq_noprobe and set_irq_probe to
      set rsp.  clear the IRQ_NOPROBE flag.  The only current caller is MIPS code
      but this really belongs into generic code.
      
      As an aside, interrupt probing these days has become a mostly obsolete if not
      dangerous art.  I think Linux interrupts should be changed to default to
      non-probing but that's subject of this patch.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Acked-and-tested-by: NRob Landley <rob@landley.net>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      46f4f8f6
    • D
      fs/char_dev.c: chrdev_open marked static and removed from fs.h · 922f9cfa
      Denis Cheng 提交于
      There is an outdated comment in serial_core.c also fixed.
      Signed-off-by: NDenis Cheng <crquan@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      922f9cfa
    • P
      preemptible RCU: sparse annotations · b55ab616
      Patrick McHardy 提交于
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Dipankar Sarma <dipankar@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b55ab616
    • J
      buffer_head: fix private_list handling · 535ee2fb
      Jan Kara 提交于
      There are two possible races in handling of private_list in buffer cache.
      
      1) When fsync_buffers_list() processes a private_list, it clears
         b_assoc_mapping and moves buffer to its private list.  Now
         drop_buffers() comes, sees a buffer is on list so it calls
         __remove_assoc_queue() which complains about b_assoc_mapping being
         cleared (as it cannot propagate possible IO error).  This race has been
         actually observed in the wild.
      
      2) When fsync_buffers_list() processes a private_list,
         mark_buffer_dirty_inode() can be called on bh which is already on the
         private list of fsync_buffers_list().  As buffer is on some list (note
         that the check is performed without private_lock), it is not readded to
         the mapping's private_list and after fsync_buffers_list() finishes, we
         have a dirty buffer which should be on private_list but it isn't.  This
         race has not been reported, probably because most (but not all) callers
         of mark_buffer_dirty_inode() hold i_mutex and thus are serialized with
         fsync().
      
      Fix these issues by not clearing b_assoc_map when fsync_buffers_list()
      moves buffer to a dedicated list and by reinserting buffer in private_list
      when it is found dirty after we have submitted buffer for IO.  We also
      change the tests whether a buffer is on a private list from
      !list_empty(&bh->b_assoc_buffers) to bh->b_assoc_map so that they are
      single word reads and hence lockless checks are safe.
      Signed-off-by: NJan Kara <jack@suse.cz>
      Cc: Nick Piggin <npiggin@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      535ee2fb
    • Y
      Convert loglevel-related kernel boot parameters to early_param · f6f21c81
      Yinghai Lu 提交于
      So we can use them for the early console like console=uart8250 or
      earlycon=uart8250 or early_printk
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f6f21c81
    • Y
      Add new string functions strict_strto* and convert kernel params to use them · 06b2a76d
      Yi Yang 提交于
      Currently, for every sysfs node, the callers will be responsible for
      implementing store operation, so many many callers are doing duplicate
      things to validate input, they have the same mistakes because they are
      calling simple_strtol/ul/ll/uul, especially for module params, they are
      just numeric, but you can echo such values as 0x1234xxx, 07777888 and
      1234aaa, for these cases, module params store operation just ignores
      succesive invalid char and converts prefix part to a numeric although input
      is acctually invalid.
      
      This patch tries to fix the aforementioned issues and implements
      strict_strtox serial functions, kernel/params.c uses them to strictly
      validate input, so module params will reject such values as 0x1234xxxx and
      returns an error:
      
      write error: Invalid argument
      
      Any modules which export numeric sysfs node can use strict_strtox instead of
      simple_strtox to reject any invalid input.
      
      Here are some test results:
      
      Before applying this patch:
      
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000g > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000gggggggg > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 010000 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0100008 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 010000aaaaa > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]#
      
      After applying this patch:
      
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000g > /sys/module/e1000/parameters/copybreak
      -bash: echo: write error: Invalid argument
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo 0x1000gggggggg > /sys/module/e1000/parameters/copybreak
      -bash: echo: write error: Invalid argument
      [root@yangyi-dev /]# echo 010000 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# echo 0100008 > /sys/module/e1000/parameters/copybreak
      -bash: echo: write error: Invalid argument
      [root@yangyi-dev /]# echo 010000aaaaa > /sys/module/e1000/parameters/copybreak
      -bash: echo: write error: Invalid argument
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]# echo -n 4096 > /sys/module/e1000/parameters/copybreak
      [root@yangyi-dev /]# cat /sys/module/e1000/parameters/copybreak
      4096
      [root@yangyi-dev /]#
      
      [akpm@linux-foundation.org: fix compiler warnings]
      [akpm@linux-foundation.org: fix off-by-one found by tiwai@suse.de]
      Signed-off-by: NYi Yang <yi.y.yang@intel.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      06b2a76d
    • R
      getdelays: fix gcc warnings · 10e6f32b
      Randy Dunlap 提交于
      Fix gcc warnings in getdelays.c:
      
      Documentation/accounting/getdelays.c: In function 'task_context_switch_counts':
      Documentation/accounting/getdelays.c:214: warning: format '%15lu' expects type 'long unsigned int', but argument 4 has type '__u64'
      Documentation/accounting/getdelays.c:214: warning: format '%15lu' expects type 'long unsigned int', but argument 5 has type '__u64'
      Documentation/accounting/getdelays.c: In function 'main':
      Documentation/accounting/getdelays.c:402: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
      Documentation/accounting/getdelays.c: In function 'get_family_id':
      Documentation/accounting/getdelays.c:171: warning: 'id' may be used uninitialized in this function
      
      One warning is not a problem and can be dismissed:
      Documentation/accounting/getdelays.c: In function 'main':
      Documentation/accounting/getdelays.c:236: warning: 'cmd_type' may be used uninitialized in this function
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: NBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      10e6f32b
    • S
      cpu: fix section mismatch warnings for enable_nonboot_cpus · fa7303e2
      Sam Ravnborg 提交于
      Fix following warning:
      WARNING: o-x86_64/kernel/built-in.o(.text+0x36d8b): Section mismatch in reference from the function enable_nonboot_cpus() to the function .cpuinit.text:_cpu_up()
      
      enable_nonboot_cpus() are used solely from CONFIG_CONFIG_PM_SLEEP_SMP=y
      and PM_SLEEP_SMP imply HOTPLUG_CPU therefore the reference
      to _cpu_up() is valid.
      Annotate enable_nonboot_cpus() with __ref to silence modpost.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Gautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fa7303e2
    • M
      use __u32 in linux/reiserfs_fs.h · 13d8bcd2
      Mike Frysinger 提交于
      Since this header is exported to userspace and all the other types in the
      header have been scrubbed, this brings the last straggler in line.
      Signed-off-by: NMike Frysinger <vapier@gentoo.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      13d8bcd2
    • A
      Remove a.out interpreter support in ELF loader · d20894a2
      Andi Kleen 提交于
      Following the deprecation schedule the a.out ELF interpreter support
      is removed now with this patch. a.out ELF interpreters were an transition
      feature for moving a.out systems to ELF, but they're unlikely to be still
      needed. Pure a.out systems will still work of course. This allows to
      simplify the hairy ELF loader.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d20894a2
    • P
      Don't operate with pid_t in rtmutex tester · 48d13e48
      Pavel Emelyanov 提交于
      The proper behavior to store task's pid and get this task later is to get the
      struct pid pointer and get the task with the pid_task() call.
      
      Make it for rt_mutex_waiter->deadlock_task_pid field.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      48d13e48
    • P
      Use find_task_by_vpid in posix timers · 8dc86af0
      Pavel Emelyanov 提交于
      All the functions that need to lookup a task by pid in posix timers obtain
      this pid from a user space, and thus this value refers to a task in the same
      namespace, as the current task lives in.
      
      So the proper behavior is to call find_task_by_vpid() here.
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8dc86af0
    • P
      NBD: remove limit on max number of nbd devices · 20a8143e
      Paul Clements 提交于
      Remove the arbitrary 128 device limit for NBD.  nbds_max can now be set to
      any number.  In certain scenarios where devices are used sparsely we have
      run into the 128 device limit.
      Signed-off-by: NPaul Clements <paul.clements@steeleye.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      20a8143e
    • J
      Char: applicom, use pci_match_id · 53a7a1bb
      Jiri Slaby 提交于
      Instead of testing hardcoded values, use pci_match_id to reference the
      pci_device_id table. Sideways, it allows easy new additions to the table.
      
      [akpm@linux-foundation.org: remove wrongly-added semicolon]
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: WANG Cong <xiyou.wangcong@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      53a7a1bb
    • J
      Char: applicom, use pci_resource_start · 55b29a72
      Jiri Slaby 提交于
      Use pci_resource_start instead of accessing pci_dev struct internals.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: WANG Cong <xiyou.wangcong@gmail.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      55b29a72
    • M
      mount options: fix udf · 6da80894
      Miklos Szeredi 提交于
      Add a .show_options super operation to udf.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Acked-by: NCyrill Gorcunov <gorcunov@gmail.com>
      Acked-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6da80894
    • A
      mount-options-fix-tmpfs-fix · b76db735
      Andrew Morton 提交于
      Documentation/SubmitCheckist, please.
      
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Miklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b76db735
    • A
      mount options: fix tmpfs · 680d794b
      akpm@linux-foundation.org 提交于
      Add .show_options super operation to tmpfs.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      680d794b
    • M
      mount options: fix spufs · 90d09e14
      Miklos Szeredi 提交于
      Add a .show_options super operation to spufs.
      
      Use generic_show_options() and save the complete option string in
      spufs_fill_super().
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      90d09e14
    • M
      mount options: fix reiserfs · cdf6ccc8
      Miklos Szeredi 提交于
      Add a .show_options super operation to reiserfs.
      
      Use generic_show_options() and save the complete option string in
      reiserfs_fill_super() and reiserfs_remount().
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cdf6ccc8