Salut Christophe, Since there's a respin, 2 details below.
diff --git a/drivers/misc/cxl/cxllib.c b/drivers/misc/cxl/cxllib.c new file mode 100644 index 0000000..4f4c5ca --- /dev/null +++ b/drivers/misc/cxl/cxllib.c @@ -0,0 +1,246 @@ +/* + * Copyright 2017 IBM Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include <asm/pnv-pci.h> +#include <linux/hugetlb.h> +#include <linux/sched/mm.h> +#include <misc/cxllib.h>
Maybe somebody can comment on this, but I believe the usual order is the 'linux' headers first, then the 'asm'. Though I don't know if there's a valid reason behind it, or just tradition...
diff --git a/drivers/misc/cxl/fault.c b/drivers/misc/cxl/fault.c index c79e39b..077370f 100644 --- a/drivers/misc/cxl/fault.c +++ b/drivers/misc/cxl/fault.c
+static int cxl_handle_page_fault(struct cxl_context *ctx, + struct mm_struct *mm, + u64 dsisr, u64 dar) +{ + trace_cxl_pte_miss(ctx, dsisr, dar); + + if (cxl_handle_mm_fault(mm, dsisr, dar)) { + cxl_ack_ae(ctx); + } else { + pr_devel("Page fault successfully handled for pe: %i!\n", ctx->pe); + cxl_ops->ack_irq(ctx, CXL_PSL_TFC_An_R, 0); + } + + return IRQ_HANDLED; }
Why return IRQ_HANDLED? it's not called from an interrupt handler but from the bottom half (actually, I think it's coming from cxl_handle_segment_miss(), but it's wrong there as well).
Fred