On 2016-10-27, at 2:39 PM, Helge Deller wrote: > diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c > index 0a393a0..c04d946 100644 > --- a/arch/parisc/kernel/sys_parisc.c > +++ b/arch/parisc/kernel/sys_parisc.c > @@ -36,12 +36,11 @@ > #include <linux/personality.h> > #include <linux/random.h> > > -/* we construct an artificial offset for the mapping based on the physical > - * address of the kernel mapping variable */ > +/* keep track of the last mapping address offset in the private_data field */ > #define GET_LAST_MMAP(filp) \ > - (filp ? ((unsigned long) filp->f_mapping) >> 8 : 0UL) > + (filp && (file_count(filp) > 0) ? (unsigned long) filp->private_data : 0UL) > #define SET_LAST_MMAP(filp, val) \ > - { /* nothing */ } > + { if (filp) filp->private_data = (void *) (val); } In my testing, this causes hpmc's doing serial io. Dave -- John David Anglin dave.anglin@xxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html