diff options
Diffstat (limited to 'target/linux/layerscape/patches-4.4/7159-staging-fsl-mc-bus-Eliminate-double-function-call.patch')
-rw-r--r-- | target/linux/layerscape/patches-4.4/7159-staging-fsl-mc-bus-Eliminate-double-function-call.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-4.4/7159-staging-fsl-mc-bus-Eliminate-double-function-call.patch b/target/linux/layerscape/patches-4.4/7159-staging-fsl-mc-bus-Eliminate-double-function-call.patch new file mode 100644 index 0000000000..74ac4fd28f --- /dev/null +++ b/target/linux/layerscape/patches-4.4/7159-staging-fsl-mc-bus-Eliminate-double-function-call.patch @@ -0,0 +1,73 @@ +From ecd7b5d9616e50f48a400749f17db19fd8a43f25 Mon Sep 17 00:00:00 2001 +From: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> +Date: Sun, 28 Feb 2016 23:58:05 +0530 +Subject: [PATCH 159/226] staging: fsl-mc: bus: Eliminate double function call + +A call to irq_find_matching_host was already made and the result +has been stored in mc_msi_domain. mc_msi_domain is again reassigned +using the same function call which is redundant. + +irq_find_matching_host returns/locates a domain for a given fwnode. +The domain is identified using device node and bus_token(if several +domains have same device node but different purposes they can be +distinguished using bus-specific token). +http://www.bricktou.com/include/linux/irqdomain_irq_find_matching_host_en.html + +Also, of_property_read_bool finds and reads a boolean from a property +device node from which the property value is to be read. It doesn't +alter the device node. +http://lists.infradead.org/pipermail/linux-arm-kernel/2012-February/083698.html + +Since, both the function calls have the same device node and bus_token, +the return values shall be the same. Hence, the second call has been +removed. + +This was done using Coccinelle: + +@r@ +idexpression *x; +identifier f; +position p1,p2; +@@ + +x@p1 = f(...) +... when != x +( +x@p2 = f(...) +) + +@script:python@ +p1 << r.p1; +p2 << r.p2; +@@ + +if (p1[0].line == p2[0].line): + cocci.include_match(False) + +@@ +idexpression *x; +identifier f; +position r.p1,r.p2; +@@ + +*x@p1 = f(...) +... +*x@p2 = f(...) + +Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + .../staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c ++++ b/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c +@@ -118,8 +118,6 @@ void its_fsl_mc_msi_cleanup(void) + if (!of_property_read_bool(np, "msi-controller")) + continue; + +- mc_msi_domain = irq_find_matching_host(np, +- DOMAIN_BUS_FSL_MC_MSI); + if (mc_msi_domain && + mc_msi_domain->host_data == &its_fsl_mc_msi_domain_info) + irq_domain_remove(mc_msi_domain); |