Commit Graph

132 Commits

Author SHA1 Message Date
Myron Stowe d33a383ae2 of: unittest: Add tests for address translations
JIRA: https://issues.redhat.com/browse/RHEL-50255
Upstream Status: 4d9ec5f04bad67abdbbd036801edba37e642f87d

commit 4d9ec5f04bad67abdbbd036801edba37e642f87d
Author: Herve Codina <herve.codina@bootlin.com>
Date:   Tue Oct 17 13:02:18 2023 +0200

    of: unittest: Add tests for address translations

    Add tests to exercise address translations based on ranges properties.

    Tests added cover "default" (2cell) address translations, "default
    flags" (3cell) address translations and PCI address translations.
    They also cover PCI BAR translations introduced in commit 407d1a51921e
    ("PCI: Create device tree node for bridge").

    Signed-off-by: Herve Codina <herve.codina@bootlin.com>
    Link: https://lore.kernel.org/r/20231017110221.189299-4-herve.codina@bootlin.com
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Myron Stowe <mstowe@redhat.com>
2024-08-15 15:31:13 -06:00
Steve Best cbdef316d5 of: unittest: Fix compile in the non-dynamic case
JIRA: https://issues.redhat.com/browse/RHEL-37072
CVE: CVE-2023-52679

commit 607aad1e4356c210dbef9022955a3089377909b2
Author: Christian A. Ehrhardt <lk@c--e.de>
Date:   Mon Jan 29 20:25:56 2024 +0100

    of: unittest: Fix compile in the non-dynamic case

    If CONFIG_OF_KOBJ is not set, a device_node does not contain a
    kobj and attempts to access the embedded kobj via kref_read break
    the compile.

    Replace affected kref_read calls with a macro that reads the
    refcount if it exists and returns 1 if there is no embedded kobj.

    Reported-by: kernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202401291740.VP219WIz-lkp@intel.com/
    Fixes: 4dde83569832 ("of: Fix double free in of_parse_phandle_with_args_map")
    Signed-off-by: Christian A. Ehrhardt <lk@c--e.de>
    Link: https://lore.kernel.org/r/20240129192556.403271-1-lk@c--e.de
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Steve Best <sbest@redhat.com>
2024-05-21 05:48:44 -04:00
Steve Best de737bb5c9 of: unittest: Fix of_count_phandle_with_args() expected value message
JIRA: https://issues.redhat.com/browse/RHEL-37072
CVE: CVE-2023-52679

commit 716089b417cf98d01f0dc1b39f9c47e1d7b4c965
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Jan 11 09:50:25 2024 +0100

    of: unittest: Fix of_count_phandle_with_args() expected value message

    The expected result value for the call to of_count_phandle_with_args()
    was updated from 7 to 8, but the accompanying error message was
    forgotten.

    Fixes: 4dde83569832f937 ("of: Fix double free in of_parse_phandle_with_args_map")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20240111085025.2073894-1-geert+renesas@glider.be
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Steve Best <sbest@redhat.com>
2024-05-21 05:48:39 -04:00
Steve Best 6c3b8a794c of: Fix double free in of_parse_phandle_with_args_map
JIRA: https://issues.redhat.com/browse/RHEL-37072
CVE: CVE-2023-52679

commit 4dde83569832f9377362e50f7748463340c5db6b
Author: Christian A. Ehrhardt <lk@c--e.de>
Date:   Fri Dec 29 11:54:11 2023 +0100

    of: Fix double free in of_parse_phandle_with_args_map

    In of_parse_phandle_with_args_map() the inner loop that
    iterates through the map entries calls of_node_put(new)
    to free the reference acquired by the previous iteration
    of the inner loop. This assumes that the value of "new" is
    NULL on the first iteration of the inner loop.

    Make sure that this is true in all iterations of the outer
    loop by setting "new" to NULL after its value is assigned to "cur".

    Extend the unittest to detect the double free and add an additional
    test case that actually triggers this path.

    Fixes: bd6f2fd5a1 ("of: Support parsing phandle argument lists through a nexus node")
    Cc: Stephen Boyd <stephen.boyd@linaro.org>
    Signed-off-by: "Christian A. Ehrhardt" <lk@c--e.de>
    Link: https://lore.kernel.org/r/20231229105411.1603434-1-lk@c--e.de
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Steve Best <sbest@redhat.com>
2024-05-21 05:48:31 -04:00
Aaron Brookner da7c489a11 of/address: Add of_property_read_reg() helper
JIRA: https://issues.redhat.com/browse/RHEL-32995

commit ff61bacd77f258bd2ed145efb69e5449b115d4fe
Author: Rob Herring <robh@kernel.org>
Date:   Tue Mar 28 15:16:00 2023 -0500

    of/address: Add of_property_read_reg() helper

    Add a helper, of_property_read_reg(), to read "reg" entries untranslated
    address and size. This function is intended mainly for cases with an
    untranslatable "reg" address (i.e. not MMIO). There's also a few
    translatable cases such as address cells containing a bus chip-select
    number.

    Link: https://lore.kernel.org/r/20230328-dt-address-helpers-v1-5-e2456c3e77ab@kernel.org
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Aaron Brookner <abrookne@redhat.com>
2024-04-30 19:50:01 -04:00
Aaron Brookner 5662ec62e8 of/address: Add of_range_count() helper
JIRA: https://issues.redhat.com/browse/RHEL-32995

