From: Andrew Morton <akpm@linux-foundation.org>
To: Stanislav Kinsburskii <skinsburskii@gmail.com>
Cc: jgg@ziepe.ca, leon@kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, Alistair Popple <apopple@nvidia.com>,
Balbir Singh <balbirs@nvidia.com>,
Zenghui Yu (Huawei) <zenghui.yu@linux.dev>
Subject: Re: [PATCH] lib: test_hmm: use device devt for coherent device range selection
Date: Mon, 29 Jun 2026 17:06:56 -0700 [thread overview]
Message-ID: <20260629170656.2c5408b46b1ce53183f672dd@linux-foundation.org> (raw)
In-Reply-To: <178277581197.172200.16265155329935822153.stgit@skinsburskii>
On Mon, 29 Jun 2026 16:30:14 -0700 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().
Thanks.
> Fixes: af69016dab96 ("lib: test_hmm: implement a device release method")
We should cc the people involved with that commit. Added.
> --- 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) ?
> spm_addr_dev0 :
> spm_addr_dev1;
> devmem->pagemap.range.end = devmem->pagemap.range.start +
>
af69016dab96 had cc:stable, so I'll add cc:stable to this patch, to
help ensure that it lands in the appropriate places.
next prev parent reply other threads:[~2026-06-30 0:07 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 [this message]
2026-07-06 4:29 ` Alistair Popple
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=20260629170656.2c5408b46b1ce53183f672dd@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=balbirs@nvidia.com \
--cc=jgg@ziepe.ca \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=skinsburskii@gmail.com \
--cc=zenghui.yu@linux.dev \
/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.