On Wed, Jun 29, 2016 at 3:57 AM, Dmitry Safonov <dsafonov@xxxxxxxxxxxxx> wrote: > Make in-kernel API to map vDSO blobs on x86. I think the addr calculation was already confusing and is now even worse. How about simplifying it? Get rid of calculate_addr entirely and push the vdso_addr calls into arch_setup_additional_pages, etc. Then just use addr directly in the map_vdso code. > +int do_map_vdso(vdso_type type, unsigned long addr, bool randomize_addr) > { > - if (vdso32_enabled != 1) /* Other values all mean "disabled" */ > - return 0; > - > - return map_vdso(&vdso_image_32, false); > -} > + switch (type) { > +#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION) > + case VDSO_32: > + if (vdso32_enabled != 1) /* Other values all mean "disabled" */ > + return 0; > + /* vDSO aslr turned off for i386 vDSO */ > + return map_vdso(&vdso_image_32, addr, false); > +#endif > +#ifdef CONFIG_X86_64 > + case VDSO_64: > + if (!vdso64_enabled) > + return 0; > + return map_vdso(&vdso_image_64, addr, randomize_addr); > +#endif > +#ifdef CONFIG_X86_X32_ABI > + case VDSO_X32: > + if (!vdso64_enabled) > + return 0; > + return map_vdso(&vdso_image_x32, addr, randomize_addr); > #endif > + default: > + return -EINVAL; > + } > +} Why is this better than just passing the vdso_image pointer in? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>