2023-01-30 16:55:00

by Eric Curtin

[permalink] [raw]
Subject: [PATCH] iommu: dart: DART_T8110_ERROR range should be 0 to 5

This was detected by smatch as one "else if" statement could never be
reached. Confirmed bit order by comparing with python implementation [1].

drivers/iommu/apple-dart.c:991 apple_dart_t8110_irq()
warn: duplicate check 'error_code == ((((1))) << (3))'
(previous on line 989)

Link: https://github.com/AsahiLinux/m1n1/commit/96b2d584feec1e3f7bfa [1]

Fixes: d8bcc870d99d ("iommu: dart: Add t8110 DART support")
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Eric Curtin <[email protected]>
---
drivers/iommu/apple-dart.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c
index efe877842f72..3adacf4094d7 100644
--- a/drivers/iommu/apple-dart.c
+++ b/drivers/iommu/apple-dart.c
@@ -112,15 +112,15 @@

#define DART_T8110_ERROR_MASK 0x104

-#define DART_T8110_ERROR_READ_FAULT BIT(4)
-#define DART_T8110_ERROR_WRITE_FAULT BIT(3)
+#define DART_T8110_ERROR_READ_FAULT BIT(5)
+#define DART_T8110_ERROR_WRITE_FAULT BIT(4)
#define DART_T8110_ERROR_NO_PTE BIT(3)
#define DART_T8110_ERROR_NO_PMD BIT(2)
#define DART_T8110_ERROR_NO_PGD BIT(1)
#define DART_T8110_ERROR_NO_TTBR BIT(0)

#define DART_T8110_ERROR_ADDR_LO 0x170
-#define DART_T8110_ERROR_ADDR_HI 0x174
+#define DART_T8110_ERROR_ADDR_HI 0x175

#define DART_T8110_PROTECT 0x200
#define DART_T8110_UNPROTECT 0x204
--
2.39.1



2023-01-30 18:17:26

by Sven Peter

[permalink] [raw]
Subject: Re: [PATCH] iommu: dart: DART_T8110_ERROR range should be 0 to 5

Hi,


On Mon, Jan 30, 2023, at 17:53, Eric Curtin wrote:
> This was detected by smatch as one "else if" statement could never be
> reached. Confirmed bit order by comparing with python implementation [1].
>
> drivers/iommu/apple-dart.c:991 apple_dart_t8110_irq()
> warn: duplicate check 'error_code == ((((1))) << (3))'
> (previous on line 989)
>
> Link: https://github.com/AsahiLinux/m1n1/commit/96b2d584feec1e3f7bfa [1]
>
> Fixes: d8bcc870d99d ("iommu: dart: Add t8110 DART support")
> Reported-by: Dan Carpenter <[email protected]>
> Signed-off-by: Eric Curtin <[email protected]>
> ---
> drivers/iommu/apple-dart.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c
> index efe877842f72..3adacf4094d7 100644
> --- a/drivers/iommu/apple-dart.c
> +++ b/drivers/iommu/apple-dart.c
> @@ -112,15 +112,15 @@
>
> #define DART_T8110_ERROR_MASK 0x104
>
> -#define DART_T8110_ERROR_READ_FAULT BIT(4)
> -#define DART_T8110_ERROR_WRITE_FAULT BIT(3)
> +#define DART_T8110_ERROR_READ_FAULT BIT(5)
> +#define DART_T8110_ERROR_WRITE_FAULT BIT(4)

this looks good!

> #define DART_T8110_ERROR_NO_PTE BIT(3)
> #define DART_T8110_ERROR_NO_PMD BIT(2)
> #define DART_T8110_ERROR_NO_PGD BIT(1)
> #define DART_T8110_ERROR_NO_TTBR BIT(0)
>
> #define DART_T8110_ERROR_ADDR_LO 0x170
> -#define DART_T8110_ERROR_ADDR_HI 0x174
> +#define DART_T8110_ERROR_ADDR_HI 0x175

this doesn't. 0x174 already is the correct offset.


Thanks,


Sven