Commit 41a88b45 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

ia64: Rename 'ip' to 'addr' in 'struct fdesc'



There are three architectures with function descriptors, try to
have common names for the address they contain in order to
refactor some functions into generic functions later.

powerpc has 'entry'
ia64 has 'ip'
parisc has 'addr'

Vote for 'addr' and update 'struct fdesc' accordingly.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/65b73ac614e4c002c5819d40b42f6f426d2ee52b.1644928018.git.christophe.leroy@csgroup.eu
parent 2fd98637
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ struct got_entry {
 * Layout of the Function Descriptor
 */
struct fdesc {
	uint64_t ip;
	uint64_t addr;
	uint64_t gp;
};

+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ static inline void *dereference_function_descriptor(void *ptr)
	struct fdesc *desc = ptr;
	void *p;

	if (!get_kernel_nofault(p, (void *)&desc->ip))
	if (!get_kernel_nofault(p, (void *)&desc->addr))
		ptr = p;
	return ptr;
}
+3 −3
Original line number Diff line number Diff line
@@ -602,15 +602,15 @@ get_fdesc (struct module *mod, uint64_t value, int *okp)
		return value;

	/* Look for existing function descriptor. */
	while (fdesc->ip) {
		if (fdesc->ip == value)
	while (fdesc->addr) {
		if (fdesc->addr == value)
			return (uint64_t)fdesc;
		if ((uint64_t) ++fdesc >= mod->arch.opd->sh_addr + mod->arch.opd->sh_size)
			BUG();
	}

	/* Create new one */
	fdesc->ip = value;
	fdesc->addr = value;
	fdesc->gp = mod->arch.gp;
	return (uint64_t) fdesc;
}