On Wed, Sep 7, 2016 at 12:35 PM, Tomasz Nowicki [off-list ref] wrote:
Rafael,
There are two fixes for iort.c:
1. patch 1 - convert switch to if-else in iort_match_node_callback()
2. patch 2 - remove static local variable for iort_get_device_domain()
Do you want me to repost these patches to get your ACK, or you want new V11?
Please repost the patches with changes (mark the new versions by
adding "[Update]" to the subject line or similar).
Thanks,
Rafael
On 06.09.2016 12:27, Tomasz Nowicki wrote:
quoted
On 06.09.2016 12:20, Thomas Gleixner wrote:
quoted
On Tue, 6 Sep 2016, Tomasz Nowicki wrote:
quoted
+/**
+ * iort_get_device_domain() - Find MSI domain related to a device
+ * @dev: The device.
+ * @req_id: Requester ID for the device.
+ *
+ * Returns: the MSI domain for this device, NULL otherwise
+ */
+struct irq_domain *iort_get_device_domain(struct device *dev, u32
req_id)
+{
+ static struct fwnode_handle *handle;
static ??????
quoted
+ int its_id;
+
+ if (iort_dev_find_its_id(dev, req_id, 0, &its_id))
+ return NULL;
+
+ handle = iort_find_domain_token(its_id);
You reevaluate that on every call.
Obviously it is the bug. Thanks for spotting this.
Tomasz