commit b50c788a56964a900ebcc817c8a5ad35ddad87b6
Author: Rob Herring <robh@kernel.org>
Date:   Tue Mar 28 15:15:59 2023 -0500

    of/address: Add of_range_count() helper

    Some users need a count of the number of ranges entries before
    iterating over the entries. Typically this is for allocating some data
    structure based on the size. Add a helper, of_range_count(), to get the
    count. The helper must be called with an struct of_range_parser
    initialized by of_range_parser_init().

    Link: https://lore.kernel.org/r/20230328-dt-address-helpers-v1-4-e2456c3e77ab@kernel.org
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Aaron Brookner <abrookne@redhat.com>
2024-04-30 19:50:01 -04:00
Aaron Brookner 471621c945 of/address: Add support for 3 address cell bus
JIRA: https://issues.redhat.com/browse/RHEL-32995

commit 3d5089c4263d3594dc055e0f9c5cb990505cdd64
Author: Rob Herring <robh@kernel.org>
Date:   Tue Mar 28 15:15:58 2023 -0500

    of/address: Add support for 3 address cell bus

    There's a few custom bus bindings (e.g. fsl,qoriq-mc) which use a
    3 cell format with custom flags in the high cell. We can match these
    buses as a fallback if we didn't match on PCI bus which is the only
    standard bus binding with 3 address cells.

    Link: https://lore.kernel.org/r/20230328-dt-address-helpers-v1-3-e2456c3e77ab@kernel.org
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Aaron Brookner <abrookne@redhat.com>
2024-04-30 19:50:00 -04:00
Aaron Brookner 798a3f94f4 of/address: Add of_range_to_resource() helper
JIRA: https://issues.redhat.com/browse/RHEL-32995

commit c75a79491835c50ca61938ae1ebd3ba5598f7410
Author: Rob Herring <robh@kernel.org>
Date:   Tue Mar 28 15:15:57 2023 -0500

    of/address: Add of_range_to_resource() helper

    A few users need to convert a specific "ranges" entry into a struct
    resource. Add a helper to similar to of_address_to_resource(). The
    existing of_pci_range_to_resource() helper isn't really PCI specific,
    so it can be used with the CONFIG_PCI check dropped.

    Link: https://lore.kernel.org/r/20230328-dt-address-helpers-v1-2-e2456c3e77ab@kernel.org
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Aaron Brookner <abrookne@redhat.com>
2024-04-30 19:50:00 -04:00
Aaron Brookner db30cf9e27 of: unittest: Add bus address range parsing tests
JIRA: https://issues.redhat.com/browse/RHEL-32995

commit 6d32dadb11a6480be62c6ada901bbdcbda1775c9
Author: Rob Herring <robh@kernel.org>
Date:   Tue Mar 28 15:15:56 2023 -0500

    of: unittest: Add bus address range parsing tests

    While there are tests for "dma-ranges" helpers, "ranges" is missing any
    tests. It's the same underlying code, but for completeness add a test
    for "ranges" parsing iterators. This is in preparation to add some
    additional "ranges" helpers.

    Link: https://lore.kernel.org/r/20230328-dt-address-helpers-v1-1-e2456c3e77ab@kernel.org
    Signed-off-by: Rob Herring <robh@kernel.org>

Signed-off-by: Aaron Brookner <abrookne@redhat.com>
2024-04-30 19:50:00 -04:00
Mika Penttilä b6aef34648 of: move from strlcpy with unused retval to strscpy
JIRA: https://issues.redhat.com/browse/RHEL-1349
Upstream Status: v6.1-rc1

commit 7a12dd077e5207d72fadaabf7d4520bd3af84082
Author:     Wolfram Sang <wsa+renesas@sang-engineering.com>
AuthorDate: Thu Aug 18 23:00:53 2022 +0200
Commit:     Rob Herring <robh@kernel.org>
CommitDate: Mon Aug 22 15:01:26 2022 -0500

    Follow the advice of the below link and prefer 'strscpy' in this
    subsystem. Conversion is 1:1 because the return value is not used.
    Generated by a coccinelle script.

    Link: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw@mail.gmail.com/
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220818210054.7157-1-wsa+renesas@sang-engineering.com

