/* The result of unregistration is reported via dprintk for those who want verification of the result, but is otherwise not important.  */
static void svc_unregister(const struct svc_serv *serv)
/* The result of unregistration is reported via dprintk for those who want verification of the result, but is otherwise not important.  */
static void svc_unregister(const struct svc_serv *serv)
{
	struct svc_program *progp;
	unsigned long flags;
	unsigned int i;
	clear_thread_flag(TIF_SIGPENDING);
	for (progp = serv->sv_program; progp; progp = progp->pg_next) {
		for (i = 0; i < progp->pg_nvers; i++) {
			if (progp->pg_vers[i] == NULL)
				continue;
			if (progp->pg_vers[i]->vs_hidden)
				continue;
			__svc_unregister(progp->pg_prog, i, progp->pg_name);
		}
	}
	spin_lock_irqsave(&current->sighand->siglock, flags);
	recalc_sigpending();
	spin_unlock_irqrestore(&current->sighand->siglock, flags);
}