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

