On Mon, Aug 05, 2024 at 11:51:01AM +0530, Harshit Mogalapalli wrote:
> Hi,
>
>
> fs/nfsd/nfs4xdr.c:639 nfsd4_decode_close() warn: ignoring unreachable code.
>
>
>
> 630 static __be32
> 631 nfsd4_decode_close(struct nfsd4_compoundargs *argp, struct nfsd4_close
> *close)
> 632 {
> 633 DECODE_HEAD;
> 634
> 635 READ_BUF(4);
> 636 close->cl_seqid = be32_to_cpup(p++);
> 637 return nfsd4_decode_stateid(argp, &close->cl_stateid);
> 638
> 639 DECODE_TAIL;
> 640 }
This is not what the code looks like in today's linux-next so I can't
test it but you could just add DECODE_TAIL to
smatch_data/kernel.unreachable.ignore
regards,
dan carpenter
>
> 131 /* READ_BUF, read_buf(): nbytes must be <= PAGE_SIZE */
> 132 #define READ_BUF(nbytes) do { \
> 133 if (nbytes <= (u32)((char *)argp->end - (char *)argp->p)) {
> \
> 134 p = argp->p; \
> 135 argp->p += XDR_QUADLEN(nbytes); \
> 136 } else if (!(p = read_buf(argp, nbytes))) { \
> 137 dprintk("NFSD: xdr error (%s:%d)\n", \
> 138 __FILE__, __LINE__); \
> 139 goto xdr_error; \
> 140 } \
> 141 } while (0)
> 142
>
>
> Thought: I think we should tell mark all macro content to do inlining ? so
> it could see the goto xdr_error, I don't really know how smatch reads it
>
>
> Thanks,
> Harshit
>