On 8/29/22 8:33 PM, Matthew Wilcox wrote:
On Mon, Aug 29, 2022 at 04:00:08PM -0700, Sidhartha Kumar wrote:
#define TESTHPAGEFLAG(uname, flname) \
+static __always_inline \
+int folio_test_hugetlb_##flname(struct folio *folio) \
One change I made was to have folio_test_foo() return bool instead of
int. It helps the compiler really understand what's going on. Maybe
some humans too ;-)
I went with returning an int to stay consistent with the page version
of the macros which return an int. I'm fine with changing it to return
a bool.
+ { void **private = &folio->private; \
+ return test_bit(HPG_##flname, (void *)((unsigned long)private)); \
I've made this tricky for you by making folio->private a void * instead
of the unsigned long in page. Would this look better as ...
{ \
void *private = &folio->private; \
return test_bit(HPG_##flname, private); \
perhaps?
Ya this looks much better and passes the tests, will add to v2.