1. 08 3月, 2017 8 次提交
  2. 25 2月, 2017 1 次提交
  3. 14 2月, 2017 2 次提交
    • K
      pstore: Check for prz allocation in walker · 46418413
      Kees Cook 提交于
      Instead of needing additional checks in callers for unallocated przs,
      perform the check in the walker, which gives us a more universal way to
      handle the situation.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      46418413
    • K
      pstore: Correctly initialize spinlock and flags · 76d5692a
      Kees Cook 提交于
      The ram backend wasn't always initializing its spinlock correctly. Since
      it was coming from kzalloc memory, though, it was harmless on
      architectures that initialize unlocked spinlocks to 0 (at least x86 and
      ARM). This also fixes a possibly ignored flag setting too.
      
      When running under CONFIG_DEBUG_SPINLOCK, the following Oops was visible:
      
      [    0.760836] persistent_ram: found existing buffer, size 29988, start 29988
      [    0.765112] persistent_ram: found existing buffer, size 30105, start 30105
      [    0.769435] persistent_ram: found existing buffer, size 118542, start 118542
      [    0.785960] persistent_ram: found existing buffer, size 0, start 0
      [    0.786098] persistent_ram: found existing buffer, size 0, start 0
      [    0.786131] pstore: using zlib compression
      [    0.790716] BUG: spinlock bad magic on CPU#0, swapper/0/1
      [    0.790729]  lock: 0xffffffc0d1ca9bb0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
      [    0.790742] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.10.0-rc2+ #913
      [    0.790747] Hardware name: Google Kevin (DT)
      [    0.790750] Call trace:
      [    0.790768] [<ffffff900808ae88>] dump_backtrace+0x0/0x2bc
      [    0.790780] [<ffffff900808b164>] show_stack+0x20/0x28
      [    0.790794] [<ffffff9008460ee0>] dump_stack+0xa4/0xcc
      [    0.790809] [<ffffff9008113cfc>] spin_dump+0xe0/0xf0
      [    0.790821] [<ffffff9008113d3c>] spin_bug+0x30/0x3c
      [    0.790834] [<ffffff9008113e28>] do_raw_spin_lock+0x50/0x1b8
      [    0.790846] [<ffffff9008a2d2ec>] _raw_spin_lock_irqsave+0x54/0x6c
      [    0.790862] [<ffffff90083ac3b4>] buffer_size_add+0x48/0xcc
      [    0.790875] [<ffffff90083acb34>] persistent_ram_write+0x60/0x11c
      [    0.790888] [<ffffff90083aab1c>] ramoops_pstore_write_buf+0xd4/0x2a4
      [    0.790900] [<ffffff90083a9d3c>] pstore_console_write+0xf0/0x134
      [    0.790912] [<ffffff900811c304>] console_unlock+0x48c/0x5e8
      [    0.790923] [<ffffff900811da18>] register_console+0x3b0/0x4d4
      [    0.790935] [<ffffff90083aa7d0>] pstore_register+0x1a8/0x234
      [    0.790947] [<ffffff90083ac250>] ramoops_probe+0x6b8/0x7d4
      [    0.790961] [<ffffff90085ca548>] platform_drv_probe+0x7c/0xd0
      [    0.790972] [<ffffff90085c76ac>] driver_probe_device+0x1b4/0x3bc
      [    0.790982] [<ffffff90085c7ac8>] __device_attach_driver+0xc8/0xf4
      [    0.790996] [<ffffff90085c4bfc>] bus_for_each_drv+0xb4/0xe4
      [    0.791006] [<ffffff90085c7414>] __device_attach+0xd0/0x158
      [    0.791016] [<ffffff90085c7b18>] device_initial_probe+0x24/0x30
      [    0.791026] [<ffffff90085c648c>] bus_probe_device+0x50/0xe4
      [    0.791038] [<ffffff90085c35b8>] device_add+0x3a4/0x76c
      [    0.791051] [<ffffff90087d0e84>] of_device_add+0x74/0x84
      [    0.791062] [<ffffff90087d19b8>] of_platform_device_create_pdata+0xc0/0x100
      [    0.791073] [<ffffff90087d1a2c>] of_platform_device_create+0x34/0x40
      [    0.791086] [<ffffff900903c910>] of_platform_default_populate_init+0x58/0x78
      [    0.791097] [<ffffff90080831fc>] do_one_initcall+0x88/0x160
      [    0.791109] [<ffffff90090010ac>] kernel_init_freeable+0x264/0x31c
      [    0.791123] [<ffffff9008a25bd0>] kernel_init+0x18/0x11c
      [    0.791133] [<ffffff9008082ec0>] ret_from_fork+0x10/0x50
      [    0.793717] console [pstore-1] enabled
      [    0.797845] pstore: Registered ramoops as persistent store backend
      [    0.804647] ramoops: attached 0x100000@0xf7edc000, ecc: 0/0
      
      Fixes: 663deb47 ("pstore: Allow prz to control need for locking")
      Fixes: 10970449 ("pstore: Make spinlock per zone instead of global")
      Reported-by: NBrian Norris <briannorris@chromium.org>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      76d5692a
  4. 10 2月, 2017 1 次提交
  5. 16 11月, 2016 11 次提交
  6. 12 11月, 2016 2 次提交
  7. 09 11月, 2016 1 次提交
  8. 24 10月, 2016 1 次提交
  9. 28 9月, 2016 1 次提交
  10. 09 9月, 2016 8 次提交
  11. 06 8月, 2016 2 次提交
  12. 15 6月, 2016 1 次提交
    • G
      pstore/ram: add Device Tree bindings · 35da6094
      Greg Hackmann 提交于
      ramoops is one of the remaining places where ARM vendors still rely on
      board-specific shims.  Device Tree lets us replace those shims with
      generic code.
      
      These bindings mirror the ramoops module parameters, with two small
      differences:
      
      (1) dump_oops becomes an optional "no-dump-oops" property, since ramoops
          sets dump_oops=1 by default.
      
      (2) mem_type=1 becomes the more self-explanatory "unbuffered" property.
      Signed-off-by: NGreg Hackmann <ghackmann@google.com>
      [fixed platform_get_drvdata() crash, thanks to Brian Norris]
      [switched from u64 to u32 to simplify code, various whitespace fixes]
      [use dev_of_node() to gain code-elimination for CONFIG_OF=n]
      Signed-off-by: NKees Cook <keescook@chromium.org>
      35da6094
  13. 03 6月, 2016 1 次提交
    • G
      pstore: drop file opened reference count · 52d210d9
      Geliang Tang 提交于
      In ee1d2674 ("pstore: add pstore unregister") I added:
      	.owner = THIS_MODULE,
      in both pstore_fs_type and pstore_file_operations to increase a reference
      count when pstore filesystem is mounted and pstore file is opened.
      
      But, it's repetitive. There is no need to increase the opened reference
      count. We only need to increase the mounted reference count. When a file
      is opened, the filesystem can't be unmounted. Hence the pstore module
      can't be unloaded either.
      
      So I drop the opened reference count in this patch.
      
      Fixes: ee1d2674 ("pstore: add pstore unregister")
      Signed-off-by: NGeliang Tang <geliangtang@163.com>
      Signed-off-by: NKees Cook <keescook@chromium.org>
      52d210d9