On Wed, Sep 7, 2016 at 12:35 PM, Tomasz Nowicki tn@semihalf.com wrote:
Rafael,
There are two fixes for iort.c:
- patch 1 - convert switch to if-else in iort_match_node_callback()
- 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:
On 06.09.2016 12:20, Thomas Gleixner wrote:
On Tue, 6 Sep 2016, Tomasz Nowicki wrote:
+/**
- 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 ??????
- 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