/* see if there's a fixup handler available to deal with a kernel fault  */
unsigned long search_exception_table(unsigned long pc)
/* see if there's a fixup handler available to deal with a kernel fault  */
unsigned long search_exception_table(unsigned long pc)
{
	const struct exception_table_entry *extab;
	if (__frame->lr == (unsigned long) &__memset_user_error_lr &&
	    (unsigned long) &memset <= pc && pc < (unsigned long) &__memset_end
	    ) {
		return (unsigned long) &__memset_user_error_handler;
	}
	if (__frame->lr == (unsigned long) &__memcpy_user_error_lr &&
	    (unsigned long) &memcpy <= pc && pc < (unsigned long) &__memcpy_end
	    ) {
		return (unsigned long) &__memcpy_user_error_handler;
	}
	extab = search_exception_tables(pc);
	if (extab)
		return extab->fixup;
	return 0;
}