|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 05/17] xen/x86: Remove the non-typesafe version of pagetable_* helpers
Hi, On 30/03/2020 08:52, Jan Beulich wrote: On 28.03.2020 11:52, Julien Grall wrote:On 26/03/2020 15:39, Jan Beulich wrote:On 22.03.2020 17:14, julien@xxxxxxx wrote: If mfn_eq() is less clear, then where do you draw the line when the macro should or not be used? If you want to avoid mfn_x(), how about introducing (if possible limited to x86, assuming that MFN 0 has no special meaning on Arm) mfn_zero()? Zero has not special meaning on Arm, so we could limit to x86. @@ -3560,19 +3561,18 @@ long do_mmuext_op( if ( unlikely(rc) ) break; - old_mfn = pagetable_get_pfn(curr->arch.guest_table_user); + old_mfn = pagetable_get_mfn(curr->arch.guest_table_user); /* * This is particularly important when getting restarted after the * previous attempt got preempted in the put-old-MFN phase. */ - if ( old_mfn == op.arg1.mfn ) + if ( mfn_eq(old_mfn, new_mfn) ) break; - if ( op.arg1.mfn != 0 ) + if ( !mfn_eq(new_mfn, _mfn(0)) )At least here I would clearly prefer the old code to be kept.See above.I don't agree - here you're evaluating an aspect of the public interface. MFN 0 internally having a special meaning is, while connected to this aspect, still an implementation detail. Fair enough. @@ -3580,19 +3580,19 @@ long do_mmuext_op( else if ( rc != -ERESTART ) gdprintk(XENLOG_WARNING, "Error %d installing new mfn %" PRI_mfn "\n", - rc, op.arg1.mfn); + rc, mfn_x(new_mfn));Here I'm also not sure I see the point of the conversion.op.arg1.mfn and mfn are technically not the same type. The former is a xen_pfn_t, whilst the latter is mfn_t. In practice they are both unsigned long on x86, so it should be fine to use PRI_mfn. However, I think this is an abuse and we should aim to use the proper PRI_* for a type.I'd be fine with switching to PRI_xen_pfn here, yes. But especially with the "not the same type" argument what should be logged is imo what was specified, not what we converted it to. Fair point. I will switch back to op.arg1.mfn.
Andrew, do you have any opinion? Cheers, -- Julien Grall
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |