On 22.07.2024 14:36, Marek Marczykowski-Górecki wrote:
> On Mon, Jul 22, 2024 at 02:09:15PM +0200, Jan Beulich wrote:
>> On 19.07.2024 04:33, Marek Marczykowski-Górecki wrote:
>>> +int __init subpage_mmio_ro_add(
>>> +    paddr_t start,
>>> +    size_t size)
>>> +{
>>> +    mfn_t mfn_start = maddr_to_mfn(start);
>>> +    paddr_t end = start + size - 1;
>>> +    mfn_t mfn_end = maddr_to_mfn(end);
>>> +    unsigned int offset_end = 0;
>>> +    int rc;
>>> +    bool subpage_start, subpage_end;
>>> +
>>> +    ASSERT(IS_ALIGNED(start, MMIO_RO_SUBPAGE_GRAN));
>>> +    ASSERT(IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN));
>>> +    if ( !IS_ALIGNED(size, MMIO_RO_SUBPAGE_GRAN) )
>>> +        return -EINVAL;
>>
>> I think I had asked before: Why is misaligned size something that wants a
>> release build fallback to the assertion, but not misaligned start?
> 
> Misaligned start will lead to protecting larger area, not smaller, so it
> is not unsafe thing to do. But I can also make it return an error, it
> shouldn't happen after all.

Well, I wouldn't mind if you kept what you have, just with a (brief) comment
making clear why there is a difference in treatment. After all you could
treat mis-aligned size similarly, making the protected area larger, too.

Jan

Reply via email to