[PATCH 05/28] sunrpc: don't call flush_dcache_page() with NULL page pointer
Kevin Coffman
kwc at citi.umich.edu
Mon Mar 31 16:20:25 EDT 2008
On Mon, Mar 31, 2008 at 4:10 PM, J. Bruce Fields <bfields at fieldses.org> wrote:
> On Mon, Mar 31, 2008 at 10:31:18AM -0400, Kevin Coffman wrote:
> > For architectures that implement flush_dcache_page(), the struct
> > page pointer is not expected to be NULL. In _copy_to_pages(),
> > if the last bytes being copied are the exact last bytes of a
> > complete page, then the final call to flush_dcache_page() has
> > a null pointer. Skip the call in that case.
>
> A fix for this should actually go upstream now, right?
Perhaps. My use of write_bytes_to_xdr() exercises this function in
ways it wasn't being exercised before.
> >
> > Signed-off-by: Kevin Coffman <kwc at citi.umich.edu>
> > ---
> >
> > net/sunrpc/xdr.c | 3 ++-
> > 1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
> > index de2c986..26991c6 100644
> > --- a/net/sunrpc/xdr.c
> > +++ b/net/sunrpc/xdr.c
> > @@ -262,7 +262,8 @@ _copy_to_pages(struct page **pages, size_t pgbase, const char *p, size_t len)
> > p += copy;
> >
> > } while ((len -= copy) != 0);
> > - flush_dcache_page(*pgto);
> > + if (*pgto != NULL)
> > + flush_dcache_page(*pgto);
> > }
>
> Can you necessarily count on the next entry in the page array being NULL?
> Maybe better would be:
>
> if (pgbase != 0)
> flush_dcache_page(*pgto);
OK. I'll change and re-test.
More information about the NFSv4
mailing list