Re: [PATCH v2 2/3] cobalt/rtdm: Prepare for new signature of mm_get_unmapped_area() in 6.19
Florian Bezdeka <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 2026-02-20 at 16:25 +0100, Jan Kiszka wrote: > On 20.02.26 12:27, Florian Bezdeka wrote: > > Since 6.19 the signature of mm_get_unmapped_area() has one parameter > > less. The (previously) first struct mm_struct *mm parameter has been > > removed. > > > > Signed-off-by: Florian Bezdeka <[email protected]> > > --- > > kernel/cobalt/rtdm/drvlib.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/kernel/cobalt/rtdm/drvlib.c b/kernel/cobalt/rtdm/drvlib.c > > index 86788743fe47b228662ef16831b4281ddefd04ff..0258100db5bbcc04880ddc71632b7992e50168dc 100644 > > --- a/kernel/cobalt/rtdm/drvlib.c > > +++ b/kernel/cobalt/rtdm/drvlib.c > > @@ -1907,8 +1907,12 @@ driver_get_unmapped_area(struct file *filp, > > > > #ifdef CONFIG_MMU > > /* Run default handler. */ > > - return mm_get_unmapped_area(current->mm, filp, addr, len, pgoff, > > - flags); > > +#if LINUX_VERSION_CODE < KERNEL_VERSION(6,19,0) > > + return mm_get_unmapped_area(current->mm, filp, addr, len, pgoff, flags); > > +#else > > + return mm_get_unmapped_area(filp, addr, len, pgoff, flags); > > +#endif > > -> wrappers.h, extending the existing logic there, using the latest > pattern here. > Just realized that this function has more history in wrapping: #if LINUX_VERSION_CODE < KERNEL_VERSION(6,10,0) #define mm_get_unmapped_area(__mm, __filp, __addr, __len, __pgoff, __flags) \ (__mm)->get_unmapped_area(__filp, __addr, __len, __pgoff, __flags) #endif Kernel versions < 6.19 will need 6 parameters, >= 6.19 will need 5. The callers of the wrapper macro must agree in the number of parameters. As we cannot touch other callers (Linux code), we have to align the caller to the kernel version. I'm running out of ideas here...