1. 09 2月, 2008 40 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · f0e2dcff
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        IB/core: Remove unused struct ib_device.flags member
        IB/core: Add IP checksum offload support
        IPoIB: Add send gather support
        IPoIB: Add high DMA feature flag
        IB/mlx4: Use multiple WQ blocks to post smaller send WQEs
        mlx4_core: Clean up struct mlx4_buf
        mlx4_core: For 64-bit systems, vmap() kernel queue buffers
        IB/mlx4: Consolidate code to get an entry from a struct mlx4_buf
      f0e2dcff
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 · 04a94bab
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (24 commits)
        [Blackfin] arch: import defines for BF547 -- it is just like the BF548, but no CAN
        [Blackfin] arch: fix build fails only include header files when enabled
        [Blackfin] arch: declare default INSTALL_PATH for Blackfin ports
        [Blackfin] arch: Encourage users to use the spidev character driver: Provide platform support
        [Blackfin] arch: Enable UART2 and UART3 for bf548
        [Blackfin] arch: Enable NET2272 on BF561-EZkit - remove request_mem_region
        [Blackfin] arch:Fix BUG [#3876] pfbutton test for BTN3 on bf533 don't show complete info
        [Blackfin] arch: remove duplicated definitions of the line discipline numbers N_* in asm-blackfin/termios.h
        [Blackfin] arch: fix building with mtd uclinux by putting the mtd_phys option into the function it actually gets used in
        [Blackfin] arch: simpler header and update dates
        [Blackfin] arch: move the init sections to the end of memory
        [Blackfin] arch: change the trace buffer control start/stop logic in the exception handlers
        [Blackfin] arch: fix typo in printk message
        [Blackfin] arch: this is an ezkit, not a stamp, so fixup the init function name
        [Blackfin] arch: add slightly better help text for CPLB_INFO
        [Blackfin] arch: Fix BUG - Enable ISP1362 driver to work ok with BF561
        [Blackfin] arch: Fix header file information
        [Blackfin] arch: Add Support for ISP1362
        [Blackfin] arch: add support for cmdline partitioning to the BF533-STAMP flash map driver and enable it as a module by default
        [Blackfin] arch: hook up set_irq_wake in Blackfin's irq code
        ...
      04a94bab
    • K
      DCA: convert struct class_device to struct device. · 765cdb6c
      Kay Sievers 提交于
      Thanks to Kay for keeping us honest.
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NShannon Nelson <shannon.nelson@intel.com>
      Cc: "Williams, Dan J" <dan.j.williams@intel.com>
      Acked-by: NGreg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      765cdb6c
    • A
      x25_asy: Fix ref count rule violation · 11b0cc3a
      Alan Cox 提交于
      x25_asy does not take an ldisc reference before calling the flush method.
      Fix it to use the helper function we provide.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Cc: Krzysztof Halasa <khc@pm.waw.pl>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      11b0cc3a
    • G
      lib/scatterlist.o needed by a module only - link it in unconditionally · 4600ecfc
      Guennadi Liakhovetski 提交于
      lib/scatterlist.c is needed by drivers/media/video/videobuf-dma-sg.c, and
      we would like to be able to use the latter without PCI too, for example, on
      PXA270 ARM CPU.  It is then possible to create a configuration with
      CONFIG_BLOCK=n, where only module code will need scatterlist.c.  Therefore
      it must be in obj-y.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@pengutronix.de>
      Acked-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4600ecfc
    • A
      fix xtensa timerfd breakage · 3a984a85
      Adrian Bunk 提交于
      In file included from /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/xtensa/kernel/syscall.c:39:
      include2/asm/unistd.h:681: error: 'sys_timerfd' undeclared here (not in a function)
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Cc: Christian Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3a984a85
    • M
      Fix FRV cmpxchg_local · 6784fd59
      Mathieu Desnoyers 提交于
      Fix the FRV cmpxchg_local by breaking the following header dependency loop :
      
      linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h
        -> asm-frv/system.h ->
        asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h
      
      and
      
      linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h ->
        asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h
      
      In order to fix this :
      - Move the atomic_test_and_ *_mask inlines from asm-frv/atomic.h (why are they
        there at all anyway ? They are not touching atomic_t variables!) to
        asm-frv/bitops.h.
      
      Also fix a build issue with cmpxchg : it does not cast to (unsigned long *)
      like other architectures, to deal with it in the cmpxchg_local macro.
      
      FRV builds fine with this patch.
      
      Thanks to Adrian Bunk <bunk@kernel.org> for spotting this bug.
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Adrian Bunk <bunk@kernel.org>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6784fd59
    • 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
    • R
      IB/core: Remove unused struct ib_device.flags member · 5128bdc9
      Roland Dreier 提交于
      Avoid confusion about what it might mean, since it's never initialized.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      5128bdc9
    • E
      IB/core: Add IP checksum offload support · e0605d91
      Eli Cohen 提交于
      Add a device capability to show when it can handle checksum offload.
      Also add a send flag for inserting checksums and a csum_ok field to
      the completion record.
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      e0605d91
    • E
      IPoIB: Add send gather support · 7143740d
      Eli Cohen 提交于
      This patch acts as a preparation for using checksum offload for IB
      devices capable of inserting/verifying checksum in IP packets.  The
      patch does not actaully turn on NETIF_F_SG - we defer that to the
      patches adding checksum offload capabilities.
      
      We only add support for send gathers for datagram mode, since existing
      HW does not support checksum offload on connected QPs.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      7143740d
    • E
      IPoIB: Add high DMA feature flag · eb14032f
      Eli Cohen 提交于
      All current InfiniBand devices can handle all DMA addresses, and it's
      hard to imagine anyone would be silly enough to build a new device
      that couldn't.  Therefore, enable the NETIF_F_HIGHDMA feature for IPoIB.
      
      This has no effect for no, but is needed when we enable gather/scatter
      support and checksum stateless offloads.
      Signed-off-by: NEli Cohen <eli@mellnaox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      eb14032f
    • J
      IB/mlx4: Use multiple WQ blocks to post smaller send WQEs · ea54b10c
      Jack Morgenstein 提交于
      ConnectX HCA supports shrinking WQEs, so that a single work request
      can be made of multiple units of wqe_shift.  This way, WRs can differ
      in size, and do not have to be a power of 2 in size, saving memory and
      speeding up send WR posting.  Unfortunately, if we do this then the
      wqe_index field in CQEs can't be used to look up the WR ID anymore, so
      our implementation does this only if selective signaling is off.
      
      Further, on 32-bit platforms, we can't use vmap() to make the QP
      buffer virtually contigious. Thus we have to use constant-sized WRs to
      make sure a WR is always fully within a single page-sized chunk.
      
      Finally, we use WRs with the NOP opcode to avoid wrapping around the
      queue buffer in the middle of posting a WR, and we set the
      NoErrorCompletion bit to avoid getting completions with error for NOP
      WRs.  However, NEC is only supported starting with firmware 2.2.232,
      so we use constant-sized WRs for older firmware.  And, since MLX QPs
      only support SEND, we use constant-sized WRs in this case.
      
      When stamping during NOP posting, do stamping following setting of the
      NOP WQE valid bit.
      Signed-off-by: NMichael S. Tsirkin <mst@dev.mellanox.co.il>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      ea54b10c
    • M
    • 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
    • M
    • 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