1. 25 1月, 2012 2 次提交
    • M
      ARM: 7298/1: realview: fix mapping of MPCore private memory region · 34ae6c96
      Marc Zyngier 提交于
      Since commit 0536bdf3 (ARM: move iotable mappings within
      the vmalloc region), the RealView PB11MP cannot boot anymore.
      
      This is caused by the way the mappings are described on this
      platform (define replaced by hex values for clarity):
      
      {	/* GIC CPU interface mapping */
              .virtual        = IO_ADDRESS(0x1F000100),
              .pfn            = __phys_to_pfn(0x1F000100),
              .length         = SZ_4K,
              .type           = MT_DEVICE,
      }, {	/* GIC distributor mapping */
              .virtual        = IO_ADDRESS(0x1F001000),
              .pfn            = __phys_to_pfn(0x1F001000),
              .length         = SZ_4K,
              .type           = MT_DEVICE,
      }
      
      The first mapping ends up reserving two pages, and clashes with
      the second one, which triggers a BUG_ON in vm_area_add_early().
      
      In order to solve this problem, treat the MPCore private memory
      region (containing the SCU, the GIC and the TWD) as a single region,
      as described in the TRM:
      http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0360f/CACGDJJC.html
      
      The EB11MP is converted the same way, even if it manages to avoid
      the problem.
      
      Tested on both PB11MP and EB11MP.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      34ae6c96
    • R
      PCMCIA: fix sa1111 oops on remove · 171cf94c
      Russell King 提交于
      The sa1111 socket driver oopses when removed:
      
      Unable to handle kernel NULL pointer dereference at virtual address 000003b0
      pgd = c1b40000
      [000003b0] *pgd=00000000
      Internal error: Oops: 41b43005 [#1]
      Modules linked in:
      CPU: 0    Not tainted  (3.3.0-rc1+ #744)
      PC is at pcmcia_remove+0x3c/0x60
      LR is at pcmcia_remove+0x34/0x60
      
      This is because we try to dereference a NULL 's' to obtain the next
      pointer.  Fix this.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      171cf94c
  2. 23 1月, 2012 8 次提交
  3. 20 1月, 2012 9 次提交
    • F
      ARM: 7277/1: setup.c: Fix build warning by removing unneeded header file · 06e99051
      Fabio Estevam 提交于
      Fix the following build warning:
      
        CC      arch/arm/kernel/setup.o
      In file included from arch/arm/kernel/setup.c:39:
      arch/arm/include/asm/elf.h:102:1: warning: "vmcore_elf64_check_arch" redefined
      In file included from arch/arm/kernel/setup.c:24:
      include/linux/crash_dump.h:30:1: warning: this is the location of the previous definition
      
      Since commit 93a72052 (crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn)
      the inclusion of <linux/crash_dump.h> is no longer needed.
      
      Remove the inclusion of <linux/crash_dump.h> and the build warning is fixed.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      06e99051
    • K
      ARM: 7279/1: standardize /proc/iomem "Kernel code" name · a36d8e5b
      Kees Cook 提交于
      All other ports use "Kernel code" to identify the Kernel text segment
      in /proc/iomem. Change the ARM resources to do the same.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      a36d8e5b
    • R
      ARM: fix rcu stalls on SMP platforms · 7deabca0
      Russell King 提交于
      We can stall RCU processing on SMP platforms if a CPU sits in its idle
      loop for a long time.  This happens because we don't call irq_enter()
      and irq_exit() around generic_smp_call_function_interrupt() and
      friends.  Add the necessary calls, and remove the one from within
      ipi_timer(), so that they're all in a common place.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7deabca0
    • R
      ARM: vexpress: fix two section mismatch warnings · 94ae0275
      Russell King 提交于
      WARNING: vmlinux.o(.text+0x1bc9c): Section mismatch in reference from the function ct_ca9x4_init_cpu_map() to the function .init.text:scu_get_core_count()
      The function ct_ca9x4_init_cpu_map() references
      the function __init scu_get_core_count().
      
      WARNING: vmlinux.o(.text+0x1bce8): Section mismatch in reference from the function ct_ca9x4_init_cpu_map() to the function .init.text:set_smp_cross_call()
      The function ct_ca9x4_init_cpu_map() references
      the function __init set_smp_cross_call().
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      94ae0275
    • R
      ARM: fix a section mismatch warning with our use of memblock · bc2827d0
      Russell King 提交于
      Commit 716a3dc2 (ARM: Add arm_memblock_steal() to allocate memory
      away from the kernel) added a function which calls memblock_alloc().
      This causes a section conflict:
      
      WARNING: vmlinux.o(.text+0xc614): Section mismatch in reference from the function arm_memblock_steal() to the function .init.text:memblock_alloc()
      The function arm_memblock_steal() references
      the function __init memblock_alloc().
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      bc2827d0
    • R
      ARM: sa11x0: fix section mismatch in cpu-sa1100.c · 7a28b5a2
      Russell King 提交于
      WARNING: arch/arm/mach-sa1100/built-in.o(.data+0x11b8): Section mismatch in reference from the variable sa1100_driver to the function .init.text:sa1100_cpu_init()
      The variable sa1100_driver references
      the function __init sa1100_cpu_init()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7a28b5a2
    • R
      ARM: sa11x0: fix collie build error · 5f76559a
      Russell King 提交于
      f408c985 (GPIO: sa1100: implement proper gpiolib gpio_to_irq conversion)
      made gpio_to_irq() a function.  This breaks collie where it's used to
      initialize some static data.  Fix that by moving the initialization to
      the init code.
      
      arch/arm/mach-sa1100/collie.c:139: error: initializer element is not constant
      arch/arm/mach-sa1100/collie.c:139: error: (near initialization for 'collie_power_resource[0].start')
      arch/arm/mach-sa1100/collie.c:140: error: initializer element is not constant
      arch/arm/mach-sa1100/collie.c:140: error: (near initialization for 'collie_power_resource[0].end')
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5f76559a
    • R
      Revert "RTC: sa1100: remove redundant code of setting alarm" · 57270fcd
      Russell King 提交于
      This reverts commit 42874759.
      
      This wasn't tested as a stand-alone patch, and it has build errors
      without the following patches applied:
      
      drivers/rtc/rtc-sa1100.c: In function 'sa1100_rtc_set_alarm':
      drivers/rtc/rtc-sa1100.c:208: error: 'now' undeclared (first use in this function)
      drivers/rtc/rtc-sa1100.c:208: error: (Each undeclared identifier is reported only once
      drivers/rtc/rtc-sa1100.c:208: error: for each function it appears in.)
      drivers/rtc/rtc-sa1100.c:210: error: incompatible type for argument 3 of 'rtc_next_alarm_time'
      drivers/rtc/rtc-sa1100.c:211: error: 'time' undeclared (first use in this function)
      
      So it too gets reverted to bring us back to a working point.
      57270fcd
    • R
      Revert "RTC: sa1100: support sa1100, pxa and mmp soc families" · a0164a57
      Russell King 提交于
      This reverts commit 7cea0065.
      
      The sa1100 cleanups fatally broke the SA1100 RTC driver - the first
      hint that something is wrong are these compiler warnings:
      
      drivers/rtc/rtc-sa1100.c:42:1: warning: "RCNR" redefined
      In file included from arch/arm/mach-sa1100/include/mach/hardware.h:73,
                       from drivers/rtc/rtc-sa1100.c:35:
      arch/arm/mach-sa1100/include/mach/SA-1100.h:877:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:43:1: warning: "RTAR" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:876:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:44:1: warning: "RTSR" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:879:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:45:1: warning: "RTTR" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:878:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:47:1: warning: "RTSR_HZE" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:891:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:48:1: warning: "RTSR_ALE" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:890:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:49:1: warning: "RTSR_HZ" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:889:1: warning: this is the location of the previous definition
      drivers/rtc/rtc-sa1100.c:50:1: warning: "RTSR_AL" redefined
      arch/arm/mach-sa1100/include/mach/SA-1100.h:888:1: warning: this is the location of the previous definition
      
      and the second problem, which is far more severe, are the different
      register layouts, resulting in the wrong registers being read on
      SA11x0 platforms.  This patch adds:
      
      	#define RCNR           0x00    /* RTC Count Register */
      	#define RTAR           0x04    /* RTC Alarm Register */
      	#define RTSR           0x08    /* RTC Status Register */
      	#define RTTR           0x0c    /* RTC Timer Trim Register */
      
      but the SA11x0 registers are:
      
      	#define RTAR            __REG(0x90010000)  /* RTC Alarm Reg. */
      	#define RCNR            __REG(0x90010004)  /* RTC CouNt Reg. */
      	#define RTTR            __REG(0x90010008)  /* RTC Trim Reg. */
      	#define RTSR            __REG(0x90010010)  /* RTC Status Reg. */
      a0164a57
  4. 19 1月, 2012 14 次提交
    • R
      Revert "ARM: pxa: add dummy clock for sa1100-rtc" · a55b5ada
      Russell King 提交于
      This reverts commit 7557c175.
      
      This revert is necessary to revert the broken "RTC: sa1100:
      support sa1100, pxa and mmp soc families" change.
      a55b5ada
    • R
      Revert "ARM: sa1100: clean up of the clock support" · 8bd92669
      Russell King 提交于
      This reverts commit edf3ff5b.
      
      This revert is necessary to revert the broken "RTC: sa1100:
      support sa1100, pxa and mmp soc families" change.
      8bd92669
    • L
      uml: fix compile for x86-64 · 90a4c0f5
      Linus Torvalds 提交于
      Randy Dunlap reports that we get
      
        arch/x86/um/shared/sysdep/ptrace.h:7:20: error: redefinition of 'regs_return_value'
        arch/x86/um/shared/sysdep/ptrace.h:7:20: note: previous definition of 'regs_return_value' was here
      
      when compiling UML for x86-64.
      
      Stephen Rothwell root-caused it and says:
      
       "Caused by commit d7e7528b ("Audit: push audit success and retcode
        into arch ptrace.h") (another patch that was never in linux-next :-().
      
        This file now needs protection against double inclusion."
      
      so let's do as the man says.
      Reported-by: NRandy Dunlap <rdunlap@xenotime.net>
      Analyzed-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      90a4c0f5
    • L
      f59e842f
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 4ba3069f
      Linus Torvalds 提交于
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (26 commits)
        target: Set additional sense length field in sense data
        target: Remove legacy device status check from transport_execute_tasks
        target: Remove __transport_execute_tasks() for each processing context
        target: Remove extra se_device->execute_task_lock access in fast path
        target: Drop se_device TCQ queue_depth usage from I/O path
        target: Fix possible NULL pointer with __transport_execute_tasks
        target: Remove TFO->check_release_cmd() fabric API caller
        tcm_fc: Convert ft_send_work to use target_submit_cmd
        target: Add target_submit_cmd() for process context fabric submission
        target: Make target_put_sess_cmd use target_release_cmd_kref
        target: Set response format in INQUIRY response
        target: tcm_mod_builder: small fixups
        Documentation/target: Fix tcm_mod_builder.py build breakage
        target: remove overagressive ____cacheline_aligned annoations
        tcm_loop: bump max_sectors
        target/configs: remove trailing newline from udev_path and alias
        iscsi-target: fix chap identifier simple_strtoul usage
        target: remove useless casts
        target: simplify target_check_cdb_and_preempt
        target: Move core_scsi3_check_cdb_abort_and_preempt
        ...
      4ba3069f
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 507a03c1
      Linus Torvalds 提交于
      This includes initial support for the recently published ACPI 5.0 spec.
      In particular, support for the "hardware-reduced" bit that eliminates
      the dependency on legacy hardware.
      
      APEI has patches resulting from testing on real hardware.
      
      Plus other random fixes.
      
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)
        acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec
        intel_idle: Split up and provide per CPU initialization func
        ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2
        ACPI processor: Remove unneeded cpuidle_unregister_driver call
        intel idle: Make idle driver more robust
        intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle
        ACPI: kernel-parameters.txt : Add intel_idle.max_cstate
        intel_idle: remove redundant local_irq_disable() call
        ACPI processor: Fix error path, also remove sysdev link
        ACPI: processor: fix acpi_get_cpuid for UP processor
        intel_idle: fix API misuse
        ACPI APEI: Convert atomicio routines
        ACPI: Export interfaces for ioremapping/iounmapping ACPI registers
        ACPI: Fix possible alignment issues with GAS 'address' references
        ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)
        ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)
        ACPI: Store SRAT table revision
        ACPI, APEI, Resolve false conflict between ACPI NVS and APEI
        ACPI, Record ACPI NVS regions
        ACPI, APEI, EINJ, Refine the fix of resource conflict
        ...
      507a03c1
    • S
      tpm: fix (ACPI S3) suspend regression · be405411
      Stefan Berger 提交于
      This patch fixes an (ACPI S3) suspend regression introduced in commit
      68d6e671 ("tpm: Introduce function to poll for result of self test")
      and occurring with an Infineon TPM and tpm_tis and tpm_infineon drivers
      active.
      
      The suspend problem occurred if the TPM was disabled and/or deactivated
      and therefore the TPM_PCRRead checking the result of the (asynchronous)
      self test returned an error code which then caused the tpm_tis driver to
      become inactive and this then seemed to have negatively influenced the
      suspend support by the tpm_infineon driver...  Besides that the tpm_tis
      drive may stay active even if the TPM is disabled and/or deactivated.
      Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
      Tested-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NRajiv Andrade <srajiv@linux.vnet.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      be405411
    • L
      nvme: fix merge error due to change of 'make_request_fn' fn type · 93c3d65b
      Linus Torvalds 提交于
      The type of 'make_request_fn' changed in 5a7bbad2 ("block: remove
      support for bio remapping from ->make_request"), but the merge of the
      nvme driver didn't take that into account, and as a result the driver
      would compile with a warning:
      
        drivers/block/nvme.c: In function 'nvme_alloc_ns':
        drivers/block/nvme.c:1336:2: warning: passing argument 2 of 'blk_queue_make_request' from incompatible pointer type [enabled by default]
        include/linux/blkdev.h:830:13: note: expected 'void (*)(struct request_queue *, struct bio *)' but argument is of type 'int (*)(struct request_queue *, struct bio *)'
      
      It's benign, but the warning is annoying.
      Reported-by: NStephen Rothwell <sfr@canb.auug.org>
      Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      93c3d65b
    • S
      xen: using EXPORT_SYMBOL requires including export.h · 9ef9b20b
      Stephen Rothwell 提交于
      Fix these warnings:
      
        drivers/xen/biomerge.c:14:1: warning: data definition has no type or storage class [enabled by default]
        drivers/xen/biomerge.c:14:1: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' [-Wimplicit-int]
        drivers/xen/biomerge.c:14:1: warning: parameter names (without types) in function declaration [enabled by default]
      
      And this build error:
      
        ERROR: "xen_biovec_phys_mergeable" [drivers/block/nvme.ko] undefined!
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9ef9b20b
    • L
      Merge branch 'for-linus/i2c-33' of git://git.fluff.org/bjdooks/linux · aa303f2c
      Linus Torvalds 提交于
      * 'for-linus/i2c-33' of git://git.fluff.org/bjdooks/linux:
        i2c-eg20t: Change-company-name-OKI-SEMICONDUCTOR to LAPIS Semiconductor
        i2c-eg20t: Support new device LAPIS Semiconductor ML7831 IOH
        i2c-eg20t: modified the setting of transfer rate.
        i2c-eg20t: use i2c_add_numbered_adapter to get a fixed bus number
        i2c: OMAP: Add DT support for i2c controller
        I2C: OMAP: NACK without STP
        I2C: OMAP: correct SYSC register offset for OMAP4
      aa303f2c
    • L
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4a7c1ff2
      Linus Torvalds 提交于
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (57 commits)
        [media] as3645a: Fix compilation by including slab.h
        [media] s5p-fimc: Remove linux/version.h include from fimc-mdevice.c
        [media] s5p-mfc: Remove linux/version.h include from s5p_mfc.c
        [media] ds3000: using logical && instead of bitwise &
        [media] v4l2-ctrls: make control names consistent
        [media] DVB: dib0700, add support for Nova-TD LEDs
        [media] DVB: dib0700, add corrected Nova-TD frontend_attach
        [media] DVB: dib0700, separate stk7070pd initialization
        [media] DVB: dib0700, move Nova-TD Stick to a separate set
        [media] : add MODULE_FIRMWARE to dib0700
        [media] DVB-CORE: remove superfluous DTV_CMDs
        [media] s5p-jpeg: adapt to recent videobuf2 changes
        [media] s5p-g2d: fixed a bug in controls setting function
        [media] s5p-mfc: Fix volatile controls setup
        [media] drivers/media/video/s5p-mfc/s5p_mfc.c: adjust double test
        [media] drivers/media/video/s5p-fimc/fimc-capture.c: adjust double test
        [media] s5p-fimc: Fix incorrect control ID assignment
        [media] dvb_frontend: Don't call get_frontend() if idle
        [media] DocBook/dvbproperty.xml: Remove DTV_MODULATION from ISDB-T
        [media] DocBook/dvbproperty.xml: Fix ISDB-T delivery system parameters
        ...
      4a7c1ff2
    • L
      Merge branch 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9278e634
      Linus Torvalds 提交于
      * 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: Wait for WM8993 FLL to stabilise
        ASoC: core - Free platform DAPM context at platform removal.
        ASoC: dapm - Fix check for codec context in dapm_power_widgets().
        ASoC: sgtl5000: update author email address
        ASoC: Fix DMA channel leak in imx-pcm-dma-mx2 driver.
      9278e634
    • L
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 · d71f5be2
      Linus Torvalds 提交于
      SCSI updates on 20120118
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (49 commits)
        [SCSI] libfc: remove redundant timer init for fcp
        [SCSI] fcoe: Move fcoe_debug_logging from fcoe.h to fcoe.c
        [SCSI] libfc: Declare local functions static
        [SCSI] fcoe: fix regression on offload em matching function for initiator/target
        [SCSI] qla4xxx: Update driver version to 5.02.00-k12
        [SCSI] qla4xxx: Cleanup modinfo display
        [SCSI] qla4xxx: Update license
        [SCSI] qla4xxx: Clear the RISC interrupt bit during FW init
        [SCSI] qla4xxx: Added error logging for firmware abort
        [SCSI] qla4xxx: Disable generating pause frames in case of FW hung
        [SCSI] qla4xxx: Temperature monitoring for ISP82XX core.
        [SCSI] megaraid: fix sparse warnings
        [SCSI] sg: convert to kstrtoul_from_user()
        [SCSI] don't change sdev starvation list order without request dispatched
        [SCSI] isci: fix, prevent port from getting stuck in the 'configuring' state
        [SCSI] isci: fix start OOB
        [SCSI] isci: fix io failures while wide port links are coming up
        [SCSI] isci: allow more time for wide port targets
        [SCSI] isci: enable wide port targets
        [SCSI] isci: Fix IO fails when pull cable from phy in x4 wideport in MPC mode.
        ...
      d71f5be2
    • L
      Merge git://git.infradead.org/users/willy/linux-nvme · 92b5abbb
      Linus Torvalds 提交于
      * git://git.infradead.org/users/willy/linux-nvme: (105 commits)
        NVMe: Set number of queues correctly
        NVMe: Version 0.8
        NVMe: Set queue flags correctly
        NVMe: Simplify nvme_unmap_user_pages
        NVMe: Mark the end of the sg list
        NVMe: Fix DMA mapping for admin commands
        NVMe: Rename IO_TIMEOUT to NVME_IO_TIMEOUT
        NVMe: Merge the nvme_bio and nvme_prp data structures
        NVMe: Change nvme_completion_fn to take a dev
        NVMe: Change get_nvmeq to take a dev instead of a namespace
        NVMe: Simplify completion handling
        NVMe: Update Identify Controller data structure
        NVMe: Implement doorbell stride capability
        NVMe: Version 0.7
        NVMe: Don't probe namespace 0
        Fix calculation of number of pages in a PRP List
        NVMe: Create nvme_identify and nvme_get_features functions
        NVMe: Fix memory leak in nvme_dev_add()
        NVMe: Fix calls to dma_unmap_sg
        NVMe: Correct sg list setup in nvme_map_user_pages
        ...
      92b5abbb
  5. 18 1月, 2012 7 次提交