Skip to content
  1. Dec 23, 2015
  2. Dec 17, 2015
  3. Dec 16, 2015
    • Daniel Axtens's avatar
      powerpc: Remove broken GregorianDay() · 00b912b0
      Daniel Axtens authored
      
      
      GregorianDay() is supposed to calculate the day of the week
      (tm->tm_wday) for a given day/month/year. In that calcuation it
      indexed into an array called MonthOffset using tm->tm_mon-1. However
      tm_mon is zero-based, not one-based, so this is off-by-one. It also
      means that every January, GregoiranDay() will access element -1 of
      the MonthOffset array.
      
      It also doesn't appear to be a correct algorithm either: see in
      contrast kernel/time/timeconv.c's time_to_tm function.
      
      It's been broken forever, which suggests no-one in userland uses
      this. It looks like no-one in the kernel uses tm->tm_wday either
      (see e.g. drivers/rtc/rtc-ds1305.c:319).
      
      tm->tm_wday is conventionally set to -1 when not available in
      hardware so we can simply set it to -1 and drop the function.
      (There are over a dozen other drivers in drivers/rtc that do
      this.)
      
      Found using UBSAN.
      
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Andrew Morton <akpm@linux-foundation.org> # as an example of what UBSan finds.
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
      Cc: rtc-linux@googlegroups.com
      Signed-off-by: default avatarDaniel Axtens <dja@axtens.net>
      Acked-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      00b912b0
  4. Dec 14, 2015
    • Rashmica Gupta's avatar
      selftests/powerpc: Add test to check if VSRs are corrupted · 5f337e3e
      Rashmica Gupta authored
      
      
      When a transaction is aborted, VSR values should rollback to the
      checkpointed values before the transaction began. VSRs used elsewhere in
      the kernel during a transaction, or while the transaction is suspended
      should not affect the checkpointed values.
      
      Prior to the bug fix in commit d31626f7 ("powerpc: Don't corrupt
      transactional state when using FP/VMX in kernel") when VMX was requested
      by the kernel the .vr_state (which held the checkpointed state of VSRs
      before the transaction) was overwritten with the current state from
      outside the transation. Thus if the transaction did not complete, the
      VSR values would be "rolled back" to potentially incorrect values.
      
      Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      5f337e3e
    • Rashmica Gupta's avatar
      powerpc/xmon: Append linux_banner to exception information in xmon. · eb925d64
      Rashmica Gupta authored
      
      
      Currently if you are in xmon without an oops etc. to view the kernel
      version you have to type "d $linux_banner" - not necessarily obvious. As
      this is useful information, append to the output of "e" command.
      
      Example output:
        $mon> e
        cpu 0x1: Vector: 0  at [c0000000f879ba80]
            pc: c000000000081718: sysrq_handle_xmon+0x68/0x80
            lr: c000000000081718: sysrq_handle_xmon+0x68/0x80
            sp: c0000000f879bbe0
           msr: 8000000000009033
          current = 0xc0000000f604d5c0
          paca    = 0xc00000000fdc0480	 softe: 0	 irq_happened: 0x01
            pid   = 2467, comm = bash
        Linux version 4.4.0-rc2-00008-gc51af91c3ab3-dirty (rashmica@circle) (gcc
        version 5.1.1 20150629 (GCC) ) #45 SMP Wed Nov 25 10:25:12 AEDT 2015
      
      Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      eb925d64
    • Rashmica Gupta's avatar
      powerpc/cell: Remove the Cell QPACE code · 24ad1648
      Rashmica Gupta authored
      
      
      All users of QPACE have upgraded to QPACE2 so remove the Cell QPACE code.
      
      Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      24ad1648
    • Vipin K Parashar's avatar
      powerpc/pseries: Limit EPOW reset event warnings · b4af279a
      Vipin K Parashar authored
      
      
      Kernel prints respective warnings about various EPOW events for
      user information/action after parsing EPOW interrupts. At times
      below EPOW reset event warning is seen to be flooding kernel log
      over a period of time.
      
      May 25 03:46:34 alp kernel: Non critical power or cooling issue cleared
      May 25 03:46:52 alp kernel: Non critical power or cooling issue cleared
      May 25 03:53:48 alp kernel: Non critical power or cooling issue cleared
      May 25 03:55:46 alp kernel: Non critical power or cooling issue cleared
      May 25 03:56:34 alp kernel: Non critical power or cooling issue cleared
      May 25 03:59:04 alp kernel: Non critical power or cooling issue cleared
      May 25 04:02:01 alp kernel: Non critical power or cooling issue cleared
      
      These EPOW reset events are spurious in nature and are triggered by
      firmware without an actual EPOW event being reset. This patch avoids these
      multiple EPOW reset warnings by using a counter variable. This variable
      is incremented every time an EPOW event is reported. Upon receiving a EPOW
      reset event the same variable is checked to filter out spurious events and
      decremented accordingly.
      
      This patch also improves log messages to better describe EPOW event being
      reported. Merged adjacent log messages into single one to reduce number of
      lines printed per event.
      
      Signed-off-by: default avatarKamalesh Babulal <kamalesh@linux.vnet.ibm.com>
      Signed-off-by: default avatarVipin K Parashar <vipin@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      b4af279a