Signed-off-by: Mika Penttilä <mpenttil@redhat.com>
2023-10-26 06:54:58 +03:00
Al Stone ff623b35e6 of: overlay: do not free changeset when of_overlay_apply returns error
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 421f4d14bc037f708a3d11fbb01274b741767bf9
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Mon May 2 13:17:42 2022 -0500

    of: overlay: do not free changeset when of_overlay_apply returns error

    New unittests for overlay notifiers reveal a memory leak in
    of_overlay_apply() when a notifier returns an error for action
    OF_OVERLAY_POST_APPLY.  The pr_err() message is:

       OF: ERROR: memory leak, expected refcount 1 instead of 3,
       of_node_get()/of_node_put() unbalanced - destroy cset entry: attach
       overlay node /testcase-data/overlay-node/test-bus/test-unittest17

    Change the error path to no longer call free_overlay_changeset(),
    and document that the caller of of_overlay_fdt_apply() may choose
    to remove the overlay.

    Update the unittest that triggered the error to expect the changed
    return values and to call of_overlay_remove().

    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220502181742.1402826-4-frowand.list@gmail.com
    (cherry picked from commit 421f4d14bc037f708a3d11fbb01274b741767bf9)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:04 -06:00
Al Stone 1ac4c2ce99 of: overlay: unittest: add tests for overlay notifiers
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 992b0dc5c38a4e79dca17577960c5201275b83f1
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Mon May 2 13:17:41 2022 -0500

    of: overlay: unittest: add tests for overlay notifiers

    Add tests for overlay apply and remove notifiers.  Trigger errors
    for each of the notifier actions.

    These tests will reveal a memory leak problem when a notifier returns
    an error for action OF_OVERLAY_POST_APPLY.  The pr_err() message is:

       OF: ERROR: memory leak, expected refcount 1 instead of 3,
       of_node_get()/of_node_put() unbalanced - destroy cset entry: attach
       overlay node /testcase-data/overlay-node/test-bus/test-unittest17

    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220502181742.1402826-3-frowand.list@gmail.com
    (cherry picked from commit 992b0dc5c38a4e79dca17577960c5201275b83f1)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:04 -06:00
Al Stone d22e24d0c8 of: unittest: print pass messages at PR_INFO level
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 54eb8dc8f338962e12760fb718f4ca39a8cf3aa9
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Thu Feb 10 17:08:19 2022 -0600

    of: unittest: print pass messages at PR_INFO level

    Printing the devicetree unittest pass message for each passed test
    creates much console verbosity.  The existing pass messages are
    printed at loglevel KERN_DEBUG so they will not print by default.

    Change default to print the pass messages at loglevel PR_INFO so
    they will print with the default console loglevel.

    The test community expects either a pass or a fail message for each
    test in a test suite.  The messages are typically post-processed to
    report pass/fail results.

    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220210230819.3303212-1-frowand.list@gmail.com
    (cherry picked from commit 54eb8dc8f338962e12760fb718f4ca39a8cf3aa9)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:02 -06:00
Al Stone dbc8f32b36 of: unittest: update text of expected warnings
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit fa4300f060e5c4ca670b705f1e9b93685ad30c5b
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Thu Jan 27 13:26:43 2022 -0600

    of: unittest: update text of expected warnings

    The text of various warning messages triggered by unittest has
    changed.  Update the text of expected warnings to match.

    The expected vs actual warnings are most easily seen by filtering
    the boot console messages with the of_unittest_expect program at
    https://github.com/frowand/dt_tools.git.  The filter prefixes
    problem lines with '***', and prefixes lines that match expected
    errors with 'ok '.  All other lines are prefixed with '   '.
    Unrelated lines have been deleted in the following examples.

    The mismatch appears as:

    -> ### dt-test ### start of unittest - you will see error messages
          OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
       ** of_unittest_expect WARNING - not found ---> OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
          OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
       ** of_unittest_expect WARNING - not found ---> OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found -1
          OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found 1
       ** of_unittest_expect WARNING - not found ---> OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found -1
          platform testcase-data:testcase-device2: error -ENXIO: IRQ index 0 not found
       ** of_unittest_expect WARNING - not found ---> platform testcase-data:testcase-device2: IRQ index 0 not found
       -> ### dt-test ### end of unittest - 254 passed, 0 failed
       ** EXPECT statistics:
       **
       **   EXPECT found          :   42
       **   EXPECT not found      :    4

    With this commit applied, the mismatch is resolved:

       -> ### dt-test ### start of unittest - you will see error messages
       ok OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
       ok OF: /testcase-data/phandle-tests/consumer-a: #phandle-cells = 3 found 1
       ok OF: /testcase-data/phandle-tests/consumer-b: #phandle-cells = 2 found 1
       ok platform testcase-data:testcase-device2: error -ENXIO: IRQ index 0 not found
       -> ### dt-test ### end of unittest - 254 passed, 0 failed
       ** EXPECT statistics:
       **
       **   EXPECT found          :   46
       **   EXPECT not found      :    0

    Fixes: 2043727c2882 ("driver core: platform: Make use of the helper function dev_err_probe()")
    Fixes: 94a4950a4acf ("of: base: Fix phandle argument length mismatch error message")
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220127192643.2534941-1-frowand.list@gmail.com
    (cherry picked from commit fa4300f060e5c4ca670b705f1e9b93685ad30c5b)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:02 -06:00
