<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/soc/qcom/smsm.c, branch linux-4.16.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.16.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2017-12-20T21:38:34+00:00</updated>
<entry>
<title>soc: qcom: smsm: fix child-node lookup</title>
<updated>2017-12-20T21:38:34+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2017-11-15T11:07:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8804517e9fc16c10081ff5e42e7d80704973a8e2'/>
<id>urn:sha1:8804517e9fc16c10081ff5e42e7d80704973a8e2</id>
<content type='text'>
Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

Note that the original premature free of the parent node has already
been fixed separately.

Also note that this pattern of looking up the first child node with a
given property is rare enough that a generic helper is probably not
warranted.

Fixes: c97c4090ff72 ("soc: qcom: smsm: Add driver for Qualcomm SMSM")
Fixes: 3e8b55411468 ("soc: qcom: smsm: fix of_node refcnting problem")
Cc: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Cc: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
</entry>
<entry>
<title>soc: qcom: smsm: fix of_node refcnting problem</title>
<updated>2017-08-08T19:37:42+00:00</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2017-06-30T15:47:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3e8b55411468ef9aa4401282a869715c45b0310b'/>
<id>urn:sha1:3e8b55411468ef9aa4401282a869715c45b0310b</id>
<content type='text'>
of_find_node_with_property() drops the reference to the 'from' node,
which eventually (after enough -EPROBE_DEFERs) drops the last reference
to the node causing all sorts of fun problems, and this nice splat.

  BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747
  in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1
  4 locks held by kworker/0:1/33:
   #0:  ("events"){.+.+.+}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #1:  (deferred_probe_work){+.+.+.}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;ffff000008676078&gt;] __device_attach+0x30/0x168
   #3:  (devtree_lock){......}, at: [&lt;ffff000008828fd0&gt;] of_find_node_with_property+0x30/0xe0
  irq event stamp: 18976
  hardirqs last  enabled at (18975): [&lt;ffff00000815794c&gt;] __down_trylock_console_sem+0x74/0xb8
  hardirqs last disabled at (18976): [&lt;ffff0000089e26d4&gt;] _raw_spin_lock_irqsave+0x2c/0x78
  softirqs last  enabled at (16880): [&lt;ffff0000080e0f00&gt;] __do_softirq+0x580/0x640
  softirqs last disabled at (16871): [&lt;ffff0000080e13a4&gt;] irq_exit+0xe4/0x138
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G            E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func
  Call trace:
  [&lt;ffff000008089ee0&gt;] dump_backtrace+0x0/0x230
  [&lt;ffff00000808a134&gt;] show_stack+0x24/0x30
  [&lt;ffff0000084e1944&gt;] dump_stack+0xac/0xe8
  [&lt;ffff00000810d7e0&gt;] ___might_sleep+0x150/0x230
  [&lt;ffff00000810d918&gt;] __might_sleep+0x58/0x90
  [&lt;ffff0000089dde18&gt;] __mutex_lock+0x50/0x870
  [&lt;ffff0000089de674&gt;] mutex_lock_nested+0x3c/0x50
  [&lt;ffff000008388ae0&gt;] kernfs_remove+0x30/0x50
  [&lt;ffff00000838b720&gt;] sysfs_remove_dir+0x58/0x70
  [&lt;ffff0000084e393c&gt;] kobject_del+0x1c/0x58
  [&lt;ffff0000084e374c&gt;] kobject_put+0xb4/0x208
  [&lt;ffff00000882c364&gt;] of_node_put+0x24/0x30
  [&lt;ffff000008829018&gt;] of_find_node_with_property+0x78/0xe0
  [&lt;ffff000000aff5f4&gt;] qcom_smsm_probe+0x194/0x720 [smsm]
  [&lt;ffff0000086793b4&gt;] platform_drv_probe+0x74/0x110
  [&lt;ffff0000086765bc&gt;] driver_probe_device+0x2b4/0x420
  [&lt;ffff000008676920&gt;] __device_attach_driver+0xd0/0x150
  [&lt;ffff000008673e78&gt;] bus_for_each_drv+0x68/0xa8
  [&lt;ffff00000867611c&gt;] __device_attach+0xd4/0x168
  [&lt;ffff000008676a1c&gt;] device_initial_probe+0x24/0x30
  [&lt;ffff000008675380&gt;] bus_probe_device+0xa0/0xa8
  [&lt;ffff000008675948&gt;] deferred_probe_work_func+0xb8/0xf8
  [&lt;ffff0000080fa9d4&gt;] process_one_work+0x25c/0x728
  [&lt;ffff0000080faef4&gt;] worker_thread+0x54/0x3d8
  [&lt;ffff0000081031d8&gt;] kthread+0x110/0x140
  [&lt;ffff000008082d90&gt;] ret_from_fork+0x10/0x40
  OF: ERROR: Bad of_node_put() on /smsm
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G        W   E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
</entry>
<entry>
<title>soc: qcom: smsm: Improve error handling, quiesce probe deferral</title>
<updated>2017-06-06T02:50:44+00:00</updated>
<author>
<name>Jonathan Neuschäfer</name>
<email>j.neuschaefer@gmx.net</email>
</author>
<published>2017-04-05T12:10:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=35dfa3efea635c41cc5be1cf48dcc96b295964cd'/>
<id>urn:sha1:35dfa3efea635c41cc5be1cf48dcc96b295964cd</id>
<content type='text'>
Don't use size if info indicates an error condition. Previously a
non-ENOENT error (such as -EPROBE_DEFER) would lead to size being used
even though it hadn't necessarily been initialized in qcom_smem_get.

Don't print an error message in the -EPROBE_DEFER case.

Signed-off-by: Jonathan Neuschäfer &lt;j.neuschaefer@gmx.net&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
</entry>
<entry>
<title>soc: qcom: Update properties for smem state referencing</title>
<updated>2016-06-25T03:53:41+00:00</updated>
<author>
<name>Bjorn Andersson</name>
<email>bjorn.andersson@linaro.org</email>
</author>
<published>2016-06-10T04:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3680a4a97435496ad22cd0fc9f2ba51751cc4e36'/>
<id>urn:sha1:3680a4a97435496ad22cd0fc9f2ba51751cc4e36</id>
<content type='text'>
Update the property names to match device tree bindings, the correct
values should be qcom,smem-states and qcom,smem-state-names.

Also update the #qcom,smem-state-cells for consistency, before we merge
any users of these properties.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
</entry>
<entry>
<title>soc: qcom: smsm: Add driver for Qualcomm SMSM</title>
<updated>2015-12-08T19:01:01+00:00</updated>
<author>
<name>Bjorn Andersson</name>
<email>bjorn.andersson@sonymobile.com</email>
</author>
<published>2015-09-25T01:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c97c4090ff72297a878a37715bd301624b71c885'/>
<id>urn:sha1:c97c4090ff72297a878a37715bd301624b71c885</id>
<content type='text'>
This driver exposed the Qualcomm Shared Memory State Machine bits.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@sonymobile.com&gt;
Signed-off-by: Andy Gross &lt;agross@codeaurora.org&gt;
</content>
</entry>
</feed>
