1. 26 9月, 2018 8 次提交
  2. 15 7月, 2018 12 次提交
  3. 14 5月, 2018 4 次提交
  4. 28 8月, 2017 5 次提交
  5. 30 11月, 2016 3 次提交
  6. 09 9月, 2016 1 次提交
    • B
      coresight: tmc: mark symbols static where possible · 0ef7528d
      Baoyou Xie 提交于
      We get a few warnings when building kernel with W=1:
      drivers/hwtracing/coresight/coresight-tmc-etr.c:23:6: warning: no previous prototype for 'tmc_etr_enable_hw' [-Wmissing-prototypes]
      drivers/hwtracing/coresight/coresight-tmc-etf.c:25:6: warning: no previous prototype for 'tmc_etb_enable_hw' [-Wmissing-prototypes]
      drivers/hwtracing/coresight/coresight-tmc.c:250:9: warning: no previous prototype for ‘trigger_cntr_show’ [-Wmissing-prototypes]
      ...
      
      In fact, these functions are only used in the file in which they are
      declared and don't need a declaration, but can be made static.
      so this patch marks these functions with 'static'.
      Signed-off-by: NBaoyou Xie <baoyou.xie@linaro.org>
      Signed-off-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0ef7528d
  7. 31 8月, 2016 2 次提交
  8. 16 6月, 2016 2 次提交
    • S
      coresight: Fix erroneous memset in tmc_read_unprepare_etr · f3b8172f
      Suzuki K Poulose 提交于
      At the end of a trace collection, we try to clear the entire buffer
      and enable the ETR back if it was already enabled. But, we would have
      adjusted the drvdata->buf to point to the beginning of the trace data
      in the trace buffer @drvdata->vaddr. So, the following code which
      clears the buffer is dangerous and can cause crashes, like below :
      
      	memset(drvdata->buf, 0, drvdata->size);
      
       Unable to handle kernel paging request at virtual address ffffff800a145000
       pgd = ffffffc974726000
       *pgd=00000009f3e91003, *pud=00000009f3e91003, *pmd=0000000000000000
       PREEMPT SMP
       Modules linked in:
       CPU: 4 PID: 1692 Comm: dd Not tainted 4.7.0-rc2+ #1721
       Hardware name: ARM Juno development board (r0) (DT)
       task: ffffffc9734a0080 ti: ffffffc974460000 task.ti: ffffffc974460000
       PC is at __memset+0x1ac/0x200
       LR is at tmc_read_unprepare_etr+0x144/0x1bc
       pc : [<ffffff80083a05ac>] lr : [<ffffff800859c984>] pstate: 200001c5
       ...
       [<ffffff80083a05ac>] __memset+0x1ac/0x200
       [<ffffff800859b2e4>] tmc_release+0x90/0x94
       [<ffffff8008202f58>] __fput+0xa8/0x1ec
       [<ffffff80082030f4>] ____fput+0xc/0x14
       [<ffffff80080c3ef8>] task_work_run+0xb0/0xe4
       [<ffffff8008088bf4>] do_notify_resume+0x64/0x6c
       [<ffffff8008084d5c>] work_pending+0x10/0x14
       Code: 91010108 54ffff4a 8b040108 cb050042 (d50b7428)
      
      Since we clear the buffer anyway in the following call to
      tmc_etr_enable_hw(), remove the erroneous memset().
      
      Fixes: commit de546197 ("coresight: tmc: allocating memory when needed")
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f3b8172f
    • S
      coresight: Fix tmc_read_unprepare_etr · 8e215298
      Suzuki K Poulose 提交于
      At the end of the trace capture, we free the allocated memory,
      resetting the drvdata->buf to NULL, to indicate that trace data
      was collected and the next trace session should allocate the
      memory in tmc_enable_etr_sink_sysfs.
      
      The tmc_enable_etr_sink_sysfs, we only allocate memory if drvdata->vaddr
      is not NULL (which is not performed at the end of previous session).
      This can cause, drvdata->vaddr getting assigned NULL and later we do
      memset() which causes a crash as below :
      
      Unable to handle kernel NULL pointer dereference at virtual
       address  00000000
      pgd = ffffffc9747f0000
      [00000000] *pgd=00000009f402e003, *pud=00000009f402e003,
       *pmd=0000000000000000
      Internal error: Oops: 96000046 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 0 PID: 1592 Comm: bash Not tainted 4.7.0-rc1+ #1712
      Hardware name: ARM Juno development board (r0) (DT)
      task: ffffffc078fe0080 ti: ffffffc974178000 task.ti: ffffffc974178000
      PC is at __memset+0x1ac/0x200
      LR is at tmc_enable_etr_sink+0xf8/0x304
      pc : [<ffffff80083a002c>] lr : [<ffffff800859be44>] pstate: 400001c5
      sp : ffffffc97417bc00
      x29: ffffffc97417bc00 x28: ffffffc974178000
      
      Call trace:
      Exception stack(0xffffffc97417ba40 to 0xffffffc97417bb60)
      ba40: 0000000000000001 ffffffc974a5d098 ffffffc97417bc00 ffffff80083a002c
      ba60: ffffffc974a5d118 0000000000000000 0000000000000000 0000000000000000
      ba80: 0000000000000001 0000000000000000 ffffff800859bdec 0000000000000040
      baa0: ffffff8008b45b58 00000000000001c0 ffffffc97417baf0 ffffff80080eddb4
      bac0: 0000000000000003 ffffffc078fe0080 ffffffc078fe0960 ffffffc078fe0940
      bae0: 0000000000000000 0000000000000000 00000000007fffc0 0000000000000004
      bb00: 0000000000000000 0000000000000040 000000000000003f 0000000000000000
      bb20: 0000000000000000 0000000000000000 0000000000000000 0000000000000001
      bb40: ffffffc078fe0960 0000000000000018 ffffffffffffffff 0008669628000000
      [<ffffff80083a002c>] __memset+0x1ac/0x200
      [<ffffff8008599814>] coresight_enable_path+0xa8/0x1dc
      [<ffffff8008599b10>] coresight_enable+0x88/0x1b8
      [<ffffff8008599d88>] enable_source_store+0x3c/0x6c
      [<ffffff800845eaf4>] dev_attr_store+0x18/0x28
      [<ffffff80082829e8>] sysfs_kf_write+0x54/0x64
      [<ffffff8008281c30>] kernfs_fop_write+0x148/0x1d8
      [<ffffff8008200128>] __vfs_write+0x28/0x110
      [<ffffff8008200e88>] vfs_write+0xa0/0x198
      [<ffffff80082021b0>] SyS_write+0x44/0xa0
      [<ffffff8008084e70>] el0_svc_naked+0x24/0x28
      Code: 91010108 54ffff4a 8b040108 cb050042 (d50b7428)
      
      This patch fixes the issue by clearing the drvdata->vaddr while we free
      the allocated buffer at the end of a session, so that we allocate the
      memory again.
      
      Cc: mathieu.poirier@linaro.org
      Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: NMathieu Poirier <mathieu.poirier@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8e215298
  9. 04 5月, 2016 3 次提交