1. 03 2月, 2017 1 次提交
  2. 27 1月, 2017 1 次提交
  3. 19 1月, 2017 11 次提交
  4. 12 1月, 2017 1 次提交
  5. 10 11月, 2016 1 次提交
  6. 02 9月, 2016 1 次提交
    • J
      tty: serial: constify uart_ops structures · 069a47e5
      Julia Lawall 提交于
      Check for uart_ops structures that are only stored in the ops field of a
      uart_port structure.  This field is declared const, so uart_ops structures
      that have this property can be declared as const also.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct uart_ops i@p = { ... };
      
      @ok@
      identifier r.i;
      struct uart_port e;
      position p;
      @@
      e.ops = &i@p;
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct uart_ops e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct uart_ops i = { ... };
      // </smpl>
      Signed-off-by: NJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      069a47e5
  7. 27 6月, 2016 1 次提交
  8. 26 6月, 2016 10 次提交
  9. 08 3月, 2016 1 次提交
  10. 07 2月, 2016 6 次提交
  11. 08 1月, 2016 1 次提交
    • G
      serial: sh-sci: Remove cpufreq notifier to fix crash/deadlock · ff1cab37
      Geert Uytterhoeven 提交于
      The BSP team noticed that there is spin/mutex lock issue on sh-sci when
      CPUFREQ is used.  The issue is that the notifier function may call
      mutex_lock() while the spinlock is held, which can lead to a BUG().
      This may happen if CPUFREQ is changed while another CPU calls
      clk_get_rate().
      
      Taking the spinlock was added to the notifier function in commit
      e552de24 ("sh-sci: add platform device private data"), to
      protect the list of serial ports against modification during traversal.
      At that time the Common Clock Framework didn't exist yet, and
      clk_get_rate() just returned clk->rate without taking a mutex.
      Note that since commit d535a230 ("serial: sh-sci: Require a
      device per port mapping."), there's no longer a list of serial ports to
      traverse, and taking the spinlock became superfluous.
      
      To fix the issue, just remove the cpufreq notifier:
        1. The notifier doesn't work correctly: all it does is update stored
           clock rates; it does not update the divider in the hardware.
           The divider will only be updated when calling sci_set_termios().
           I believe this was broken back in 2004, when the old
           drivers/char/sh-sci.c driver (where the notifier did update the
           divider) was replaced by drivers/serial/sh-sci.c (where the
           notifier just updated port->uartclk).
           Cfr. full-history-linux commits 6f8deaef2e9675d9 ("[PATCH] sh: port
           sh-sci driver to the new API") and 3f73fe878dc9210a ("[PATCH]
           Remove old sh-sci driver").
        2. On modern SoCs, the sh-sci parent clock rate is no longer related
           to the CPU clock rate anyway, so using a cpufreq notifier is
           futile.
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ff1cab37
  12. 17 12月, 2015 5 次提交