From: Greg Kroah-Hartman Date: Sat, 26 Jan 2013 05:25:02 +0000 (-0800) Subject: Merge 3.8-rc5 into staging-next X-Git-Tag: firefly_0821_release~3680^2~1080^2~277 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8f5f90a872c38b4e78f3cc95e8a25434b98e4db2;p=firefly-linux-kernel-4.4.55.git Merge 3.8-rc5 into staging-next This resolves a merge issue with a iio driver, and the zram code. Signed-off-by: Greg Kroah-Hartman --- 8f5f90a872c38b4e78f3cc95e8a25434b98e4db2 diff --cc drivers/staging/zram/zram_drv.c index 6762b994f6f4,f2a73bd739fb..77a3f0dfba77 --- a/drivers/staging/zram/zram_drv.c +++ b/drivers/staging/zram/zram_drv.c @@@ -291,17 -300,19 +289,20 @@@ static int zram_bvec_write(struct zram user_mem = kmap_atomic(page); - if (is_partial_io(bvec)) + if (is_partial_io(bvec)) { memcpy(uncmem + offset, user_mem + bvec->bv_offset, bvec->bv_len); - else + kunmap_atomic(user_mem); + user_mem = NULL; + } else { uncmem = user_mem; + } if (page_zero_filled(uncmem)) { - if (!is_partial_io(bvec)) - kunmap_atomic(user_mem); - zram_stat_inc(&zram->stats.pages_zero); + kunmap_atomic(user_mem); + if (is_partial_io(bvec)) + kfree(uncmem); + zram->stats.pages_zero++; zram_set_flag(zram, index, ZRAM_ZERO); ret = 0; goto out; @@@ -320,9 -333,11 +323,11 @@@ } if (unlikely(clen > max_zpage_size)) { - zram_stat_inc(&zram->stats.bad_compress); + zram->stats.bad_compress++; - src = uncmem; clen = PAGE_SIZE; + src = NULL; + if (is_partial_io(bvec)) + src = uncmem; } handle = zs_malloc(zram->mem_pool, clen); @@@ -343,13 -362,14 +352,14 @@@ /* Update stats */ zram_stat64_add(zram, &zram->stats.compr_size, clen); - zram_stat_inc(&zram->stats.pages_stored); + zram->stats.pages_stored++; if (clen <= PAGE_SIZE / 2) - zram_stat_inc(&zram->stats.good_compress); + zram->stats.good_compress++; - return 0; - out: + if (is_partial_io(bvec)) + kfree(uncmem); + if (ret) zram_stat64_inc(zram, &zram->stats.failed_writes); return ret;