Re: [PATCH 1/1] iommu: Avoid races around default domain allocations

From: Robin Murphy
Date: Wed Feb 07 2024 - 20:38:07 EST


On 2024-02-08 1:13 am, Jason Gunthorpe wrote:
On Thu, Feb 08, 2024 at 12:04:44AM +0000, Robin Murphy wrote:
Frankly, I'd suggest just proposing the necessary (and tested)
upstream patches to 6.1, however large they are, and see what Greg and
Sasha say. This is the usual working model they have, as I understand
it.

To be blunt, hell no. Stable is far enough from its namesake already; the
ongoing bordering-on-ridiculous brokenness of your mainline changes where

What on earth are you even talking about? POWER?

I mean you're literally getting bug reports for your fix for your fix for your grand idea, so what should we figure, that reality not aligning with your expectations is all reality's fault?

That said, I also don't think there would be any harm in applying this to
mainline as a belt-and-braces thing either,

Really?

"at 12:04:44AM +0000, Robin Murphy wrote:"

It's late, I should have gone to bed hours ago, so I apologise for any lack of clarity; that was very much meant to be an implication of agreement with the overall approach, not the exact patch as is, which if you read the rest of my response you will see I still had questions about and did not formally ack or review.

Now that you've made me look, this patch breaks the
iommu_group_store_type() flow both on latest and on v6.1 from what I
can see.

On v6.1:

iommu_change_dev_def_domain():
prev_dom = group->default_domain;
if (!prev_dom) {
ret = -EINVAL;
goto out;
}
[..]
/* Sets group->default_domain to the newly allocated domain */
ret = iommu_group_alloc_default_domain(dev->bus, group, type);
if (ret)
goto out;

But this patch changes iommu_group_alloc_default_domain() to succeed
always without doing anythiing.

So this patch needs some fixing.

Hurrah! Please apply that kind of rigour to your own patches also.

Thanks,
Robin.

[ you get two responses this week since I admit I ran out of patience and motivation to finish last week's on time ]