All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alistair Popple <apopple@nvidia.com>
To: Stanislav Kinsburskii <skinsburskii@gmail.com>
Cc: akpm@linux-foundation.org, jgg@ziepe.ca, leon@kernel.org,
	 linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] lib: test_hmm: use device devt for coherent device range selection
Date: Mon, 6 Jul 2026 14:29:56 +1000	[thread overview]
Message-ID: <aksu7Baw-Pe4WtuT@nvdebian.thelocal> (raw)
In-Reply-To: <178277581197.172200.16265155329935822153.stgit@skinsburskii>

On 2026-06-30 at 09:30 +1000, Stanislav Kinsburskii <skinsburskii@gmail.com> wrote...
> Commit af69016dab96 ("lib: test_hmm: implement a device release method")
> moved the initial dmirror_allocate_chunk() call before cdev_device_add().
> That means the struct cdev has not been added yet, so cdev_add() has not
> initialized mdevice->cdevice.dev.
> 
> The coherent-device range selection uses the device minor to choose between
> spm_addr_dev0 and spm_addr_dev1. Reading MINOR(mdevice->cdevice.dev) before
> cdev_add() therefore always sees an uninitialized dev_t. As a result, both
> coherent devices select the same physical range, and adding the second
> device fails due to the overlapping dev_pagemap range.
> 
> Use mdevice->device.devt instead. It is initialized in
> dmirror_device_init() before dmirror_allocate_chunk() is called and is the
> same dev_t later passed to cdev_device_add().
> 
> Fixes: af69016dab96 ("lib: test_hmm: implement a device release method")
> Signed-off-by: Stanislav Kinsburskii <skinsburskii@gmail.com>
> ---
>  lib/test_hmm.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/test_hmm.c b/lib/test_hmm.c
> index 9c59d1ceb5b5..c4adbf98fac7 100644
> --- a/lib/test_hmm.c
> +++ b/lib/test_hmm.c
> @@ -581,7 +581,7 @@ static int dmirror_allocate_chunk(struct dmirror_device *mdevice,
>  		devmem->pagemap.type = MEMORY_DEVICE_PRIVATE;
>  		break;
>  	case HMM_DMIRROR_MEMORY_DEVICE_COHERENT:
> -		devmem->pagemap.range.start = (MINOR(mdevice->cdevice.dev) - 2) ?
> +		devmem->pagemap.range.start = (MINOR(mdevice->device.devt) - 2) ?

Makes sense to me. As Andrew mentioned we should cc: stable, but I assume he
will add that so:

Reviewed-by: Alistair Popple <apopple@nvidia.com>

>  							spm_addr_dev0 :
>  							spm_addr_dev1;
>  		devmem->pagemap.range.end = devmem->pagemap.range.start +
> 
> 
> 


      parent reply	other threads:[~2026-07-06  4:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29 23:30 [PATCH] lib: test_hmm: use device devt for coherent device range selection Stanislav Kinsburskii
2026-06-30  0:06 ` Andrew Morton
2026-07-06  4:29 ` Alistair Popple [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aksu7Baw-Pe4WtuT@nvdebian.thelocal \
    --to=apopple@nvidia.com \
    --cc=akpm@linux-foundation.org \
    --cc=jgg@ziepe.ca \
    --cc=leon@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=skinsburskii@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.