Al Stone 1f1d96f1c6 of: unittest: remove unneeded semicolon
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 2b35e9684d093569fd4743719bccdd7409eb9f8e
Author: Yang Li <yang.lee@linux.alibaba.com>
Date:   Fri Jan 7 08:28:26 2022 +0800

    of: unittest: remove unneeded semicolon

    Eliminate the following coccicheck warning:
    ./drivers/of/unittest.c:1961:2-3: Unneeded semicolon

    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220107002826.77939-1-yang.lee@linux.alibaba.com
    (cherry picked from commit 2b35e9684d093569fd4743719bccdd7409eb9f8e)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:01 -06:00
Al Stone 2a47215dd6 of: unittest: re-implement overlay tracking
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit cca549335f5e00d2c716908d112a6b9366fa263d
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Fri Dec 31 21:33:29 2021 -0600

    of: unittest: re-implement overlay tracking

    Some overlays are tracked when they are applied.  The tracked overlays
    are later removed after the overlay tests are completed.  The old
    implementation makes assumptions about the expected values for
    overlay changeset id created by the overlay apply which result
    in fragile code.  The new code removes the assumptions.

    A symptom that exposes a problem with the tracking code is a
    warning "UBSAN: shift-out-of-bounds in drivers/of/unittest.c:1933:36",
    Kernel Version: 5.15-rc7, PPC-64, Talos II.  This results from variable
    "id" value of -1 in the final line of of_unittest_untrack_overlay().

    Reported-by: erhard_f@mailbox.org
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220101033329.1277779-3-frowand.list@gmail.com
    (cherry picked from commit cca549335f5e00d2c716908d112a6b9366fa263d)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:01 -06:00
Al Stone f2007cf25d of: unittest: change references to obsolete overlay id
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 137b1566c5012dc8dbcaa492afd15be3517b6332
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Fri Dec 31 21:33:28 2021 -0600

    of: unittest: change references to obsolete overlay id

    Unittest inconsistently interchanges overlay changeset id and
    overlay id.  Change variable names of overlay id to overlay
    changeset id.

    Do not fix variable names in the overlay tracking functions
    of_unittest_overlay_tracked(), of_unittest_track_overlay(), and
    of_unittest_destroy_tracked_overlays() which will be replaced in
    a following commit.

    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220101033329.1277779-2-frowand.list@gmail.com
    (cherry picked from commit 137b1566c5012dc8dbcaa492afd15be3517b6332)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:01 -06:00
Al Stone 7d44381903 of: unittest: 64 bit dma address test requires arch support
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 9fd4cf5d3571b27d746b8ead494a3f051485b679
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Sun Dec 12 16:18:52 2021 -0600

    of: unittest: 64 bit dma address test requires arch support

    If an architecture does not support 64 bit dma addresses then testing
    for an expected dma address >= 0x100000000 will fail.

    Fixes: e0d072782c ("dma-mapping: introduce DMA range map, supplanting dma_pfn_offset")
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20211212221852.233295-1-frowand.list@gmail.com
    (cherry picked from commit 9fd4cf5d3571b27d746b8ead494a3f051485b679)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:00 -06:00
Al Stone f9bdfd2e6c of: unittest: fix warning on PowerPC frame size warning
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit a8d61a9112ad0c9216ab45d050991e07bc4f3408
Author: Jim Quinlan <jim2101024@gmail.com>
Date:   Fri Dec 10 13:46:35 2021 -0500

    of: unittest: fix warning on PowerPC frame size warning

    The struct device variable "dev_bogus" was triggering this warning
    on a PowerPC build:

        drivers/of/unittest.c: In function 'of_unittest_dma_ranges_one.constprop':
        [...] >> The frame size of 1424 bytes is larger than 1024 bytes
                 [-Wframe-larger-than=]

    This variable is now dynamically allocated.

    Fixes: e0d072782c ("dma-mapping: introduce DMA range map, supplanting dma_pfn_offset")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Jim Quinlan <jim2101024@gmail.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Frank Rowand <frank.rowand@sony.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20211210184636.7273-2-jim2101024@gmail.com
    (cherry picked from commit a8d61a9112ad0c9216ab45d050991e07bc4f3408)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 17:07:00 -06:00
Al Stone 8c7f08e319 of: unittest: document intentional interrupt-map provider build warning
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit 9526565591b8db3d363be21a03b66b20575039a2
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Fri Oct 29 20:10:39 2021 -0500

    of: unittest: document intentional interrupt-map provider build warning

    A recently implemented dtc compiler warning reports a dts problem
    via a build warning:

       drivers/of/unittest-data/tests-interrupts.dtsi:32.26-35.6: Warning (interrupt_map): /testcase-data/interrupts/intmap1: Missing '#address-cells' in interrupt-map provider

    The warning will be addressed by a separate patch by suppressing the
    warning for .dts files that include this .dtsi.  This patch documents
    why the warning is due to a deliberately incorrect .dtsi file so that
    no one will fix the .dtsi file to prevent the build warning.

    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Link: https://lore.kernel.org/r/20211030011039.2106946-1-frowand.list@gmail.com
    Signed-off-by: Rob Herring <robh@kernel.org>
    (cherry picked from commit 9526565591b8db3d363be21a03b66b20575039a2)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 16:12:55 -06:00
