1. 04 8月, 2012 2 次提交
  2. 03 8月, 2012 8 次提交
  3. 02 8月, 2012 29 次提交
    • P
      cfg80211: Clear "beacon_found" on regulatory restore · 899852af
      Paul Stewart 提交于
      Restore the default state to the "beacon_found" flag when
      the channel flags are restored.  Otherwise, we can end up
      with a channel that we can no longer transmit on even when
      we can see beacons on that channel.
      Signed-off-by: NPaul Stewart <pstew@chromium.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      899852af
    • S
      cfg80211: add channel flag to prohibit OFDM operation · 03f6b084
      Seth Forshee 提交于
      Currently the only way for wireless drivers to tell whether or not OFDM
      is allowed on the current channel is to check the regulatory
      information. However, this requires hodling cfg80211_mutex, which is not
      visible to the drivers.
      
      Other regulatory restrictions are provided as flags in the channel
      definition, so let's do similarly with OFDM. This patch adds a new flag,
      IEEE80211_CHAN_NO_OFDM, to tell drivers that OFDM on a channel is not
      allowed. This flag is set on any channels for which regulatory indicates
      that OFDM is prohibited.
      Signed-off-by: NSeth Forshee <seth.forshee@canonical.com>
      Tested-by: NArend van Spriel <arend@broadcom.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      03f6b084
    • E
      ipv4: route.c cleanup · e33cdac0
      Eric Dumazet 提交于
      Remove unused includes after IP cache removal
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e33cdac0
    • J
      bnx2x: fix mem leak when command is unknown · 8b6d5c09
      Jesper Juhl 提交于
      In bnx2x_mcast_enqueue_cmd() we'll leak the memory allocated to
      'new_cmd' if we hit the deafault case of the 'switch (cmd)'.
      Add a 'kfree(new_cmd)' to that case to avoid the leak.
      Signed-off-by: NJesper Juhl <jj@chaosbits.net>
      Acked-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8b6d5c09
    • F
      Fix unexpected SA hard expiration after changing date · e3c0d047
      Fan Du 提交于
      After SA is setup, one timer is armed to detect soft/hard expiration,
      however the timer handler uses xtime to do the math. This makes hard
      expiration occurs first before soft expiration after setting new date
      with big interval. As a result new child SA is deleted before rekeying
      the new one.
      Signed-off-by: NFan Du <fdu@windriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3c0d047
    • B
      tcp: Apply device TSO segment limit earlier · 1485348d
      Ben Hutchings 提交于
      Cache the device gso_max_segs in sock::sk_gso_max_segs and use it to
      limit the size of TSO skbs.  This avoids the need to fall back to
      software GSO for local TCP senders.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1485348d
    • B
      sfc: Fix maximum number of TSO segments and minimum TX queue size · 7e6d06f0
      Ben Hutchings 提交于
      Currently an skb requiring TSO may not fit within a minimum-size TX
      queue.  The TX queue selected for the skb may stall and trigger the TX
      watchdog repeatedly (since the problem skb will be retried after the
      TX reset).  This issue is designated as CVE-2012-3412.
      
      Set the maximum number of TSO segments for our devices to 100.  This
      should make no difference to behaviour unless the actual MSS is less
      than about 700.  Increase the minimum TX queue size accordingly to
      allow for 2 worst-case skbs, so that there will definitely be space
      to add an skb after we wake a queue.
      
      To avoid invalidating existing configurations, change
      efx_ethtool_set_ringparam() to fix up values that are too small rather
      than returning -EINVAL.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7e6d06f0
    • B
      net: Allow driver to limit number of GSO segments per skb · 30b678d8
      Ben Hutchings 提交于
      A peer (or local user) may cause TCP to use a nominal MSS of as little
      as 88 (actual MSS of 76 with timestamps).  Given that we have a
      sufficiently prodigious local sender and the peer ACKs quickly enough,
      it is nevertheless possible to grow the window for such a connection
      to the point that we will try to send just under 64K at once.  This
      results in a single skb that expands to 861 segments.
      
      In some drivers with TSO support, such an skb will require hundreds of
      DMA descriptors; a substantial fraction of a TX ring or even more than
      a full ring.  The TX queue selected for the skb may stall and trigger
      the TX watchdog repeatedly (since the problem skb will be retried
      after the TX reset).  This particularly affects sfc, for which the
      issue is designated as CVE-2012-3412.
      
      Therefore:
      1. Add the field net_device::gso_max_segs holding the device-specific
         limit.
      2. In netif_skb_features(), if the number of segments is too high then
         mask out GSO features to force fall back to software GSO.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      30b678d8
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 1a9b4993
      Linus Torvalds 提交于
      Pull MIPS updates from Ralf Baechle:
       "The lion share of this pull request are fixes for clk-related breakage
        caused by other changes during this merge window.  For some platforms
        the fix was as simple as selecting HAVE_CLK, for others like the
        Loongson 2 significant restructuring was required.
      
        The remainder are changes required to get the Lantiq code to work
        again."
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Loongson 2: Sort out clock managment.
        MIPS: Loongson 1: more clk support and add select HAVE_CLK
        MIPS: txx9: Fix redefinition of clk_* by adding select HAVE_CLK
        MIPS: BCM63xx: Fix redefinition of clk_* by adding select HAVE_CLK
        MIPS: AR7: Fix redefinition of clk_* by adding select HAVE_CLK
        MIPS: Lantiq: Platform specific CLK fixup
        MIPS: Lantiq: Add device_tree_init function
        MIPS: Lantiq: Fix interface clock and PCI control register offset
      1a9b4993
    • L
      Merge branch 'for-linus-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 1871e845
      Linus Torvalds 提交于
      Pull UML fixes from Richard Weinberger:
       "This patch set contains mostly fixes and cleanups.  The UML tty driver
        uses now tty_port and is no longer broken like hell  :-)"
      
      * 'for-linus-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Add arch/x86/um to MAINTAINERS
        um: pass siginfo to guest process
        um: fix ubd_file_size for read-only files
        um: pull interrupt_end() into userspace()
        um: split syscall_trace(), pass pt_regs to it
        um: switch UPT_SET_RETURN_VALUE and regs_return_value to pt_regs
        um: set BLK_CGROUP=y in defconfig
        um: remove count_lock
        um: fully use tty_port
        um: Remove dead code
        um: remove line_ioctl()
        TTY: um/line, use tty from tty_port
        TTY: um/line, add tty_port
      1871e845
    • L
      Merge branch 'dmaengine' of git://git.linaro.org/people/rmk/linux-arm · a6dc7725
      Linus Torvalds 提交于
      Pull ARM DMA engine updates from Russell King:
       "This looks scary at first glance, but what it is is:
         - a rework of the sa11x0 DMA engine driver merged during the previous
           cycle, to extract a common set of helper functions for DMA engine
           implementations.
         - conversion of amba-pl08x.c to use these helper functions.
         - addition of OMAP DMA engine driver (using these helper functions),
           and conversion of some of the OMAP DMA users to use DMA engine.
      
        Nothing in the helper functions is ARM specific, so I hope that other
        implementations can consolidate some of their code by making use of
        these helpers.
      
        This has been sitting in linux-next most of the merge cycle, and has
        been tested by several OMAP folk.  I've tested it on sa11x0 platforms,
        and given it my best shot on my broken platforms which have the
        amba-pl08x controller.
      
        The last point is the addition to feature-removal-schedule.txt, which
        will have a merge conflict.  Between myself and TI, we're planning to
        remove the old TI DMA implementation next year."
      
      Fix up trivial add/add conflicts in Documentation/feature-removal-schedule.txt
      and drivers/dma/{Kconfig,Makefile}
      
      * 'dmaengine' of git://git.linaro.org/people/rmk/linux-arm: (53 commits)
        ARM: 7481/1: OMAP2+: omap2plus_defconfig: enable OMAP DMA engine
        ARM: 7464/1: mmc: omap_hsmmc: ensure probe returns error if DMA channel request fails
        Add feature removal of old OMAP private DMA implementation
        mtd: omap2: remove private DMA API implementation
        mtd: omap2: add DMA engine support
        spi: omap2-mcspi: remove private DMA API implementation
        spi: omap2-mcspi: add DMA engine support
        ARM: omap: remove mmc platform data dma_mask and initialization
        mmc: omap: remove private DMA API implementation
        mmc: omap: add DMA engine support
        mmc: omap_hsmmc: remove private DMA API implementation
        mmc: omap_hsmmc: add DMA engine support
        dmaengine: omap: add support for cyclic DMA
        dmaengine: omap: add support for setting fi
        dmaengine: omap: add support for returning residue in tx_state method
        dmaengine: add OMAP DMA engine driver
        dmaengine: sa11x0-dma: add cyclic DMA support
        dmaengine: sa11x0-dma: fix DMA residue support
        dmaengine: PL08x: ensure all descriptors are freed when channel is released
        dmaengine: PL08x: get rid of write only pool_ctr and free_txd locking
        ...
      a6dc7725
    • L
      Merge branch 'audit' of git://git.linaro.org/people/rmk/linux-arm · 02a6ec6a
      Linus Torvalds 提交于
      Pull ARM audit/signal updates from Russell King:
       "ARM audit/signal handling updates from Al and Will.  This improves on
        the work Viro did last merge window, and sorts out some of the issues
        found with that work."
      
      * 'audit' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7475/1: sys_trace: allow all syscall arguments to be updated via ptrace
        ARM: 7474/1: get rid of TIF_SYSCALL_RESTARTSYS
        ARM: 7473/1: deal with handlerless restarts without leaving the kernel
        ARM: 7472/1: pull all work_pending logics into C function
        ARM: 7471/1: Revert "7442/1: Revert "remove unused restart trampoline""
        ARM: 7470/1: Revert "7443/1: Revert "new way of handling ERESTART_RESTARTBLOCK""
      02a6ec6a
    • L
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 9a2533c3
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "This fixes various issues found during July"
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7479/1: mm: avoid NULL dereference when flushing gate_vma with VIVT caches
        ARM: Fix undefined instruction exception handling
        ARM: 7480/1: only call smp_send_stop() on SMP
        ARM: 7478/1: errata: extend workaround for erratum #720789
        ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
        ARM: 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend
        ARM: 7468/1: ftrace: Trace function entry before updating index
        ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+
        ARM: 7466/1: disable interrupt before spinning endlessly
        ARM: 7465/1: Handle >4GB memory sizes in device tree and mem=size@start option
      9a2533c3
    • R
      um: Add arch/x86/um to MAINTAINERS · b070989a
      Richard Weinberger 提交于
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      b070989a
    • M
      um: pass siginfo to guest process · d3c1cfcd
      Martin Pärtel 提交于
      UML guest processes now get correct siginfo_t for SIGTRAP, SIGFPE,
      SIGILL and SIGBUS. Specifically, si_addr and si_code are now correct
      where previously they were si_addr = NULL and si_code = 128.
      Signed-off-by: NMartin Pärtel <martin.partel@gmail.com>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      d3c1cfcd
    • M
      um: fix ubd_file_size for read-only files · d4afcba9
      Martin Pärtel 提交于
      Made ubd_file_size not request write access. Fixes use of read-only images.
      Signed-off-by: NMartin Pärtel <martin.partel@gmail.com>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      d4afcba9
    • A
      um: pull interrupt_end() into userspace() · b8a42095
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      b8a42095
    • A
      um: split syscall_trace(), pass pt_regs to it · 1bfa2317
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      [richard@nod.at: Fixed some minor build issues]
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      1bfa2317
    • A
      a3170d2e
    • J
      mac80211: cancel mesh path timer · dd4c9260
      Johannes Berg 提交于
      The mesh path timer needs to be canceled when
      leaving the mesh as otherwise it could fire
      after the interface has been removed already.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      dd4c9260
    • J
      mac80211: clear timer bits when disconnecting · 2d9957cc
      Johannes Berg 提交于
      There's a corner case that can happen when we
      suspend with a timer running, then resume and
      disconnect. If we connect again, suspend and
      resume we might start timers that shouldn't be
      running. Reset the timer flags to avoid this.
      
      This affects both mesh and managed modes.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      2d9957cc
    • L
      Merge tag 'fbdev-updates-for-3.6' of git://github.com/schandinat/linux-2.6 · d4fdc325
      Linus Torvalds 提交于
      Pull fbdev updates from Florian Tobias Schandinat:
       - large updates for OMAP
         - support for LCD3 overlay manager (omap5)
         - omapdss output cleanup
         - removal of passive matrix LCD support as there are no drivers for
           such panels for DSS or DSS2 and nobody complained (cleanup)
       - large updates for SH Mobile
         - overlay support
         - separating MERAM (cache) from framebuffer driver
       - some updates for Exynos and da8xx-fb
       - various other small patches
      
      * tag 'fbdev-updates-for-3.6' of git://github.com/schandinat/linux-2.6: (78 commits)
        da8xx-fb: fix compile issue due to missing include
        fbdev: Make pixel_to_pat() failure mode more friendly
        da8xx-fb: do not turn ON LCD backlight unless LCDC is enabled
        fbdev: sh_mobile_lcdc: Fix vertical panning step
        video: exynos mipi dsi: Fix mipi dsi regulators handling issue
        video: da8xx-fb: do clock reset of revision 2 LCDC before enabling
        arm: da850: configure LCDC fifo threshold
        video: da8xx-fb: configure FIFO threshold to reduce underflow errors
        video: da8xx-fb: fix flicker due to 1 frame delay in updated frame
        video: da8xx-fb rev2: fix disabling of palette completion interrupt
        da8xx-fb: add missing FB_BLANK operations
        video: exynos_dp: use usleep_range instead of delay
        video: exynos_dp: check the only INTERLANE_ALIGN_DONE bit during Link Training
        fb: epson1355fb: Fix section mismatch
        video: exynos_dp: fix wrong DPCD address during Link Training
        video/smscufx: fix line counting in fb_write
        aty128fb: Fix coding style issues
        fbdev: sh_mobile_lcdc: Fix pan offset computation in YUV mode
        fbdev: sh_mobile_lcdc: Fix overlay registers update during pan operation
        fbdev: sh_mobile_lcdc: Support horizontal panning
        ...
      d4fdc325
    • L
      Merge tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9a51cf28
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes that have been found recently.  Most of
        the commits are regression fixes in HD-audio and some other random
        drivers."
      
      * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: snd-usb: fix clock source validity index
        ALSA: hda - Fix mute-LED GPIO initialization for IDT codecs
        ALSA: hda - Add descriptions for missing IDT 92HD83x models
        ALSA: hda - Fix polarity of mute LED on HP Mini 210
        ALSA: es1688 - freeup resources on init failure
        ALSA: hda - Workaround for silent output on VAIO Z with ALC889
        ALSA: hda - Fix WARNING from HDMI/DP parser
        ALSA: hda - Detach from converter at closing in patch_hdmi.c
        ALSA: hda - Fix mute-LED GPIO setup for HP Mini 210
        ALSA: mpu401: Fix missing initialization of irq field
        ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecs
      9a51cf28
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · a0e881b7
      Linus Torvalds 提交于
      Pull second vfs pile from Al Viro:
       "The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the
        deadlock reproduced by xfstests 068), symlink and hardlink restriction
        patches, plus assorted cleanups and fixes.
      
        Note that another fsfreeze deadlock (emergency thaw one) is *not*
        dealt with - the series by Fernando conflicts a lot with Jan's, breaks
        userland ABI (FIFREEZE semantics gets changed) and trades the deadlock
        for massive vfsmount leak; this is going to be handled next cycle.
        There probably will be another pull request, but that stuff won't be
        in it."
      
      Fix up trivial conflicts due to unrelated changes next to each other in
      drivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)
        delousing target_core_file a bit
        Documentation: Correct s_umount state for freeze_fs/unfreeze_fs
        fs: Remove old freezing mechanism
        ext2: Implement freezing
        btrfs: Convert to new freezing mechanism
        nilfs2: Convert to new freezing mechanism
        ntfs: Convert to new freezing mechanism
        fuse: Convert to new freezing mechanism
        gfs2: Convert to new freezing mechanism
        ocfs2: Convert to new freezing mechanism
        xfs: Convert to new freezing code
        ext4: Convert to new freezing mechanism
        fs: Protect write paths by sb_start_write - sb_end_write
        fs: Skip atime update on frozen filesystem
        fs: Add freezing handling to mnt_want_write() / mnt_drop_write()
        fs: Improve filesystem freezing handling
        switch the protection of percpu_counter list to spinlock
        nfsd: Push mnt_want_write() outside of i_mutex
        btrfs: Push mnt_want_write() outside of i_mutex
        fat: Push mnt_want_write() outside of i_mutex
        ...
      a0e881b7
    • R
      MIPS: Loongson 2: Sort out clock managment. · 95cf1468
      Ralf Baechle 提交于
      For unexplainable reasons the Loongson 2 clock API was implemented in a
      module so fixing this involved shifting large amounts of code around.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      95cf1468
    • L
      Merge branch 'for-3.6/drivers' of git://git.kernel.dk/linux-block · eff0d13f
      Linus Torvalds 提交于
      Pull block driver changes from Jens Axboe:
      
       - Making the plugging support for drivers a bit more sane from Neil.
         This supersedes the plugging change from Shaohua as well.
      
       - The usual round of drbd updates.
      
       - Using a tail add instead of a head add in the request completion for
         ndb, making us find the most completed request more quickly.
      
       - A few floppy changes, getting rid of a duplicated flag and also
         running the floppy init async (since it takes forever in boot terms)
         from Andi.
      
      * 'for-3.6/drivers' of git://git.kernel.dk/linux-block:
        floppy: remove duplicated flag FD_RAW_NEED_DISK
        blk: pass from_schedule to non-request unplug functions.
        block: stack unplug
        blk: centralize non-request unplug handling.
        md: remove plug_cnt feature of plugging.
        block/nbd: micro-optimization in nbd request completion
        drbd: announce FLUSH/FUA capability to upper layers
        drbd: fix max_bio_size to be unsigned
        drbd: flush drbd work queue before invalidate/invalidate remote
        drbd: fix potential access after free
        drbd: call local-io-error handler early
        drbd: do not reset rs_pending_cnt too early
        drbd: reset congestion information before reporting it in /proc/drbd
        drbd: report congestion if we are waiting for some userland callback
        drbd: differentiate between normal and forced detach
        drbd: cleanup, remove two unused global flags
        floppy: Run floppy initialization asynchronous
      eff0d13f
    • L
      Merge branch 'for-3.6/core' of git://git.kernel.dk/linux-block · 8cf1a3fc
      Linus Torvalds 提交于
      Pull core block IO bits from Jens Axboe:
       "The most complicated part if this is the request allocation rework by
        Tejun, which has been queued up for a long time and has been in
        for-next ditto as well.
      
        There are a few commits from yesterday and today, mostly trivial and
        obvious fixes.  So I'm pretty confident that it is sound.  It's also
        smaller than usual."
      
      * 'for-3.6/core' of git://git.kernel.dk/linux-block:
        block: remove dead func declaration
        block: add partition resize function to blkpg ioctl
        block: uninitialized ioc->nr_tasks triggers WARN_ON
        block: do not artificially constrain max_sectors for stacking drivers
        blkcg: implement per-blkg request allocation
        block: prepare for multiple request_lists
        block: add q->nr_rqs[] and move q->rq.elvpriv to q->nr_rqs_elvpriv
        blkcg: inline bio_blkcg() and friends
        block: allocate io_context upfront
        block: refactor get_request[_wait]()
        block: drop custom queue draining used by scsi_transport_{iscsi|fc}
        mempool: add @gfp_mask to mempool_create_node()
        blkcg: make root blkcg allocation use %GFP_KERNEL
        blkcg: __blkg_lookup_create() doesn't need radix preload
      8cf1a3fc
    • L
      Merge branch 'for-next' of git://neil.brown.name/md · fcff06c4
      Linus Torvalds 提交于
      Pull md updates from NeilBrown.
      
      * 'for-next' of git://neil.brown.name/md:
        DM RAID: Add support for MD RAID10
        md/RAID1: Add missing case for attempting to repair known bad blocks.
        md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE.
        md/raid1: don't abort a resync on the first badblock.
        md: remove duplicated test on ->openers when calling do_md_stop()
        raid5: Add R5_ReadNoMerge flag which prevent bio from merging at block layer
        md/raid1: prevent merging too large request
        md/raid1: read balance chooses idlest disk for SSD
        md/raid1: make sequential read detection per disk based
        MD RAID10: Export md_raid10_congested
        MD: Move macros from raid1*.h to raid1*.c
        MD RAID1: rename mirror_info structure
        MD RAID10: rename mirror_info structure
        MD RAID10: Fix compiler warning.
        raid5: add a per-stripe lock
        raid5: remove unnecessary bitmap write optimization
        raid5: lockless access raid5 overrided bi_phys_segments
        raid5: reduce chance release_stripe() taking device_lock
      fcff06c4
    • J
      locks: remove unused lm_release_private · 068535f1
      J. Bruce Fields 提交于
      In commit 3b6e2723 ("locks: prevent side-effects of
      locks_release_private before file_lock is initialized") we removed the
      last user of lm_release_private without removing the field itself.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      068535f1
  4. 01 8月, 2012 1 次提交