# HG changeset patch # User charles # Date 1219891331 -3600 # Node ID 16f50fb54fc05a192d7981a9a8cc46cde3d75f0e # Parent 88c51f5947b90d705b376a98a4816690af58b54b Add kmap for highmem access diff --git a/yaffs_fs.c b/yaffs_fs.c --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -714,13 +714,17 @@ static int yaffs_commit_write(struct fil unsigned to) { - void *addr = page_address(pg) + offset; + void *addr, *kva; + loff_t pos = (((loff_t) pg->index) << PAGE_CACHE_SHIFT) + offset; int nBytes = to - offset; int nWritten; unsigned spos = pos; unsigned saddr = (unsigned)addr; + + kva=kmap(pg); + addr = kva + offset; T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_commit_write addr %x pos %x nBytes %d\n", saddr, @@ -739,6 +743,8 @@ static int yaffs_commit_write(struct fil SetPageUptodate(pg); } + kunmap(pg); + T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_commit_write returning %d\n", nWritten == nBytes ? 0 : nWritten));