Al Stone cd5bec752b of: unittest: fix EXPECT text for gpio hog errors
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit e85860e5bc077865a04f0a88d0b0335d3200484a
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Thu Oct 28 20:32:25 2021 -0500

    of: unittest: fix EXPECT text for gpio hog errors

    The console message text for gpio hog errors does not match
    what unittest expects.

    Fixes: f4056e705b ("of: unittest: add overlay gpio test to catch gpio hog problem")
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Link: https://lore.kernel.org/r/20211029013225.2048695-1-frowand.list@gmail.com
    Signed-off-by: Rob Herring <robh@kernel.org>
    (cherry picked from commit e85860e5bc077865a04f0a88d0b0335d3200484a)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 16:12:55 -06:00
Al Stone 12e058d539 of/unittest: Add of_node_put() before return
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2071840
Tested: This is one of a series of patch sets to enable Arm SystemReady IR
 support in the kernel for NXP i.MX8 platforms.  At this stage, this
 has been tested by ensuring we can survive the CI/CD loop -- i.e.,
 that we have not broken anything else, and a simple boot test.  When
 sufficient drivers have been brought in for i.MX8M, we will be able
 to run further tests.

commit f925a97b32f41944c7e03215149be2886d6603b9
Author: Wan Jiabing <wanjiabing@vivo.com>
Date:   Fri Oct 15 04:26:58 2021 -0400

    of/unittest: Add of_node_put() before return

    Fix following coccicheck warning:
    ./drivers/of/unittest.c:3091:1-23: WARNING: Function
    for_each_child_of_node should have of_node_put() before return

    Early exits from for_each_child_of_node should decrement the
    node reference counter.

    Signed-off-by: Wan Jiabing <wanjiabing@vivo.com>
    Link: https://lore.kernel.org/r/20211015082658.19005-1-wanjiabing@vivo.com
    Signed-off-by: Rob Herring <robh@kernel.org>
    (cherry picked from commit f925a97b32f41944c7e03215149be2886d6603b9)

Signed-off-by: Al Stone <ahs3@redhat.com>
2022-07-01 16:12:55 -06:00
Zhen Lei 67c54655b6 of: unittest: Use DEFINE_RES_MEM() to simplify code
No functional change.

Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Link: https://lore.kernel.org/r/20210601062223.9724-1-thunder.leizhen@huawei.com
Signed-off-by: Rob Herring <robh@kernel.org>
2021-06-04 17:29:18 -05:00
Frank Rowand 48d499bd89 of: unittest: overlay: ensure proper alignment of copied FDT
The Devicetree standard specifies an 8 byte alignment of the FDT.
Code in libfdt expects this alignment for an FDT image in memory.
kmemdup() returns 4 byte alignment on openrisc.  Replace kmemdup()
with kmalloc(), align pointer, memcpy() to get proper alignment.

The 4 byte alignment exposed a related bug which triggered a crash
on openrisc with:
commit 79edff1206 ("scripts/dtc: Update to upstream version v1.6.0-51-g183df9e9c2b9")
as reported in:
https://lore.kernel.org/lkml/20210327224116.69309-1-linux@roeck-us.net/

Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Link: https://lore.kernel.org/r/20210408204508.2276230-1-frowand.list@gmail.com
Signed-off-by: Rob Herring <robh@kernel.org>
2021-04-08 16:38:47 -05:00
Frank Rowand 649cab56de of: properly check for error returned by fdt_get_name()
fdt_get_name() returns error values via a parameter pointer
instead of in function return.  Fix check for this error value
in populate_node() and callers of populate_node().

Chasing up the caller tree showed callers of various functions
failing to initialize the value of pointer parameters that
can return error values.  Initialize those values to NULL.

The bug was introduced by
commit e6a6928c3e ("of/fdt: Convert FDT functions to use libfdt")
but this patch can not be backported directly to that commit
because the relevant code has further been restructured by
commit dfbd4c6eff ("drivers/of: Split unflatten_dt_node()")

The bug became visible by triggering a crash on openrisc with:
commit 79edff1206 ("scripts/dtc: Update to upstream version v1.6.0-51-g183df9e9c2b9")
as reported in:
https://lore.kernel.org/lkml/20210327224116.69309-1-linux@roeck-us.net/

Fixes: 79edff1206 ("scripts/dtc: Update to upstream version v1.6.0-51-g183df9e9c2b9")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20210405032845.1942533-1-frowand.list@gmail.com
Signed-off-by: Rob Herring <robh@kernel.org>
2021-04-07 13:07:30 -05:00
Rob Herring 83c4a4eec0 of: Remove of_dev_{get,put}()
of_dev_get() and of_dev_put are just wrappers for get_device()/put_device()
on a platform_device. There's also already platform_device_{get,put}()
wrappers for this purpose. Let's update the few users and remove
of_dev_{get,put}().

Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Julia Lawall <Julia.Lawall@inria.fr>
Cc: Gilles Muller <Gilles.Muller@inria.fr>
Cc: Nicolas Palix <nicolas.palix@imag.fr>
Cc: Michal Marek <michal.lkml@markovi.net>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: netdev@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-usb@vger.kernel.org
Cc: cocci@systeme.lip6.fr
Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20210211232745.1498137-2-robh@kernel.org
2021-02-12 19:23:39 -06:00
Catalin Marinas aed5041ef9 of: unittest: Fix build on architectures without CONFIG_OF_ADDRESS
of_dma_get_max_cpu_address() is not defined if !CONFIG_OF_ADDRESS, so
return early in of_unittest_dma_get_max_cpu_address().

Fixes: 07d13a1d61 ("of: unittest: Add test for of_dma_get_max_cpu_address()")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2020-12-02 16:49:39 +00:00
Nicolas Saenz Julienne 07d13a1d61 of: unittest: Add test for of_dma_get_max_cpu_address()
Introduce a test for of_dma_get_max_cup_address(), it uses the same DT
data as the rest of dma-ranges unit tests.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201119175400.9995-5-nsaenzjulienne@suse.de
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2020-11-20 09:34:13 +00:00
Jim Quinlan e0d072782c dma-mapping: introduce DMA range map, supplanting dma_pfn_offset
The new field 'dma_range_map' in struct device is used to facilitate the
use of single or multiple offsets between mapping regions of cpu addrs and
dma addrs.  It subsumes the role of "dev->dma_pfn_offset" which was only
capable of holding a single uniform offset and had no region bounds
checking.

The function of_dma_get_range() has been modified so that it takes a single
argument -- the device node -- and returns a map, NULL, or an error code.
The map is an array that holds the information regarding the DMA regions.
Each range entry contains the address offset, the cpu_start address, the
dma_start address, and the size of the region.

of_dma_configure() is the typical manner to set range offsets but there are
a number of ad hoc assignments to "dev->dma_pfn_offset" in the kernel
driver code.  These cases now invoke the function
dma_direct_set_offset(dev, cpu_addr, dma_addr, size).

Signed-off-by: Jim Quinlan <james.quinlan@broadcom.com>
[hch: various interface cleanups]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
2020-09-17 18:43:56 +02:00
Nicolas Saenz Julienne bda2127827 of: unittest: Use bigger address cells to catch parser regressions
Getting address and size cells for dma-ranges/ranges parsing is tricky
and shouldn't rely on the node's count_cells() method. The function
starts looking for cells on the parent node, as its supposed to work
with device nodes, which doesn't work when input with bus nodes, as
generally done when parsing ranges.

Add test to catch regressions on that specific quirk as developers will
be tempted to edit it out in favor of the default method.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Link: https://lore.kernel.org/r/9200970a917a9cabdc5b17483b5a8725111eb9d0.camel@suse.de
Signed-off-by: Rob Herring <robh@kernel.org>
2020-08-03 16:24:49 -06:00
Frank Rowand 29acfb6559 of: unittest: kmemleak in duplicate property update
kmemleak reports several memory leaks from devicetree unittest.
This is the fix for problem 5 of 5.

When overlay 'overlay_bad_add_dup_prop' is applied, the apply code
properly detects that a memory leak will occur if the overlay is removed
since the duplicate property is located in a base devicetree node and
reports via printk():

  OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail
  OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail

The overlay is removed when the apply code detects multiple changesets
modifying the same property.  This is reported via printk():

  OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail

As a result of this error, the overlay is removed resulting in the
expected memory leak.

Add another device node level to the overlay so that the duplicate
property is located in a node added by the overlay, thus no memory
leak will occur when the overlay is removed.

Thus users of kmemleak will not have to debug this leak in the future.

Fixes: 2fe0e8769d ("of: overlay: check prevents multiple fragments touching same property")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-04-17 08:31:34 -05:00
Frank Rowand 145fc138f9 of: unittest: kmemleak in of_unittest_overlay_high_level()
kmemleak reports several memory leaks from devicetree unittest.
This is the fix for problem 3 of 5.

of_unittest_overlay_high_level() failed to kfree the newly created
property when the property named 'name' is skipped.

Fixes: 39a751a4cb ("of: change overlay apply input data from unflattened to FDT")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-04-17 08:31:34 -05:00
Frank Rowand 216830d241 of: unittest: kmemleak in of_unittest_platform_populate()
kmemleak reports several memory leaks from devicetree unittest.
This is the fix for problem 2 of 5.

of_unittest_platform_populate() left an elevated reference count for
grandchild nodes (which are platform devices).  Fix the platform
device reference counts so that the memory will be freed.

Fixes: fb2caa50fb ("of/selftest: add testcase for nodes with same name and address")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-04-17 08:31:34 -05:00
Frank Rowand b3fb36ed69 of: unittest: kmemleak on changeset destroy
kmemleak reports several memory leaks from devicetree unittest.
This is the fix for problem 1 of 5.

of_unittest_changeset() reaches deeply into the dynamic devicetree
functions.  Several nodes were left with an elevated reference
count and thus were not properly cleaned up.  Fix the reference
counts so that the memory will be freed.

Fixes: 201c910bd6 ("of: Transactional DT support.")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-04-17 08:31:34 -05:00
Frank Rowand 1adc86798f of: some unittest overlays not untracked
kernel test robot reported "WARNING: held lock freed!" triggered by
unittest_gpio_remove(), which should not have been called because
the related gpio overlay was not tracked.  Another overlay that
was tracked had previously used the same id as the gpio overlay
but had not been untracked when the overlay was removed.  Thus the
clean up function of_unittest_destroy_tracked_overlays() incorrectly
attempted to remove the reused overlay id.

Patch contents:

  - Create tracking related helper functions
  - Change BUG() to WARN_ON() for overlay id related issues
  - Add some additional error checking for valid overlay id values
  - Add the missing overlay untrack
  - update comment on expectation that overlay ids are assigned in
    sequence

Fixes: 492a22aceb ("of: unittest: overlay: Keep track of created overlays")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-03-31 15:57:58 -06:00
Frank Rowand fb227f597d of: gpio unittest kfree() wrong object
kernel test robot reported "WARNING: held lock freed!" triggered by
unittest_gpio_remove().  unittest_gpio_remove() was unexpectedly
called due to an error in overlay tracking.  The remove had not
been tested because the gpio overlay removal tests have not been
implemented.

kfree() gdev instead of pdev.

Fixes: f4056e705b ("of: unittest: add overlay gpio test to catch gpio hog problem")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-03-31 15:57:39 -06:00
Frank Rowand 485bb19d0b of: unittest: make gpio overlay test dependent on CONFIG_OF_GPIO
Randconfig testing found compile errors in drivers/of/unittest.c if
CONFIG_GPIOLIB is not set because CONFIG_OF_GPIO depends on
CONFIG_GPIOLIB.  Make the gpio overlay test depend on CONFIG_OF_GPIO.

No code is modified, it is only moved to a different location and
protected with #ifdef CONFIG_OF_GPIO.  An empty
of_unittest_overlay_gpio() is added in the #else.

Fixes: f4056e705b ("of: unittest: add overlay gpio test to catch gpio hog problem")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
Signed-off-by: Rob Herring <robh@kernel.org>
2020-03-02 11:32:30 -06:00
Frank Rowand 0ac1743979 of: unittest: annotate warnings triggered by unittest
Some tests in the devicetree unittests result in printk messages
from the code being tested.  It can be difficult to determine
whether the messages are the result of unittest or are potentially
reporting bugs that should be fixed.  The most recent example of
a person asking whether to be concerned about these messages is [1].

Add annotations for all messages triggered by unittests, except
KERN_DEBUG messages.  (KERN_DEBUG is a special case due to the
possible interaction of CONFIG_DYNAMIC_DEBUG.)

The format of the annotations is expected to change when unittests
are converted to use the kunit infrastructure when the broader
testing community has an opportunity to discuss the implementation
of annotations of test triggered messages.

[1] https://lore.kernel.org/r/6021ac63-b5e0-ed3d-f964-7c6ef579cd68@huawei.com

Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-02-26 10:42:15 -06:00
Frank Rowand f4056e705b of: unittest: add overlay gpio test to catch gpio hog problem
Geert reports that gpio hog nodes are not properly processed when
the gpio hog node is added via an overlay reply and provides an
RFC patch to fix the problem [1].

Add a unittest that shows the problem.  Unittest will report "1 failed"
test before applying Geert's RFC patch and "0 failed" after applying
Geert's RFC patch.

[1] https://lore.kernel.org/linux-devicetree/20191230133852.5890-1-geert+renesas@glider.be/

Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-02-26 10:42:04 -06:00
Erhard Furtner 2aacace6db of: unittest: fix memory leak in attach_node_and_children
In attach_node_and_children memory is allocated for full_name via
kasprintf. If the condition of the 1st if is not met the function
returns early without freeing the memory. Add a kfree() to fix that.

This has been detected with kmemleak:
Link: https://bugzilla.kernel.org/show_bug.cgi?id=205327

It looks like the leak was introduced by this commit:
Fixes: 5babefb7f7 ("of: unittest: allow base devicetree to have symbol metadata")

Signed-off-by: Erhard Furtner <erhard_f@mailbox.org>
Reviewed-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Tyrel Datwyler <tyreld@linux.ibm.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-11-26 12:32:43 -07:00
Rob Herring b4e8c0b12d Merge branch 'dt/linus' into dt/next 2019-10-25 09:14:56 -05:00
Navid Emamdoost e13de8fe0d of: unittest: fix memory leak in unittest_data_add
In unittest_data_add, a copy buffer is created via kmemdup. This buffer
is leaked if of_fdt_unflatten_tree fails. The release for the
unittest_data buffer is added.

