slimbus: ngd: Fix build error on x86
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 12 Nov 2018 12:25:25 +0000 (12:25 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Nov 2018 07:44:06 +0000 (08:44 +0100)
on non DT platforms like x86 of_match_node is set to NULL, dereferencing
directly would throw an error.
Fix this by doing this in two steps, get the match then the data.

Reported-by: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/slimbus/qcom-ngd-ctrl.c

index 1382a8d..ccf3321 100644 (file)
@@ -1327,11 +1327,12 @@ static int of_qcom_slim_ngd_register(struct device *parent,
 {
        const struct ngd_reg_offset_data *data;
        struct qcom_slim_ngd *ngd;
+       const struct of_device_id *match;
        struct device_node *node;
        u32 id;
 
-       data = of_match_node(qcom_slim_ngd_dt_match, parent->of_node)->data;
-
+       match = of_match_node(qcom_slim_ngd_dt_match, parent->of_node);
+       data = match->data;
        for_each_available_child_of_node(parent->of_node, node) {
                if (of_property_read_u32(node, "reg", &id))
                        continue;