Среда, 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.
...
+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?
I think you should use while(matches) at the start of this procedure.
---
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel