Thread (18 messages) 18 messages, 5 authors, 2016-10-27

Re: [v12, 7/8] base: soc: introduce soc_device_match() interface

From: Peter Rosin <hidden>
Date: 2016-09-21 08:41:09
Also in: linux-arm-kernel, linux-clk, linux-devicetree, linux-i2c, linux-iommu, linux-mmc, linuxppc-dev, lkml

On 2016-09-21 09:56, Alexander Shiyan wrote:
quoted
Среда, 21 сентября 2016, 9:57 +03:00 от Yangbo Lu [off-list ref]:

From: Arnd Bergmann < arnd@arndb.de >

We keep running into cases where device drivers want to know the exact
version of the a SoC they are currently running on. In the past, this has
usually been done through a vendor specific API that can be called by a
driver, or by directly accessing some kind of version register that is
not part of the device itself but that belongs to a global register area
of the chip.
...
quoted
+const struct soc_device_attribute *soc_device_match(
+const struct soc_device_attribute *matches)
+{
+int ret = 0;
+
+if (!matches)
+return NULL;
+
+while (!ret) {
+if (!(matches->machine || matches->family ||
+      matches->revision || matches->soc_id))
+break;
+ret = bus_for_each_dev(&soc_bus_type, NULL, (void *)matches,
+       soc_device_match_one);
+if (!ret)
+matches++;
So, what happen if next "matches" (after increment) will be NULL?
A crash?
I think you should use while(matches) at the start of this procedure.
*arrgh*

*If* matches wrap, you indeed have *big* problems. *Elsewhere*

Hint: Please read the review comments on the previous version of this
series [1] before commenting further.

Cheers,
Peter

[1] https://www.mail-archive.com/netdev@vger.kernel.org/msg126617.html



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help