Fixes: b951f9dc7f ("Enabling OF selftest to run without machine's devicetree")
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Reviewed-by: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-23 14:42:44 -05:00
Rob Herring 04db93a95a of/unittest: Add dma-ranges address translation tests
The functions for parsing 'dma-ranges' ranges are buggy and fail to
handle several conditions. Add new tests for of_dma_get_range() and
for_each_of_pci_range().

With this test, we get 5 new failures which are fixed in subsequent
commits:

OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/device@70000000)
FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/device@70000000 rc=-22
OF: translation of DMA address(10000000) to CPU address failed node(/testcase-data/address-tests/bus@80000000/device@1000)
FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/bus@80000000/device@1000 rc=-22
OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/pci@90000000)
FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/pci@90000000 rc=-22
FAIL of_unittest_pci_dma_ranges():851 for_each_of_pci_range wrong CPU addr (d0000000) on node /testcase-data/address-tests/pci@90000000
FAIL of_unittest_pci_dma_ranges():861 for_each_of_pci_range wrong CPU addr (ffffffffffffffff) on node /testcase-data/address-tests/pci@90000000

Cc: Robin Murphy <robin.murphy@arm.com>
Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-10-08 13:55:26 -05:00
Nishka Dasgupta a7bcae591f of: unittest: Add of_node_put() before return
The local variable np in function of_unittest_platform_populate takes
the return value of of_find_node_by_path, which gets a node but does not
put it. If np is not put before return it may cause a memory leak. Hence
put np before a return statement.
Issue found with Coccinelle.

Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-08-27 11:21:54 -05:00
Wolfram Sang 272d28bdae of: unittest: simplify getting the adapter of a client
We have a dedicated pointer for that, so use it. Much easier to read and
less computation involved.

Reported-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-07-08 20:23:35 -06:00
Geert Uytterhoeven 2a656cb5a4 of: unittest: Remove error printing on OOM
There is no need to print a backtrace or other error message if
kzalloc(), kmemdup(), or devm_kzalloc() fails, as the memory allocation
core already takes care of that.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-05-02 16:38:59 -05:00
Mike Rapoport 8a7f97b902 treewide: add checks for the return value of memblock_alloc*()
Add check for the return value of memblock_alloc*() functions and call
panic() in case of error.  The panic message repeats the one used by
panicing memblock allocators with adjustment of parameters to include
only relevant ones.

The replacement was mostly automated with semantic patches like the one
below with manual massaging of format strings.

  @@
  expression ptr, size, align;
  @@
  ptr = memblock_alloc(size, align);
  + if (!ptr)
  + 	panic("%s: Failed to allocate %lu bytes align=0x%lx\n", __func__, size, align);

[anders.roxell@linaro.org: use '%pa' with 'phys_addr_t' type]
  Link: http://lkml.kernel.org/r/20190131161046.21886-1-anders.roxell@linaro.org
[rppt@linux.ibm.com: fix format strings for panics after memblock_alloc]
  Link: http://lkml.kernel.org/r/1548950940-15145-1-git-send-email-rppt@linux.ibm.com
[rppt@linux.ibm.com: don't panic if the allocation in sparse_buffer_init fails]
  Link: http://lkml.kernel.org/r/20190131074018.GD28876@rapoport-lnx
[akpm@linux-foundation.org: fix xtensa printk warning]
Link: http://lkml.kernel.org/r/1548057848-15136-20-git-send-email-rppt@linux.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Reviewed-by: Guo Ren <ren_guo@c-sky.com>		[c-sky]
Acked-by: Paul Burton <paul.burton@mips.com>		[MIPS]
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>	[s390]
Reviewed-by: Juergen Gross <jgross@suse.com>		[Xen]
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>	[m68k]
Acked-by: Max Filippov <jcmvbkbc@gmail.com>		[xtensa]
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Christoph Hellwig <hch@lst.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Dennis Zhou <dennis@kernel.org>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Guo Ren <guoren@kernel.org>
Cc: Mark Salter <msalter@redhat.com>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rich Felker <dalias@libc.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Stafford Horne <shorne@gmail.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-12 10:04:02 -07:00
Brendan Higgins 935665c1a1 of: unittest: unflatten device tree on UML when testing
UML supports enabling OF, and is useful for running the device tree
tests, so add support for unflattening device tree blobs so we can
actually use it.

Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
Reviewed-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-02-28 11:50:10 -06:00
Frank Rowand 89716dc353 of: unittest: add caution to function header comment
Name of function attach_node_and_children() is misleading because
if the node already exists in the livetree then only the node's
properties are attached.  This works for the existing test data,
but add comment warning of this misleading name.

Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-02-13 12:13:03 -06:00
Frank Rowand fd25ffdfd0 of: unittest: remove report of expected error
update_node_properties() reports an error when the test data contains
a node (such as "/aliases") that already exists in the base devicetree.
The error is caused by of_fdt_unflatten_tree() autogenerating the
"name" property, thus both the existing node and the new node will
have a property with the same name.  Suppress reporting the known
error.

Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2019-02-13 12:12:53 -06:00