1. 13 5月, 2014 5 次提交
  2. 06 5月, 2014 2 次提交
  3. 01 5月, 2014 26 次提交
    • K
      clk: qcom: Various fixes for MSM8960's global clock controller · 2c07e3c7
      Kumar Gala 提交于
      * Remove CE2_SLEEP_CLK, doesn't exist on 8960 family SoCs
      * Fix incorrect offset for PMIC_SSBI2_RESET
      * Fix typo:
      	SIC_TIC -> SPS_TIC_H
      	SFAB_ADM0_M2_A_CLK -> SFAB_ADM0_M2_H_CLK
      * Fix naming convention:
      	SFAB_CFPB_S_HCLK -> SFAB_CFPB_S_H_CLK
      	SATA_SRC_CLK -> SATA_CLK_SRC
      Signed-off-by: NKumar Gala <galak@codeaurora.org>
      Reviewed-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      2c07e3c7
    • K
      clk: qcom: Add basic support for APQ8064 global clock controller clocks · 2d85a713
      Kumar Gala 提交于
      The APQ8064 and MSM8960 share a significant amount of clock data and
      code between the two SoCs.  Rather than duplicating the data we just add
      support for a unqiue APQ8064 clock table into the MSM8960 code.
      
      For now add just enough clocks to get a basic serial port going on an
      APQ8064 device.
      Signed-off-by: NKumar Gala <galak@codeaurora.org>
      Reviewed-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      [mturquette@linaro.org: trivial conflict due to missing ipq8064 support]
      2d85a713
    • S
      clk: qcom: Consolidate common probe code · 49fc825f
      Stephen Boyd 提交于
      Most of the probe code is the same between all the different
      clock controllers. Consolidate the code into a common.c file.
      This makes changes to the common probe parts easier and reduces
      chances for bugs.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      49fc825f
    • S
      clk: Ignore error and NULL pointers passed to clk_{unprepare, disable}() · 63589e92
      Stephen Boyd 提交于
      This simplifies error paths in drivers that use optional clocks
      by allowing the NULL or error pointer to be passed
      unconditionally.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      63589e92
    • S
      clk: Consolidate recalc rate logic · 8f2c2db1
      Stephen Boyd 提交于
      The same if-else statement exists four times to recalculate the
      rate of a clock. Consolidate this logic into a single function to
      save some lines.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      8f2c2db1
    • S
      clk: Don't check for missing ops in clk_set_parent() · 86a61234
      Stephen Boyd 提交于
      We dereference clk->ops during clock registration so this check
      for NULL ops can't possibly ever be true.
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      86a61234
    • A
      ARM: dts: use real clocks for bcm21664 · 8d90c5af
      Alex Elder 提交于
      Replace the "fake" fixed-rate clocks used previously for the
      bcm21664 family with "real" ones.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Acked-by: NMatt Porter <mporter@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      8d90c5af
    • A
      clk: bcm21664: use common clock framework · 7d3723ba
      Alex Elder 提交于
      Define the set of CCUs and provided clocks sufficient to satisfy the
      needs of all the existing clock references for BCM21664.  Replace
      the "fake" fixed-rate clocks used previously with "real" ones.
      
      Note that only the minimal set of these clocks and CCUs is defined
      here.  More clock definitions will need to be added as required by
      the addition of additional drivers.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      7d3723ba
    • A
      ARM: dts: define clock binding for bcm21664 · 7f2ce168
      Alex Elder 提交于
      Document the device tree binding for Broadcom BCM28164 clock control
      units and clocks.  This SoC uses Kona CCUs, similar to the BCM281XX
      SoC family.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      7f2ce168
    • A
      ARM: dts: revise kona clock binding document · 5bcb5926
      Alex Elder 提交于
      The next patch defines a binding for a new Broadcom SoC that uses
      Kona style CCUs for its clocks.  Update the generic Kona clock
      binding document so it's more natural to accomodate the definitions
      of additional SoC families.
      
      Specifically:
          - Define the compatible string values generically, referring
            to specific per-model values later in the document.
          - Put the device tree example immediately after the required
            properties listing, before the tables of SoC-specific values.
          - Clearly identify the start of the section defining specific
            values related to the BCM281XX family
          - Add a list of the specific BCM281XX family compatible strings.
          - Reword the description of the table slightly.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      5bcb5926
    • A
      clk: bcm281xx: move compatible string definitions · 0bdab78b
      Alex Elder 提交于
      The Broadcom 281xx clock code uses a #define for the compatible
      string for it's clock control units (CCUs).  Rather than defining
      those in the C source file, define them in the header file that's
      shared by both the code and the device tree source file (along with
      all the clock ids).
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      0bdab78b
    • A
      clk: bcm281xx: add clock hysteresis support · dc613840
      Alex Elder 提交于
      Add support for clock gate hysteresis control.  For now, if it's
      defined for a clock, it's enabled.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      dc613840
    • A
      clk: bcm281xx: add clock policy support · a597facc
      Alex Elder 提交于
      Add support for CCU policy engine control, and also for setting the
      mask bits for bus clocks that require a policy change to get
      activated.  This includes adding validity checking framework for
      CCUs, to validate the policy fields if defined.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      a597facc
    • A
      clk: bcm281xx: define CCU clock data statically · 03548ec0
      Alex Elder 提交于
      Rather than "manually" setting up each CCU's clock entries at run
      time, define a flexible array of generic Kona clock structures
      within the CCU structure itself.  Each of these entries contains
      generic kona clock information (like its CCU pointer and clock
      framework initialization data).  Each also has a pointer to a
      structure contianing clock type-dependent initialization data
      (like register definitions).
      
      Since we'll iterate over these arrays we need to be sure they have
      slots for all potential clock index values.  (E.g. for the root CCU
      we must have at least BCM281XX_ROOT_CCU_CLOCK_COUNT slots.)  To
      ensure this we always define an extra entry and fill it using the
      special initializer LAST_KONA_CLK.
      
      Just about everything we need to know about a clock can be defined
      statically.  As a result, kona_clk_setup() can be changed to take
      just a kona_clk structure as its argument, and peri_clk_setup() can
      be simplified.  With the information pre-defined we are also able
      to handle most clock setup genericially.  We can do away with the
      CCU-specific callback functions that previously were needed to set
      up the entries in CCU's clock array.
      
      Move the definition of the ccu_data structure down in "clk-kona.h"
      to avoid a forward dependency.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      03548ec0
    • A
      clk: bcm281xx: initialize CCU structures statically · b12151ca
      Alex Elder 提交于
      We know up front how many CCU's we'll support, so there's no need to
      allocate their data structures dynamically.  Define a macro
      KONA_CCU_COMMON() to simplify the initialization of many of the
      fields in a ccu_data structure.  Pass the address of a statically
      defined CCU structure to kona_dt_ccu_setup() rather than having that
      function allocate one.
      
      We also know at build time how many clocks a given CCU will provide,
      though the number of of them for each CCU is different.  Record the
      number of clocks we need in the CCU's clk_onecell_data struct
      (which is used when we register the CCU with the common clock code
      as a clock provider).  Rename that struct field "clk_data" (because
      "data" alone gets a little confusing).
      
      Use the known clock count to move the allocation of each CCU's
      clocks array into ccu_clks_setup() rather than having each CCU's
      setup callback function do it.
      
      (The real motivation behind all of this is that we'll be doing some
      static initialization of some additional CCU-specific data soon.)
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      b12151ca
    • A
      clk: bcm281xx: change some symbol names · 9d3d87c7
      Alex Elder 提交于
      As I developed the bcm281xx clock code I understood there were
      restrictions on device tree "compatible" strings names, and as a
      result "bcm11351" was used in places despite the part family being
      more properly called "bcm281xx".  This can be a little confusing.
      
      In some cases I went to far and things using "bcm11351" when that
      was not necessary.
      
      This patch remedies this.  It renames the symbol used to define the
      "compatible" string (but not its value) so it uses "BCM281XX".
      Similarly, the name names provided to the CLK_OF_DECLARE() macro
      are changed, hoping to minimize the number of places that the
      confusing "11351" string is used.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      9d3d87c7
    • A
      clk: bcm281xx: use init_data.name for clock name · e7563252
      Alex Elder 提交于
      Use the init_data.name field to hold the name of a Kona clock rather
      than duplicating it.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      e7563252
    • A
      clk: bcm281xx: warn if ccu_wait_bit() fails · 4bac65ca
      Alex Elder 提交于
      Don't let a failure of ccu_wait_bit() go unnoticed.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      4bac65ca
    • M
      clk: divider: Optimize clk_divider_bestdiv loop · 0e2de78e
      Maxime COQUELIN 提交于
      Currently, the for-loop used to try all the different dividers to find the
      one that best fit tries all the values from 1 to max_div, incrementing by one.
      In case of power-of-two, or table based divider, the loop isn't optimal.
      
      Instead of incrementing by one, this patch provides directly the next divider.
      Signed-off-by: NMaxime Coquelin <maxime.coquelin@st.com>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      0e2de78e
    • M
      clk: divider: Add round to closest divider · 774b5143
      Maxime COQUELIN 提交于
      In some cases, we want to be able to round the divider to the closest one,
      instead than rounding up.
      
      This patch adds a new CLK_DIVIDER_ROUND_CLOSEST flag to specify the divider
      has to round to closest div, keeping rounding up as de default behaviour.
      Signed-off-by: NMaxime Coquelin <maxime.coquelin@st.com>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      774b5143
    • S
      clk: Fix slab corruption in clk_unregister() · 874f224c
      Stephen Boyd 提交于
      When a clock is unregsitered, we iterate over the list of
      children and reparent them to NULL (i.e. orphan list). While
      iterating the list, we should use the safe iterators because the
      children list for this clock is changing when we reparent the
      children to NULL. Failure to iterate safely can lead to slab
      corruption like this:
      
      =============================================================================
      BUG kmalloc-128 (Not tainted): Poison overwritten
      -----------------------------------------------------------------------------
      
      Disabling lock debugging due to kernel taint
      INFO: 0xed0c4900-0xed0c4903. First byte 0x0 instead of 0x6b
      INFO: Allocated in clk_register+0x20/0x1bc age=297 cpu=2 pid=70
       __slab_alloc.isra.39.constprop.42+0x410/0x454
       kmem_cache_alloc_trace+0x200/0x24c
       clk_register+0x20/0x1bc
       devm_clk_register+0x34/0x68
       0xbf0000f0
       platform_drv_probe+0x18/0x48
       driver_probe_device+0x94/0x360
       __driver_attach+0x94/0x98
       bus_for_each_dev+0x54/0x88
       bus_add_driver+0xe8/0x204
       driver_register+0x78/0xf4
       do_one_initcall+0xc4/0x17c
       load_module+0x19ac/0x2294
       SyS_init_module+0xa4/0x110
       ret_fast_syscall+0x0/0x48
      INFO: Freed in clk_unregister+0xd4/0x140 age=23 cpu=2 pid=73
       __slab_free+0x38/0x41c
       clk_unregister+0xd4/0x140
       release_nodes+0x164/0x1d8
       __device_release_driver+0x60/0xb0
       driver_detach+0xb4/0xb8
       bus_remove_driver+0x5c/0xc4
       SyS_delete_module+0x148/0x1d8
       ret_fast_syscall+0x0/0x48
      INFO: Slab 0xeec50b90 objects=25 used=0 fp=0xed0c5400 flags=0x4080
      INFO: Object 0xed0c48c0 @offset=2240 fp=0xed0c4a00
      
      Bytes b4 ed0c48b0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
      Object ed0c48c0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c48d0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c48e0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c48f0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c4900: 00 00 00 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  ....kkkkkkkkkkkk
      Object ed0c4910: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c4920: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      Object ed0c4930: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5  kkkkkkkkkkkkkkk.
      Redzone ed0c4940: bb bb bb bb                                      ....
      Padding ed0c49e8: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
      Padding ed0c49f8: 5a 5a 5a 5a 5a 5a 5a 5a                          ZZZZZZZZ
      CPU: 3 PID: 75 Comm: mdev Tainted: G    B         3.14.0-11033-g2054ba5ca781 #35
      [<c0014be0>] (unwind_backtrace) from [<c0012240>] (show_stack+0x10/0x14)
      [<c0012240>] (show_stack) from [<c04b74a0>] (dump_stack+0x70/0xbc)
      [<c04b74a0>] (dump_stack) from [<c00f7a78>] (check_bytes_and_report+0xbc/0x100)
      [<c00f7a78>] (check_bytes_and_report) from [<c00f7c48>] (check_object+0x18c/0x218)
      [<c00f7c48>] (check_object) from [<c00f7efc>] (__free_slab+0x104/0x144)
      [<c00f7efc>] (__free_slab) from [<c04b6668>] (__slab_free+0x3dc/0x41c)
      [<c04b6668>] (__slab_free) from [<c014c008>] (load_elf_binary+0x88/0x12b4)
      [<c014c008>] (load_elf_binary) from [<c0105a44>] (search_binary_handler+0x78/0x18c)
      [<c0105a44>] (search_binary_handler) from [<c0106fc0>] (do_execve+0x490/0x5dc)
      [<c0106fc0>] (do_execve) from [<c0036b8c>] (____call_usermodehelper+0x134/0x168)
      [<c0036b8c>] (____call_usermodehelper) from [<c000f048>] (ret_from_fork+0x14/0x2c)
      FIX kmalloc-128: Restoring 0xed0c4900-0xed0c4903=0x6b
      
      Fixes: fcb0ee6a (clk: Implement clk_unregister)
      Cc: Jiada Wang <jiada_wang@mentor.com>
      Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      Cc: stable@vger.kernel.org
      874f224c
    • S
      clk: Fix double free due to devm_clk_register() · 293ba3b4
      Stephen Boyd 提交于
      Now that clk_unregister() frees the struct clk we're
      unregistering we'll free memory twice: first we'll call kfree()
      in __clk_release() with an address kmalloc doesn't know about and
      second we'll call kfree() in the devres layer. Remove the
      allocation of struct clk in devm_clk_register() and let
      clk_release() handle it. This fixes slab errors like:
      
      =============================================================================
      BUG kmalloc-128 (Not tainted): Invalid object pointer 0xed08e8d0
      -----------------------------------------------------------------------------
      
      Disabling lock debugging due to kernel taint
      INFO: Slab 0xeec503f8 objects=25 used=15 fp=0xed08ea00 flags=0x4081
      CPU: 2 PID: 73 Comm: rmmod Tainted: G    B         3.14.0-11032-g526e9c764381 #34
      [<c0014be0>] (unwind_backtrace) from [<c0012240>] (show_stack+0x10/0x14)
      [<c0012240>] (show_stack) from [<c04b74dc>] (dump_stack+0x70/0xbc)
      [<c04b74dc>] (dump_stack) from [<c00f6778>] (slab_err+0x74/0x84)
      [<c00f6778>] (slab_err) from [<c04b6278>] (free_debug_processing+0x2cc/0x31c)
      [<c04b6278>] (free_debug_processing) from [<c04b6300>] (__slab_free+0x38/0x41c)
      [<c04b6300>] (__slab_free) from [<c03931bc>] (clk_unregister+0xd4/0x140)
      [<c03931bc>] (clk_unregister) from [<c02fb774>] (release_nodes+0x164/0x1d8)
      [<c02fb774>] (release_nodes) from [<c02f8698>] (__device_release_driver+0x60/0xb0)
      [<c02f8698>] (__device_release_driver) from [<c02f9080>] (driver_detach+0xb4/0xb8)
      [<c02f9080>] (driver_detach) from [<c02f8480>] (bus_remove_driver+0x5c/0xc4)
      [<c02f8480>] (bus_remove_driver) from [<c008c9b8>] (SyS_delete_module+0x148/0x1d8)
      [<c008c9b8>] (SyS_delete_module) from [<c000ef80>] (ret_fast_syscall+0x0/0x48)
      FIX kmalloc-128: Object at 0xed08e8d0 not freed
      
      Fixes: fcb0ee6a (clk: Implement clk_unregister)
      Cc: Jiada Wang <jiada_wang@mentor.com>
      Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      Cc: stable@vger.kernel.org
      293ba3b4
    • M
      Merge tag 'socfpga-clk-fix-for-3.15' of... · 2aa6dd07
      Mike Turquette 提交于
      Merge tag 'socfpga-clk-fix-for-3.15' of git://git.rocketboards.org/linux-socfpga-next into clk-fixes-socfpga
      
      clk: socfpga: clock fix for v3.15
      
      Currently on 3.15-rc1, the SOCFPGA platform is unable to boot. This patch
      fixes the issue and allows the platform to boot.
      2aa6dd07
    • D
      clk: socfpga: fix clock driver for 3.15 · a30d27ed
      Dinh Nguyen 提交于
      commit [1771b10d clk: respect the clock dependencies in of_clk_init]
      exposed a flaw in the socfpga clock driver and prevents the platform
      from booting on 3.15-rc1.
      
      Because the "altr,clk-mgr" is not really a clock, it should not be using
      CLK_OF_DECLARE, instead we should be mapping the clk-mgr's base address
      one of the functional clock init function. Use the socfpga_pll_init function
      to map the clk_mgr_base_addr as this clock should always be initialized first.
      Signed-off-by: NDinh Nguyen <dinguyen@altera.com>
      Tested-by: NPavel Machek <pavel@denx.de>
      a30d27ed
    • M
      clk: divider: Fix best div calculation for power-of-two and table dividers · dd23c2cd
      Maxime COQUELIN 提交于
      The divider returned by clk_divider_bestdiv() is likely to be invalid in case
      of power-of-two and table dividers when CLK_SET_RATE_PARENT flag isn't set.
      
      Fixes boot on STiH416 platform.
      Signed-off-by: NMaxime Coquelin <maxime.coquelin@st.com>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      [mturquette@linaro.org: trivial merge conflict & updated changelog]
      dd23c2cd
    • A
      clk: bcm281xx: don't use unnamed structs or unions · e813d49d
      Alex Elder 提交于
      The Broadcom Kona clock code, as originally written, made use of
      unnamed union and struct fields.  This is a feature present in C11,
      and is a GNU extension otherwise.  It worked very well for me.
      
      Unfortunately, Russell King reported that this feature was not
      supported in a build environment he used, which meant attempting
      to build this code failed spectacularly.
      
      Add names to these unnamed fields, and update the code accordingly.
      Reported-by: NRussell King <linux@arm.linux.org.uk>
      Tested-by: NMarkus Mayer <markus.mayer@linaro.org>
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Signed-off-by: NMike Turquette <mturquette@linaro.org>
      e813d49d
  4. 28 4月, 2014 7 次提交
    • L
      Linux 3.15-rc3 · d1db0eea
      Linus Torvalds 提交于
      d1db0eea
    • W
      word-at-a-time: avoid undefined behaviour in zero_bytemask macro · ec6931b2
      Will Deacon 提交于
      The asm-generic, big-endian version of zero_bytemask creates a mask of
      bytes preceding the first zero-byte by left shifting ~0ul based on the
      position of the first zero byte.
      
      Unfortunately, if the first (top) byte is zero, the output of
      prep_zero_mask has only the top bit set, resulting in undefined C
      behaviour as we shift left by an amount equal to the width of the type.
      As it happens, GCC doesn't manage to spot this through the call to fls(),
      but the issue remains if architectures choose to implement their shift
      instructions differently.
      
      An example would be arch/arm/ (AArch32), where LSL Rd, Rn, #32 results
      in Rd == 0x0, whilst on arch/arm64 (AArch64) LSL Xd, Xn, #64 results in
      Xd == Xn.
      
      Rather than check explicitly for the problematic shift, this patch adds
      an extra shift by 1, replacing fls with __fls. Since zero_bytemask is
      never called with a zero argument (has_zero() is used to check the data
      first), we don't need to worry about calling __fls(0), which is
      undefined.
      
      Cc: <stable@vger.kernel.org>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ec6931b2
    • L
      Merge branch 'safe-dirty-tlb-flush' · ac6c9e2b
      Linus Torvalds 提交于
      This merges the patch to fix possible loss of dirty bit on munmap() or
      madvice(DONTNEED).  If there are concurrent writers on other CPU's that
      have the unmapped/unneeded page in their TLBs, their writes to the page
      could possibly get lost if a third CPU raced with the TLB flush and did
      a page_mkclean() before the page was fully written.
      
      Admittedly, if you unmap() or madvice(DONTNEED) an area _while_ another
      thread is still busy writing to it, you deserve all the lost writes you
      could get.  But we kernel people hold ourselves to higher quality
      standards than "crazy people deserve to lose", because, well, we've seen
      people do all kinds of crazy things.
      
      So let's get it right, just because we can, and we don't have to worry
      about it.
      
      * safe-dirty-tlb-flush:
        mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
      ac6c9e2b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 33c0022f
      Linus Torvalds 提交于
      Pull btrfs fixes from Chris Mason.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: limit the path size in send to PATH_MAX
        Btrfs: correctly set profile flags on seqlock retry
        Btrfs: use correct key when repeating search for extent item
        Btrfs: fix inode caching vs tree log
        Btrfs: fix possible memory leaks in open_ctree()
        Btrfs: avoid triggering bug_on() when we fail to start inode caching task
        Btrfs: move btrfs_{set,clear}_and_info() to ctree.h
        btrfs: replace error code from btrfs_drop_extents
        btrfs: Change the hole range to a more accurate value.
        btrfs: fix use-after-free in mount_subvol()
      33c0022f
    • L
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 2b9d1c05
      Linus Torvalds 提交于
      Pull arm fixes from Russell King:
       "A number of fixes for the PJ4/iwmmxt changes which arm-soc forced me
        to take during the merge window.  This stuff should have been better
        tested and sorted out *before* the merge window"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8042/1: iwmmxt: allow to build iWMMXt on Marvell PJ4B
        ARM: 8041/1: pj4: fix cpu_is_pj4 check
        ARM: 8040/1: pj4: properly detect existence of iWMMXt coprocessor
        ARM: 8039/1: pj4: enable iWMMXt only if CONFIG_IWMMXT is set
        ARM: 8038/1: iwmmxt: explicitly check for supported architectures
      2b9d1c05
    • L
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · afa3cad7
      Linus Torvalds 提交于
      Pull arm64 fixes from Catalin Marinas:
       - compat renameat2 syscall wiring and __NR_compat_syscalls fix
       - TLB fix for transparent huge pages following switch to generic
         mmu_gather
       - spinlock initialisation for init_mm's context
       - move of_clk_init() earlier
       - Kconfig duplicate entry fix
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: init: Move of_clk_init to time_init
        arm64: initialize spinlock for init_mm's context
        arm64: debug: remove noisy, pointless warning
        arm64: mm: Add THP TLB entries to general mmu_gather
        arm64: add renameat2 compat syscall
        ARM64: Remove duplicated Kconfig entry for "kernel/power/Kconfig"
        arm64: __NR_compat_syscalls fix
      afa3cad7
    • L
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d9e9e8e2
      Linus Torvalds 提交于
      Pull irq fixes from Thomas Gleixner:
       "A slighlty large fix for a subtle issue in the CPU hotplug code of
        certain ARM SoCs, where the not yet online cpu needs to setup the cpu
        local timer and needs to set the interrupt affinity to itself.
        Setting interrupt affinity to a not online cpu is prohibited and
        therefor the timer interrupt ends up on the wrong cpu, which leads to
        nasty complications.
      
        The SoC folks tried to hack around that in the SoC code in some more
        than nasty ways.  The proper solution is to have a way to enforce the
        affinity setting to a not online cpu.  The core patch to the genirq
        code provides that facility and the follow up patches make use of it
        in the GIC interrupt controller and the exynos timer driver.
      
        The change to the core code has no implications to existing users,
        except for the rename of the locked function and therefor the
        necessary fixup in mips/cavium.  Aside of that, no runtime impact is
        possible, as none of the existing interrupt chips implements anything
        which depends on the force argument of the irq_set_affinity()
        callback"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: Exynos_mct: Register clock event after request_irq()
        clocksource: Exynos_mct: Use irq_force_affinity() in cpu bringup
        irqchip: Gic: Support forced affinity setting
        genirq: Allow forcing cpu affinity of interrupts
      d9e9e8e2