Use direct returns instead of gotos. Error handling code becomes
smaller and better readable.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc_sysfs.c | 20 +++-
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac
Struct member dev_ch_attribute->channel is always used as unsigned
int. Change type to unsigned int to avoid type casts.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc_sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/e
On 16.08.19 11:55:59, Borislav Petkov wrote:
> On Mon, Jun 24, 2019 at 03:09:22PM +0000, Robert Richter wrote:
> > The ghes driver is not able yet to count legacy API counters in sysfs,
> > e.g.:
> >
> > /sys/devices/system/edac/mc/mc0/csrow2/ce_count
> > /sys/
On 14.08.19 17:18:24, Borislav Petkov wrote:
> On Mon, Jun 24, 2019 at 03:09:11PM +0000, Robert Richter wrote:
> > Make code more readable by introducing a mci_for_each_dimm() iterator.
> > Now, we just get a pointer to a struct dimm_info. Direct array access
> > using an inde
On 13.08.19 16:59:47, Borislav Petkov wrote:
> > + *
> > + * For 2 layers, this macro is similar to allocate a bi-dimensional array
> > + * and to return "dimms[layer0][layer1]";
> > + *
> > + * For 3 layers, this macro is similar to allocate a tri-dimensional array
> > + * and to return
On 12.08.19 09:32:22, Borislav Petkov wrote:
> On Mon, Aug 12, 2019 at 06:42:00AM +0000, Robert Richter wrote:
> > With the grain_bits calculation the mask is rounded up to the next
> > power of 2 value.
>
> mask= 0xff00ff00
grain = ~mask + 1
> ~mask = 0x
On 09.08.19 15:15:59, Borislav Petkov wrote:
> On Mon, Jun 24, 2019 at 03:08:57PM +0000, Robert Richter wrote:
> > The conversion from the physical address mask to a grain (defined as
> > granularity in bytes) is broken:
> >
> > e->grain = ~(mem_err-&g
Hi James,
On 02.08.19 18:05:07, James Morse wrote:
> On 24/06/2019 16:09, Robert Richter wrote:
> > In a later patch we want to have one mc device per node. This patch
> > extracts the numa node information for each dimm. This is done by
> > collecting the physical addres
On 02.08.19 18:04:54, James Morse wrote:
> After a shorter game of spot-the-difference:
> Reviewed-by: James Morse
>
> Previously here:
> https://lore.kernel.org/linux-edac/e566fe1d-ed06-53bc-6827-f6dfa32ee...@arm.com/
>
>
> Please pick up tags when posting a new version.
> If you don't do
On 02.08.19 18:04:46, James Morse wrote:
> On 24/06/2019 16:08, Robert Richter wrote:
> > The detail_location[] string in struct ghes_edac_pvt is complete
> > useless and data is just copied around. Put everything into
> > e->other_detail from the beginning.
I am updat
Hi all,
this is a friendly ping for review of this series.
Thanks,
-Robert
On 24.06.19 15:08:52, Robert Richter wrote:
> Current arm64 systems that use the ghes driver lack kernel support for
> a proper memory error reporting. Following issues are seen:
>
> * Error record shows
On 01.08.19 15:29:03, Hawa, Hanna wrote:
> On 8/1/2019 2:35 PM, Robert Richter wrote:
> > On 15.07.19 13:53:07, Hanna Hawa wrote:
> > > Add a counter parameter in order to avoid losing errors count for edac
> > > device, the error count reports the number of errors repor
On 15.07.19 13:53:07, Hanna Hawa wrote:
> Add a counter parameter in order to avoid losing errors count for edac
> device, the error count reports the number of errors reported by an edac
> device similar to the way MC_EDAC do.
>
> Signed-off-by: Hanna Hawa
> ---
> drivers/edac/altera_edac.c
On 25.06.19 09:42:14, Peter Zijlstra wrote:
> On Mon, Jun 24, 2019 at 04:58:10PM -0400, Frank Ch. Eigler wrote:
> > From peterz's comments, the patches, it's not obvious to me how one is
> > to choose between 0 (NOTIFY_DONE) and 1 (NOTIFY_OK) in the case of a
> > routine success.
>
> I'm not
On 24.06.19 11:18:45, Peter Zijlstra wrote:
> While auditing all module notifiers I noticed a whole bunch of fail
> wrt the return value. Notifiers have a 'special' return semantics.
>
> Cc: Robert Richter
> Cc: Steven Rostedt
> Cc: Ingo Molnar
> Cc: Alexei Starovoitov
On 26.06.19 10:33:28, James Morse wrote:
> On 20/06/2019 07:55, Robert Richter wrote:
> > It is not that I am keen on fixing legacy edac sysfs. It just happens
> > while unifying the error handlers in ghes_edac and edac_mc. As I see
> > you are reluctant on just letting it g
On 26.06.19 10:33:39, James Morse wrote:
> On 24/06/2019 16:09, Robert Richter wrote:
> > James Morse: "I'm all for removing/warning-its-broken it when
> > ghes_edac is in use."
>
> Thanks for taking that out of context. The very next word was 'but':
> http://lo
fter sysfs reset_counters.
Robert Richter (24):
EDAC, mc: Fix grain_bits calculation
EDAC, ghes: Fix grain calculation
EDAC, ghes: Remove pvt->detail_location string
EDAC, ghes: Unify trace_mc_event() code with edac_mc driver
EDAC, mc: Fix and improve sysfs init functions
EDAC: Kill EDAC_DIM
Use standard macros for page calculations.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index 786f1b32eee1..746083876b5f 100644
--- a/drivers/edac
Rework edac_raw_mc_handle_error() to use struct dimm_info.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 28 +---
drivers/edac/edac_mc.h | 2 ++
drivers/edac/ghes_edac.c | 5 -
3 files changed, 19 insertions(+), 16 deletions(-)
diff --git
registration will be implemented in a later
patch.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 166 ++-
1 file changed, 127 insertions(+), 39 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index 8063996a311d..44bfb499b147
Make code more readable by introducing a mci_for_each_dimm() iterator.
Now, we just get a pointer to a struct dimm_info. Direct array access
using an index is no longer needed to iterate.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 18 ++
drivers/edac
he unused counters that just add complexity.
Error counter values are directly stored in struct dimm_info now.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 98
drivers/edac/edac_mc_sysfs.c | 20 +++-
drivers/edac/ghes_edac.c | 5
igned-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 1 +
drivers/edac/ghes_edac.c| 8 ++--
drivers/edac/i10nm_base.c | 3 +-
drivers/edac/i3200_edac.c | 3 +-
drivers/edac/i5000_edac.c | 5 +--
drivers/edac/i5100_edac.c | 3 +-
drivers/edac/i5400_edac.c | 4 +-
dri
This is in preparation of the next patch to make the changes there
more visible.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 97 ++--
1 file changed, 53 insertions(+), 44 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac
This is private to the ghes_edac driver, so better keep that data in
the struct ghes_dimm_info.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 15 +++
include/linux/edac.h | 2 --
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/drivers/edac
ition
from x86 to arm64. I leave that decision up to James.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 34 +++---
drivers/edac/edac_mc.h | 7 +++
drivers/edac/ghes_edac.c | 4 +++-
3 files changed, 37 insertions(+), 8 deletions(-)
diff --git
this way. The edac's driver uses
internally a dimm index already for data access.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 83
drivers/edac/edac_mc.h | 17 ++--
drivers/edac/ghes_edac.c | 7 ++--
3 files changed, 76 insertions
/mc1/dimm3/dimm_label:N1 DIMM_L0
/sys/devices/system/edac/mc/mc1/dimm4/dimm_label:N1 DIMM_M0
/sys/devices/system/edac/mc/mc1/dimm5/dimm_label:N1 DIMM_N0
/sys/devices/system/edac/mc/mc1/dimm6/dimm_label:N1 DIMM_O0
/sys/devices/system/edac/mc/mc1/dimm7/dimm_label:N1 DIMM_P0
Signed-off-by: Robert
and select the dimm accordingly. Inconsistent error
records will be reported which is the case if the same dimm handle
reports errors with different node, card or module.
The change allows to enable per-layer reporting based on node, card
and module in the next patch.
Signed-off-by: Robert Richter
to edac_raw_mc_handle_error().
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 45 ++--
drivers/edac/ghes_edac.c | 76 ++--
include/linux/edac.h | 2 ++
3 files changed, 63 insertions(+), 60 deletions(-)
diff --git a/drivers
Remove gotos as they just create overhead. Also, fix debug message for
the case edac_create_dimm_object() is failing.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc_sysfs.c | 25 +
1 file changed, 9 insertions(+), 16 deletions(-)
diff --git a/drivers/edac
/dimm_ce_count:4
/sys/devices/system/edac/mc/mc1/dimm3/dimm_ce_count:1
/sys/devices/system/edac/mc/mc1/dimm6/dimm_ce_count:2
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 126 ---
1 file changed, 104 insertions(+), 22 deletions(-)
diff --git a/drivers
: DIMM14: Found mem range
[0x009ffd00-0x00bffcff] on node 1
EDAC DEBUG: mem_info_setup: DIMM15: Found mem range
[0x009ffd00-0x00bffcff] on node 1
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 98 +++-
1 file changed
o longer a bit mask. The formula is now the same as in
edac_mc and can later be unified.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 12 ++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index 7f19f1c672c3..
can use
it too.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 38 +-
drivers/edac/edac_mc.h | 7 ++-
drivers/edac/ghes_edac.c | 2 +-
3 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/drivers/edac/edac_mc.c b/drivers/edac
We do not need to calculate the offset in the mc's dimm array, let's
just store the index in struct dimm_info and we can get rid of this
macro.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 13
drivers/edac/edac_mc_sysfs.c | 20 --
include/linux
Remove needless and boilerplate variable declarations. No functional
changes.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 21 +
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 27277ca46ab3
grain_bits = fls_long(8 - 1)
grain_bits = fls_long(8 - 1)
grain_bits = 3
grain = 1 << 3 = 8
Note: We need to check if the hardware reports a reasonable grain != 0
and fallback with a warn_once and 1 byte granularity otherwise.
Signed-off-by: Robert R
Duplicate code, remove it. The only difference is the missing
IS_ENABLED(CONFIG_RAS) switch in ghes_edac which we will need there
too.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 34 +-
drivers/edac/ghes_edac.c | 16 +---
2 files
The detail_location[] string in struct ghes_edac_pvt is complete
useless and data is just copied around. Put everything into
e->other_detail from the beginning.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 16
1 file changed, 8 insertions(+), 8 deleti
On 19.06.19 18:22:32, James Morse wrote:
> > In any case, this patch cleans up code as old API's counter code is
> > isolated and moved to common code. Making the counter's work for ghes
> > is actually a side-effect here. The cleanup is a prerequisit for
> > follow on patches.
>
> I'm all for
On 04.06.19 18:15:50, James Morse wrote:
> On 03/06/2019 14:10, Robert Richter wrote:
> > The +1 looks odd to me also for the edac_mc driver, but I need to take
> > a closer look here as well as some logs suggest the grain is
> > calculated correctly.
>
> My theory
Hi James,
thank you for your review and response here. See my comments below.
On 29.05.19 18:51:00, James Morse wrote:
> On 29/05/2019 09:44, Robert Richter wrote:
> > In a later patch we want to have one mc device per node. This patch
> > extracts the numa node informatio
On 29.05.19 16:13:02, James Morse wrote:
> On 29/05/2019 09:44, Robert Richter wrote:
> > The ghes driver is not able yet to count legacy API counters in sysfs,
> > e.g.:
> >
> > /sys/devices/system/edac/mc/mc0/csrow2/ce_count
> > /sys/devices/system/edac/mc/
On 29.05.19 16:13:20, James Morse wrote:
> Hi Robert,
>
> On 29/05/2019 09:44, Robert Richter wrote:
> > The detail_location[] string in struct ghes_edac_pvt is complete
> > useless and data is just copied around. Put everything into
> > e->other_detail from the begi
On 11.06.19 19:28:30, Borislav Petkov wrote:
> On Wed, May 29, 2019 at 08:44:05AM +0000, Robert Richter wrote:
> > Always use put_device() after device_add() failed.
> >
> > Signed-off-by: Robert Richter
> > ---
> > drivers/edac/edac_mc_sysfs.c | 36 ++
On 29.05.19 16:12:38, James Morse wrote:
> Hi Robert,
>
> On 29/05/2019 09:44, Robert Richter wrote:
> > Almost duplicate code, remove it.
>
> almost?
The grain ... as noted below.
>
>
> > Note: there is a difference in the calculation of the grain_bits,
>
On 29.05.19 16:54:52, Borislav Petkov wrote:
> On Wed, May 29, 2019 at 08:44:01AM +0000, Robert Richter wrote:
> > Patch #1: Repost of an already accepted patch sent to the ml. Adding
> > it here for completeness as I did not find it in a repository yet.
>
> Try mainline:
>
Hi James,
thanks for your review. See below.
On 29.05.19 16:06:55, James Morse wrote:
> Hi Robert,
>
> On 29/05/2019 09:44, Robert Richter wrote:
> > In a later patch we want add more information about the memory
> > hierarchy (NUMA topology, DIMM label information). Rework
Always use put_device() after device_add() failed.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc_sysfs.c | 36 +++-
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index
Rework edac_raw_mc_handle_error() to use struct dimm_info.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 28 +---
drivers/edac/edac_mc.h | 2 ++
drivers/edac/ghes_edac.c | 6 +-
3 files changed, 20 insertions(+), 16 deletions(-)
diff --git
Almost duplicate code, remove it.
Note: there is a difference in the calculation of the grain_bits,
using the edac_mc's version here.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 22 +++---
drivers/edac/ghes_edac.c | 9 -
2 files changed, 11 insertions
The detail_location[] string in struct ghes_edac_pvt is complete
useless and data is just copied around. Put everything into
e->other_detail from the beginning.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 17 +
1 file changed, 9 insertions(+), 8 deleti
This is in preparation of the next patch to make the changes there
more visible.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 97 ++--
1 file changed, 53 insertions(+), 44 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac
/mc1/dimm3/dimm_label:N1 DIMM_L0
/sys/devices/system/edac/mc/mc1/dimm4/dimm_label:N1 DIMM_M0
/sys/devices/system/edac/mc/mc1/dimm5/dimm_label:N1 DIMM_N0
/sys/devices/system/edac/mc/mc1/dimm6/dimm_label:N1 DIMM_O0
/sys/devices/system/edac/mc/mc1/dimm7/dimm_label:N1 DIMM_P0
Signed-off-by: Robert
We do not need to calculate the offset in the mc's dimm array, let's
just store the index in struct dimm_info and we can get rid of this
macro.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 13
drivers/edac/edac_mc_sysfs.c | 20 --
include/linux
igned-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 1 +
drivers/edac/ghes_edac.c| 8 ++--
drivers/edac/i10nm_base.c | 3 +-
drivers/edac/i3200_edac.c | 3 +-
drivers/edac/i5000_edac.c | 5 +--
drivers/edac/i5100_edac.c | 3 +-
drivers/edac/i5400_edac.c | 4 +-
dri
and select the dimm accordingly. Inconsistent error
records will be reported which is the case if the same dimm handle
reports errors with different node, card or module.
The change allows to enable per-layer reporting based on node, card
and module in the next patch.
Signed-off-by: Robert Richter
will be implemented in a later
patch.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 166 +--
1 file changed, 126 insertions(+), 40 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index ea4d53043199..50f4ee36b755 100644
/dimm_ce_count:4
/sys/devices/system/edac/mc/mc1/dimm3/dimm_ce_count:1
/sys/devices/system/edac/mc/mc1/dimm6/dimm_ce_count:2
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 126 ---
1 file changed, 104 insertions(+), 22 deletions(-)
diff --git a/drivers
Update on CPER DIMM naming convention and DIMM ranks.
Signed-off-by: Robert Richter
---
Documentation/admin-guide/ras.rst | 31 +++
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/Documentation/admin-guide/ras.rst
b/Documentation/admin-guide/ras.rst
can use
it too.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 39 ++-
drivers/edac/edac_mc.h | 7 ++-
drivers/edac/ghes_edac.c | 2 +-
3 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/drivers/edac/edac_mc.c b/drivers/edac
to edac_raw_mc_handle_error().
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 45 ++--
drivers/edac/ghes_edac.c | 76 ++--
include/linux/edac.h | 2 ++
3 files changed, 63 insertions(+), 60 deletions(-)
diff --git a/drivers
: DIMM14: Found mem range
[0x009ffd00-0x00bffcff] on node 1
EDAC DEBUG: mem_info_setup: DIMM15: Found mem range
[0x009ffd00-0x00bffcff] on node 1
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 104 ++-
1 file changed
this way. The edac's driver uses
internally a dimm index already for data access.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 83
drivers/edac/edac_mc.h | 17 ++--
drivers/edac/ghes_edac.c | 7 ++--
3 files changed, 76 insertions
ce_count:1
/sys/devices/system/edac/mc/mc1/dimm6/dimm_ce_count:2
Robert Richter (21):
EDAC, mc: Fix edac_mc_find() in case no device is found
EDAC: Fixes to use put_device() after device_add() errors
EDAC: Kill EDAC_DIMM_PTR() macro
EDAC: Kill EDAC_DIMM_OFF() macro
EDAC:
he unused counters that just add complexity.
Error counter values are directly stored in struct dimm_info now.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 98
drivers/edac/edac_mc_sysfs.c | 17 ++-
drivers/edac/ghes_edac.c | 5
Use standard macros for page calculations.
Signed-off-by: Robert Richter
---
drivers/edac/ghes_edac.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
index 4a13c394fa66..39702bac5eaf 100644
--- a/drivers/edac
Remove needless and boilerplate variable declarations. No functional
changes.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 21 +
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index a6b34ccce3d4
Make code more readable by introducing a mci_for_each_dimm() iterator.
Now, we just get a pointer to a struct dimm_info. Direct array access
using an index is no longer needed to iterate.
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 18 ++
drivers/edac
() is mostly used to search
for existing devices. Thus, the bug is not triggered.
Fixes: c73e8833bec5 ("EDAC, mc: Fix locking around mc_devices list")
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 12
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/dr
() is mostly used to search
for existing devices. Thus, the bug is not triggered.
Fixes: c73e8833bec5 ("EDAC, mc: Fix locking around mc_devices list")
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 12 +---
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/dr
() is mostly used to search
for existing devices. Thus, the bug is not triggered.
Fixes: c73e8833bec5 ("EDAC, mc: Fix locking around mc_devices list")
Signed-off-by: Robert Richter
---
drivers/edac/edac_mc.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/edac/e
On 21.03.19 11:08:59, Robert Richter wrote:
> Our @cavium.com addresses will be switched off soon. Using
> @marvell.com addresses from now on.
>
> Cc: Jayachandran C
> Signed-off-by: Robert Richter
> ---
> MAINTAINERS | 4 ++--
> 1 file changed, 2 insertions(+), 2 delet
Commit-ID: 0fca08122eaf5c956a2cbe12775245d747f8b1ac
Gitweb: https://git.kernel.org/tip/0fca08122eaf5c956a2cbe12775245d747f8b1ac
Author: Robert Richter
AuthorDate: Thu, 28 Mar 2019 20:34:28 +0100
Committer: Ingo Molnar
CommitDate: Fri, 29 Mar 2019 07:35:00 +0100
efi: Unify DMI setup
Our @cavium.com addresses will be switched off soon. Using
@marvell.com addresses from now on.
Cc: Jayachandran C
Signed-off-by: Robert Richter
---
MAINTAINERS | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index a7432224930b..37f0a2aed4bb
On 20.03.19 14:16:07, Robert Richter wrote:
> On 20.03.19 13:05:37, Robert Richter wrote:
> > @@ -167,6 +167,7 @@ static int __init arm_dmi_init(void)
> > * itself, depends on dmi_scan_machine() having been called already.
> > */
> > dmi_scan_machine
might go the slow path again even if we
have seen a failure before for the same or a smaller size.
Cc: # 4.20+
Fixes: bee60e94a1e2 ("iommu/iova: Optimise attempts to allocate iova from 32bit
address range")
Signed-off-by: Robert Richter
---
drivers/iommu/iova.c | 5 +++--
1 file
Since ITS is initialized with with the subsys_initcall now, we don't
need to enable ITS children earlier. Due to the use of irq_domain_
request_host_*() there are no order dependencies when initializing irq
domains.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
Since ITS is initialized with with the subsys_initcall now, we don't
need to enable ITS children earlier. Due to the use of irq_domain_
request_host_*() there are no order dependencies when initializing irq
domains.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
This patch separates its initialization from the gic. Probing and
initialization of its nodes is separate now. There is an own cpu
notifier for its now.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 58 +-
drivers/irqchip/irq-gic-v3.c
To initialize the its nodes at a later point during boot, we need to
split probing from initialization. Collect all information required
for initialization in struct its_node. We can then use the its node
list for initialization.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3
-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 3 ++-
drivers/irqchip/irq-gic-v3.c | 4
include/linux/irqchip/arm-gic-v3.h | 1 -
3 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index
This patch separates its initialization from the gic. Probing and
initialization of its nodes is separate now. There is an own cpu
notifier for its now.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 58 +-
drivers/irqchip/irq-gic-v3.c
To initialize the its nodes at a later point during boot, we need to
split probing from initialization. Collect all information required
for initialization in struct its_node. We can then use the its node
list for initialization.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3
-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 3 ++-
drivers/irqchip/irq-gic-v3.c | 4
include/linux/irqchip/arm-gic-v3.h | 1 -
3 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-pci-msi.c | 66 ++--
1 file changed, 38 insertions(+), 28 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-pci-msi.c
b/drivers/irqchip/irq-gic-v3-its-pci-msi.c
index 8d6d009d1d58..7d7366d55d34 100644
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c | 47 ++---
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
b/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
index 606efa64adff..81dfc534ded8 100644
-by: Robert Richter
---
drivers/bus/fsl-mc/dprc-driver.c | 41
drivers/bus/fsl-mc/fsl-mc-msi.c | 6 +-
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-driver.c
index 52c7e15143d6
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-platform-msi.c | 54 +--
1 file changed, 42 insertions(+), 12 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
index 7b8e87b493fe..1f2849bc58c4
and the
request removed from the list.
With a late_initcall all requests from the list should already have
been handled, otherwise all remaining requests are removed with an
error reported.
Signed-off-by: Robert Richter
---
include/linux/irqdomain.h | 15 +
kernel/irq/irqdomain.c| 163
ATM the last discovered node is initialized first. Though this order
should work too, change the initialization of nodes to probe order as
one would expect it.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-pci-msi.c | 66 ++--
1 file changed, 38 insertions(+), 28 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-pci-msi.c
b/drivers/irqchip/irq-gic-v3-its-pci-msi.c
index 8d6d009d1d58..7d7366d55d34 100644
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c | 47 ++---
1 file changed, 29 insertions(+), 18 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
b/drivers/irqchip/irq-gic-v3-its-fsl-mc-msi.c
index 606efa64adff..81dfc534ded8 100644
-by: Robert Richter
---
drivers/bus/fsl-mc/dprc-driver.c | 41
drivers/bus/fsl-mc/fsl-mc-msi.c | 6 +-
2 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-driver.c
index 52c7e15143d6
-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its-platform-msi.c | 54 +--
1 file changed, 42 insertions(+), 12 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
index 7b8e87b493fe..1f2849bc58c4
and the
request removed from the list.
With a late_initcall all requests from the list should already have
been handled, otherwise all remaining requests are removed with an
error reported.
Signed-off-by: Robert Richter
---
include/linux/irqdomain.h | 15 +
kernel/irq/irqdomain.c| 163
ATM the last discovered node is initialized first. Though this order
should work too, change the initialization of nodes to probe order as
one would expect it.
Signed-off-by: Robert Richter
---
drivers/irqchip/irq-gic-v3-its.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
in irq_domain_handle_requests()
* add comment that describes this check in irq_domain_handle_
requests()
Robert Richter (10):
irqdomain: Add interface to request an irq domain
irqchip/gic-v3-its-platform-msi: Remove domain init order dependencies
irqchip/irq-gic-v3-its-pci-msi: Remove domain init
101 - 200 of 1735 matches
Mail list logo