--- linux/net/sunrpc/svc.c.orig 2006-03-15 10:30:17.537678000 +0000 +++ linux/net/sunrpc/svc.c 2006-03-15 10:34:53.329243000 +0000 @@ -308,6 +308,10 @@ svc_process(struct svc_serv *serv, struc rqstp->rq_vers = vers = ntohl(svc_getu32(argv)); /* version number */ rqstp->rq_proc = proc = ntohl(svc_getu32(argv)); /* procedure number */ + /* Accept NULL procedure call, which is probably a ping */ + if (vers == 0 && prog == 0) + goto sendit; + progp = serv->sv_program; for (progp = serv->sv_program; progp; progp = progp->pg_next) @@ -462,7 +466,7 @@ err_bad_prog: err_bad_vers: #ifdef RPC_PARANOIA - printk("svc: unknown version (%d)\n", vers); + printk("svc: unknown version (%d) proc=%d\n", vers, proc); #endif serv->sv_stats->rpcbadfmt++; svc_putu32(resv, rpc_prog_mismatch);