On Mon, Jul 6, 2026 at 11:13:45AM +0200, [email protected] wrote:

> > +static inline bool pagemap_resets_refcount(const struct dev_pagemap *pgmap)
> > +{
> > +   /*
> > +    * MEMORY_DEVICE_GENERIC pages regain a refcount of 1 in the free
> > +    * path. The remaining ZONE_DEVICE types start from 0 here and raise
> > +    * the count again when the allocator or driver hands the page out.
> > +    */
> > +   switch (pgmap->type) {
> > +   case MEMORY_DEVICE_FS_DAX:
> > +   case MEMORY_DEVICE_PRIVATE:
> > +   case MEMORY_DEVICE_COHERENT:
> > +   case MEMORY_DEVICE_PCI_P2PDMA:
> > +           return false;
> > +   case MEMORY_DEVICE_GENERIC:
> > +           return true;
> > +   default:
> > +           WARN_ONCE(1, "Unknown memory type!");
> > +           return true;
> 
> Wouldn't the compiler warn if we would define a new type but forgot to update 
> it
> here? We're using an enum, and I thought the compiler would bail out in that 
> case.
> 
> Or are we scared of some other garbage ending up in there?
> 
> Apart from that LGTM.

Thanks.

I will drop the default case in v6 so a newly added enum memory_type
value is easier to catch during build review.

I will move the WARN_ONCE() after the switch so we still keep a
runtime guard in case some invalid value ever shows up there.

Thanks,
Zhe

Reply via email to