On 12/4/20 1:33 AM, James Bottomley wrote:
> These platforms define PMD_ORDER in asm/pgtable.h
>
> This means that as soon as dax.c included asm/pgtable.h in commit
> 11cf9d863dcb ("fs/dax: Deposit pagetable even when installing zero
> page") we clash with PMD_ORDER introduced by cfc93c6c6c96 ("dax:
> Convert dax_insert_pfn_mkwrite to XArray") and we get this problem:
>
> /home/jejb/git/linux-build/fs/dax.c:53: warning: "PMD_ORDER" redefined
> 53 | #define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
> |
> In file included from /home/jejb/git/linux-build/include/linux/pgtable.h:6,
> from /home/jejb/git/linux-build/include/linux/mm.h:33,
> from /home/jejb/git/linux-build/include/linux/bvec.h:14,
> from /home/jejb/git/linux-build/include/linux/blk_types.h:10,
> from /home/jejb/git/linux-build/include/linux/genhd.h:19,
> from /home/jejb/git/linux-build/include/linux/blkdev.h:8,
> from /home/jejb/git/linux-build/fs/dax.c:10:
> /home/jejb/git/linux-build/arch/parisc/include/asm/pgtable.h:124: note: this
> is the location of the previous definition
> 124 | #define PMD_ORDER 1 /* Number of pages per pmd */
> |
> make[2]: *** Deleting file 'fs/dax.o'
>
> Fix by renaming dax's PMD_ORDER to DAX_PMD_ORDER
Dear dax developers,
could you please recheck if you can apply this suggested patch by James?
Your usage of "PMD_ORDER" conflicts with mips and parisc, and
a renaming to DAX_PMD_ORDER seems easy and logical.
Helge
> Signed-off-by: James Bottomley <[email protected]>
> ---
> fs/dax.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/dax.c b/fs/dax.c
> index 5b47834f2e1b..4d3b0db5c321 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -50,7 +50,7 @@ static inline unsigned int pe_order(enum page_entry_size
> pe_size)
> #define PG_PMD_NR (PMD_SIZE >> PAGE_SHIFT)
>
> /* The order of a PMD entry */
> -#define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
> +#define DAX_PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
>
> static wait_queue_head_t wait_table[DAX_WAIT_TABLE_ENTRIES];
>
> @@ -98,7 +98,7 @@ static bool dax_is_locked(void *entry)
> static unsigned int dax_entry_order(void *entry)
> {
> if (xa_to_value(entry) & DAX_PMD)
> - return PMD_ORDER;
> + return DAX_PMD_ORDER;
> return 0;
> }
>
> @@ -1471,7 +1471,7 @@ static vm_fault_t dax_iomap_pmd_fault(struct vm_fault
> *vmf, pfn_t *pfnp,
> {
> struct vm_area_struct *vma = vmf->vma;
> struct address_space *mapping = vma->vm_file->f_mapping;
> - XA_STATE_ORDER(xas, &mapping->i_pages, vmf->pgoff, PMD_ORDER);
> + XA_STATE_ORDER(xas, &mapping->i_pages, vmf->pgoff, DAX_PMD_ORDER);
> unsigned long pmd_addr = vmf->address & PMD_MASK;
> bool write = vmf->flags & FAULT_FLAG_WRITE;
> bool sync;
> @@ -1530,7 +1530,7 @@ static vm_fault_t dax_iomap_pmd_fault(struct vm_fault
> *vmf, pfn_t *pfnp,
> * entry is already in the array, for instance), it will return
> * VM_FAULT_FALLBACK.
> */
> - entry = grab_mapping_entry(&xas, mapping, PMD_ORDER);
> + entry = grab_mapping_entry(&xas, mapping, DAX_PMD_ORDER);
> if (xa_is_internal(entry)) {
> result = xa_to_internal(entry);
> goto fallback;
> @@ -1696,7 +1696,7 @@ dax_insert_pfn_mkwrite(struct vm_fault *vmf, pfn_t pfn,
> unsigned int order)
> if (order == 0)
> ret = vmf_insert_mixed_mkwrite(vmf->vma, vmf->address, pfn);
> #ifdef CONFIG_FS_DAX_PMD
> - else if (order == PMD_ORDER)
> + else if (order == DAX_PMD_ORDER)
> ret = vmf_insert_pfn_pmd(vmf, pfn, FAULT_FLAG_WRITE);
> #endif
> else
>
_______________________________________________
Linux-nvdimm mailing list -- [email protected]
To unsubscribe send an email to [email protected]