RE: Issue found with kernel/net/sunrpc/xdr.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: linux-nfs-owner@xxxxxxxxxxxxxxx [mailto:linux-nfs-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Mark Young
> Sent: Tuesday, August 27, 2013 5:17 PM
> To: linux-nfs@xxxxxxxxxxxxxxx
> Cc: Matt Craighead
> Subject: Issue found with kernel/net/sunrpc/xdr.c
> 
> I was pointed to this mailing list by Brian Fields.
> 
>  We're currently seeing NFS data corruption, which we traced back to
> memory corruption that happens in the function _shift_data_right_pages in
> net/sunrpc/xdr.c.
> 
>  When we see the issue, we're running a 32bit os with systems running with
> more than 1GB of physical memory.   The errant behavior appears to be that
> two calls to kmap_atomic (on 32bit systems with highmem present) with the
> same physical address (on addresses within highmem)  will return two
> different vaddrs.    In our assessment, this confuses the memmove code into
> thinking that the two addresses are non-overlapping in spite of the fact that
> they are overlapping in physical space.  This, in turn, results in corruption.
> 
>  A proposed solution to the problem would involve calling kmap_atomic only
> once in the case that the pgfrom and pgto are identical, and then re-using
> the resultant vaddr for both vto and vfrom.
> 
> Any insight on the issue or the proposed solution would be greatly
> appreciated.

I'm fine with that solution. Mind sending a duly conformant patch w/ a signed-off-by line?

Thanks
  Trond
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux