I see the issue. I have to go over the details in the driver, but I think it should be sufficient to remove the WARN(). When the page_pool was integrated with the MM-layer, being invoked from the put_page() call itself, this would indicate a likely API misuse. But now, with the page refcnt based recycle tricks, it is the norm (for non-XDP) that put_page is called without the knowledge of page_pool.I see, I'll remove the WARN and test.
Verified, it works. Please fix in next patchset. Thanks.