linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
@ 2011-11-27  5:26 Cong Wang
  2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
                   ` (62 more replies)
  0 siblings, 63 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Peter Zijlstra

V1: https://lkml.org/lkml/2011/1/30/13

V1->V2: Split patches and rebase them to the latest linus tree.

Now the second argument of kmap_atomic()/kunmap_atomic() is totally
unused, this patchset removes it from all callers.

But for backward compatibility, we still keep the deprecated form,
and will warn the users if they still use the deprecated one, like this:

drivers/block/drbd/drbd_bitmap.c: In function ‘bm_page_io_async’:
drivers/block/drbd/drbd_bitmap.c:973:3: warning: ‘kmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:124)
drivers/block/drbd/drbd_bitmap.c:977:3: warning: ‘kunmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:144)

To schedule the final removal of these stuffs, I also write some doc into
feature-removal-schedule.txt, see the last patch in this thread.

Most of this patch is generated by the following commands:

find . -name '*.[c|h]' -exec sed -i -e 's#\bkmap_atomic(\(.*\),.*)#kmap_atomic(\1)#' '{}' \;
find . -name '*.[c|h]' -exec sed -i -e 's#\bkunmap_atomic(\(.*\),.*)#kunmap_atomic(\1)#' '{}' \;

the rest exceptions are fixed by hands.

This patch passes 'make allyesconfig' test on both ppc64 and x86_64.

BTW, all patches can be found on my github:

	git@github.com:congwang/linux.git #for-next

and the final removal patches can be found here:

	git@github.com:congwang/linux.git #for-3.5


Signed-off-by: Cong Wang <amwang@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>

---

Cong Wang (62):
  highmem: mark k[un]map_atomic() with two arguments as deprecated
  include/linux/highmem.h: remove the second argument of
    k[un]map_atomic()
  arm: remove the second argument of k[un]map_atomic()
  mips: remove the second argument of k[un]map_atomic()
  powerpc: remove the second argument of k[un]map_atomic()
  sh: remove the second argument of k[un]map_atomic()
  um: remove the second argument of k[un]map_atomic()
  x86: remove the second argument of k[un]map_atomic()
  crypto: remove the second argument of k[un]map_atomic()
  ata: remove the second argument of k[un]map_atomic()
  block: remove the second argument of k[un]map_atomic()
  crypto: remove the second argument of k[un]map_atomic()
  edac: remove the second argument of k[un]map_atomic()
  drm: remove the second argument of k[un]map_atomic()
  ide: remove the second argument of k[un]map_atomic()
  infiniband: remove the second argument of k[un]map_atomic()
  md: remove the second argument of k[un]map_atomic()
  media: remove the second argument of k[un]map_atomic()
  memstick: remove the second argument of k[un]map_atomic()
  mmc: remove the second argument of k[un]map_atomic()
  net: remove the second argument of k[un]map_atomic()
  scsi: remove the second argument of k[un]map_atomic()
  hv: remove the second argument of k[un]map_atomic()
  pohmelfs: remove the second argument of k[un]map_atomic()
  rtl8192u: remove the second argument of k[un]map_atomic()
  zram: remove the second argument of k[un]map_atomic()
  target: remove the second argument of k[un]map_atomic()
  vhost: remove the second argument of k[un]map_atomic()
  fs: remove the second argument of k[un]map_atomic()
  btrfs: remove the second argument of k[un]map_atomic()
  ecryptfs: remove the second argument of k[un]map_atomic()
  afs: remove the second argument of k[un]map_atomic()
  exofs: remove the second argument of k[un]map_atomic()
  ext2: remove the second argument of k[un]map_atomic()
  fuse: remove the second argument of k[un]map_atomic()
  gfs2: remove the second argument of k[un]map_atomic()
  jbd: remove the second argument of k[un]map_atomic()
  jbd2: remove the second argument of k[un]map_atomic()
  logfs: remove the second argument of k[un]map_atomic()
  minix: remove the second argument of k[un]map_atomic()
  nfs: remove the second argument of k[un]map_atomic()
  nilfs2: remove the second argument of k[un]map_atomic()
  ntfs: remove the second argument of k[un]map_atomic()
  ocfs2: remove the second argument of k[un]map_atomic()
  reiserfs: remove the second argument of k[un]map_atomic()
  squashfs: remove the second argument of k[un]map_atomic()
  ubifs: remove the second argument of k[un]map_atomic()
  udf: remove the second argument of k[un]map_atomic()
  kdb: remove the second argument of k[un]map_atomic()
  power: remove the second argument of k[un]map_atomic()
  lib: remove the second argument of k[un]map_atomic()
  mm: remove the second argument of k[un]map_atomic()
  net: remove the second argument of k[un]map_atomic()
  rds: remove the second argument of k[un]map_atomic()
  sunrpc: remove the second argument of k[un]map_atomic()
  tomoyo: remove the second argument of k[un]map_atomic()
  md: remove the second argument of k[un]map_atomic()
  gma500: remove the second argument of k[un]map_atomic()
  zcache: remove the second argument of k[un]map_atomic()
  drbd: remove the second argument of k[un]map_atomic()
  highmem: kill all __kmap_atomic()
  feature-removal-schedule.txt: add the deprecated form of
    kmap_atomic()

 Documentation/feature-removal-schedule.txt       |    8 ++
 arch/arm/mm/copypage-fa.c                        |   12 ++--
 arch/arm/mm/copypage-feroceon.c                  |   12 ++--
 arch/arm/mm/copypage-v3.c                        |   12 ++--
 arch/arm/mm/copypage-v4mc.c                      |    8 +-
 arch/arm/mm/copypage-v4wb.c                      |   12 ++--
 arch/arm/mm/copypage-v4wt.c                      |   12 ++--
 arch/arm/mm/copypage-v6.c                        |   12 ++--
 arch/arm/mm/copypage-xsc3.c                      |   12 ++--
 arch/arm/mm/copypage-xscale.c                    |    8 +-
 arch/arm/mm/highmem.c                            |    4 +-
 arch/frv/include/asm/highmem.h                   |    2 +-
 arch/frv/mm/highmem.c                            |    4 +-
 arch/mips/include/asm/highmem.h                  |    2 +-
 arch/mips/mm/c-r4k.c                             |    4 +-
 arch/mips/mm/highmem.c                           |    4 +-
 arch/mips/mm/init.c                              |    8 +-
 arch/mn10300/include/asm/highmem.h               |    2 +-
 arch/parisc/include/asm/cacheflush.h             |    2 +-
 arch/powerpc/include/asm/highmem.h               |    2 +-
 arch/powerpc/kvm/book3s_pr.c                     |    4 +-
 arch/powerpc/mm/dma-noncoherent.c                |    5 +-
 arch/powerpc/mm/hugetlbpage.c                    |    4 +-
 arch/powerpc/mm/mem.c                            |    4 +-
 arch/sh/mm/cache-sh4.c                           |    4 +-
 arch/sh/mm/cache.c                               |   12 ++--
 arch/sparc/include/asm/highmem.h                 |    2 +-
 arch/sparc/mm/highmem.c                          |    4 +-
 arch/tile/include/asm/highmem.h                  |    2 +-
 arch/tile/mm/highmem.c                           |    4 +-
 arch/um/kernel/skas/uaccess.c                    |    4 +-
 arch/x86/crypto/aesni-intel_glue.c               |   24 +++---
 arch/x86/include/asm/highmem.h                   |    2 +-
 arch/x86/kernel/crash_dump_32.c                  |    6 +-
 arch/x86/kvm/lapic.c                             |    8 +-
 arch/x86/kvm/paging_tmpl.h                       |    4 +-
 arch/x86/kvm/x86.c                               |    8 +-
 arch/x86/lib/usercopy_32.c                       |    4 +-
 arch/x86/mm/highmem_32.c                         |    4 +-
 crypto/ahash.c                                   |    4 +-
 crypto/async_tx/async_memcpy.c                   |    8 +-
 crypto/blkcipher.c                               |    8 +-
 crypto/ccm.c                                     |    4 +-
 crypto/scatterwalk.c                             |    8 +-
 crypto/shash.c                                   |    8 +-
 drivers/ata/libata-sff.c                         |    8 +-
 drivers/block/brd.c                              |   20 +++---
 drivers/block/drbd/drbd_bitmap.c                 |   50 ++++++------
 drivers/block/drbd/drbd_nl.c                     |    4 +-
 drivers/block/loop.c                             |   16 ++--
 drivers/block/pktcdvd.c                          |    8 +-
 drivers/crypto/hifn_795x.c                       |   10 +-
 drivers/edac/edac_mc.c                           |    4 +-
 drivers/gpu/drm/drm_cache.c                      |    8 +-
 drivers/gpu/drm/ttm/ttm_tt.c                     |   16 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c              |    6 +-
 drivers/ide/ide-taskfile.c                       |    4 +-
 drivers/infiniband/ulp/iser/iser_memory.c        |    8 +-
 drivers/md/bitmap.c                              |   42 +++++-----
 drivers/md/dm-crypt.c                            |    8 +-
 drivers/media/video/ivtv/ivtv-udma.c             |    4 +-
 drivers/memstick/host/jmb38x_ms.c                |    4 +-
 drivers/memstick/host/tifm_ms.c                  |    4 +-
 drivers/mmc/host/at91_mci.c                      |    8 +-
 drivers/mmc/host/msm_sdcc.c                      |    6 +-
 drivers/mmc/host/sdhci.c                         |    4 +-
 drivers/mmc/host/tifm_sd.c                       |   16 ++--
 drivers/mmc/host/tmio_mmc.c                      |    1 -
 drivers/mmc/host/tmio_mmc.h                      |    4 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c    |    6 +-
 drivers/net/ethernet/intel/e1000e/netdev.c       |   10 +--
 drivers/net/ethernet/sun/cassini.c               |    4 +-
 drivers/scsi/arcmsr/arcmsr_hba.c                 |    8 +-
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c                |    5 +-
 drivers/scsi/cxgbi/libcxgbi.c                    |    5 +-
 drivers/scsi/fcoe/fcoe.c                         |    4 +-
 drivers/scsi/fcoe/fcoe_transport.c               |    5 +-
 drivers/scsi/gdth.c                              |    4 +-
 drivers/scsi/ips.c                               |    6 +-
 drivers/scsi/isci/request.c                      |   16 ++--
 drivers/scsi/libfc/fc_fcp.c                      |    8 +-
 drivers/scsi/libfc/fc_libfc.c                    |    8 +-
 drivers/scsi/libfc/fc_libfc.h                    |    2 +-
 drivers/scsi/libfc/fc_lport.c                    |    2 +-
 drivers/scsi/libiscsi_tcp.c                      |    4 +-
 drivers/scsi/libsas/sas_host_smp.c               |    8 +-
 drivers/scsi/megaraid.c                          |    4 +-
 drivers/scsi/mvsas/mv_sas.c                      |    4 +-
 drivers/scsi/scsi_debug.c                        |   24 +++---
 drivers/scsi/scsi_lib.c                          |    4 +-
 drivers/scsi/sd_dif.c                            |   12 ++--
 drivers/staging/gma500/mmu.c                     |   30 ++++----
 drivers/staging/hv/netvsc_drv.c                  |    5 +-
 drivers/staging/hv/rndis_filter.c                |    4 +-
 drivers/staging/hv/storvsc_drv.c                 |   31 +++----
 drivers/staging/pohmelfs/inode.c                 |    8 +-
 drivers/staging/rtl8192u/ieee80211/cipher.c      |    8 +-
 drivers/staging/rtl8192u/ieee80211/digest.c      |    8 +-
 drivers/staging/rtl8192u/ieee80211/internal.h    |   17 ----
 drivers/staging/rtl8192u/ieee80211/kmap_types.h  |   20 -----
 drivers/staging/rtl8192u/ieee80211/scatterwalk.c |   19 +---
 drivers/staging/zcache/zcache-main.c             |   16 ++--
 drivers/staging/zram/xvmalloc.c                  |   39 +++++-----
 drivers/staging/zram/zram_drv.c                  |   44 +++++-----
 drivers/target/target_core_transport.c           |    4 +-
 drivers/target/tcm_fc/tfc_io.c                   |   10 +--
 drivers/vhost/vhost.c                            |    4 +-
 fs/afs/fsclient.c                                |    8 +-
 fs/afs/mntpt.c                                   |    4 +-
 fs/aio.c                                         |   30 ++++----
 fs/bio-integrity.c                               |   10 +-
 fs/btrfs/compression.c                           |   12 ++--
 fs/btrfs/extent_io.c                             |   16 ++--
 fs/btrfs/file-item.c                             |    4 +-
 fs/btrfs/inode.c                                 |   26 +++---
 fs/btrfs/lzo.c                                   |    4 +-
 fs/btrfs/scrub.c                                 |    8 +-
 fs/btrfs/zlib.c                                  |    4 +-
 fs/ecryptfs/mmap.c                               |    4 +-
 fs/ecryptfs/read_write.c                         |    8 +-
 fs/exec.c                                        |    4 +-
 fs/exofs/dir.c                                   |    4 +-
 fs/ext2/dir.c                                    |    4 +-
 fs/fuse/dev.c                                    |    4 +-
 fs/fuse/file.c                                   |    4 +-
 fs/gfs2/aops.c                                   |   12 ++--
 fs/gfs2/lops.c                                   |    8 +-
 fs/gfs2/quota.c                                  |    4 +-
 fs/jbd/journal.c                                 |   12 ++--
 fs/jbd/transaction.c                             |    4 +-
 fs/jbd2/commit.c                                 |    4 +-
 fs/jbd2/journal.c                                |   12 ++--
 fs/jbd2/transaction.c                            |    4 +-
 fs/logfs/dir.c                                   |   18 ++--
 fs/logfs/readwrite.c                             |   38 +++++-----
 fs/logfs/segment.c                               |    4 +-
 fs/minix/dir.c                                   |    4 +-
 fs/namei.c                                       |    4 +-
 fs/nfs/dir.c                                     |    8 +-
 fs/nfs/nfs4proc.c                                |    4 +-
 fs/nilfs2/cpfile.c                               |   94 +++++++++++-----------
 fs/nilfs2/dat.c                                  |   38 +++++-----
 fs/nilfs2/dir.c                                  |    4 +-
 fs/nilfs2/ifile.c                                |    4 +-
 fs/nilfs2/mdt.c                                  |    4 +-
 fs/nilfs2/page.c                                 |    8 +-
 fs/nilfs2/recovery.c                             |    4 +-
 fs/nilfs2/segbuf.c                               |    4 +-
 fs/nilfs2/sufile.c                               |   68 ++++++++--------
 fs/ntfs/aops.c                                   |   20 +++---
 fs/ntfs/attrib.c                                 |   20 +++---
 fs/ntfs/file.c                                   |   16 ++--
 fs/ntfs/super.c                                  |    8 +-
 fs/ocfs2/aops.c                                  |   16 ++--
 fs/pipe.c                                        |    8 +-
 fs/reiserfs/stree.c                              |    4 +-
 fs/reiserfs/tail_conversion.c                    |    4 +-
 fs/splice.c                                      |    7 +-
 fs/squashfs/file.c                               |    8 +-
 fs/squashfs/symlink.c                            |    4 +-
 fs/ubifs/file.c                                  |    4 +-
 fs/udf/file.c                                    |    4 +-
 include/crypto/scatterwalk.h                     |   28 +------
 include/linux/bio.h                              |    8 +-
 include/linux/highmem.h                          |   77 ++++++++++++-----
 kernel/debug/kdb/kdb_support.c                   |    4 +-
 kernel/power/snapshot.c                          |   28 +++---
 lib/scatterlist.c                                |    4 +-
 lib/swiotlb.c                                    |    5 +-
 mm/bounce.c                                      |    4 +-
 mm/filemap.c                                     |    8 +-
 mm/ksm.c                                         |   12 ++--
 mm/memory.c                                      |    4 +-
 mm/shmem.c                                       |    4 +-
 mm/swapfile.c                                    |   30 ++++----
 mm/vmalloc.c                                     |    8 +-
 net/core/kmap_skb.h                              |    4 +-
 net/rds/ib_recv.c                                |    7 +-
 net/rds/info.c                                   |    6 +-
 net/rds/iw_recv.c                                |    7 +-
 net/rds/loop.c                                   |    2 +-
 net/rds/rds.h                                    |    2 +-
 net/rds/recv.c                                   |    2 +-
 net/rds/tcp_recv.c                               |   11 +--
 net/sunrpc/auth_gss/gss_krb5_wrap.c              |    4 +-
 net/sunrpc/socklib.c                             |    4 +-
 net/sunrpc/xdr.c                                 |   20 +++---
 net/sunrpc/xprtrdma/rpc_rdma.c                   |    8 +-
 security/tomoyo/domain.c                         |    4 +-
 189 files changed, 936 insertions(+), 992 deletions(-)
 create mode 100644 drivers/net/team/Module.symvers
 delete mode 100644 drivers/staging/rtl8192u/ieee80211/kmap_types.h

-- 
1.7.4.4


^ permalink raw reply	[flat|nested] 121+ messages in thread

* [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27 12:34   ` Cesar Eduardo Barros
  2011-11-28  7:46   ` [UPDATED PATCH " Cong Wang
  2011-11-27  5:26 ` [PATCH 02/62] include/linux/highmem.h: remove the second argument of k[un]map_atomic() Cong Wang
                   ` (61 subsequent siblings)
  62 siblings, 2 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Nick Bowler, Peter Zijlstra, Christoph Lameter,
	Tejun Heo, H. Peter Anvin

For backward compatibility, we still keep the deprecated form,
and will warn the users if they still use the deprecated one, like this:

drivers/block/drbd/drbd_bitmap.c: In function ‘bm_page_io_async’:
drivers/block/drbd/drbd_bitmap.c:973:3: warning: ‘kmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:124)
drivers/block/drbd/drbd_bitmap.c:977:3: warning: ‘kunmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:144)

Thanks to Nick Bowler for the cpp trick!

Cc: Nick Bowler <nbowler@elliptictech.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Cong Wang <amwang@redhat.com>
---
 include/linux/highmem.h |   50 ++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 3a93f73..9fb439f 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -109,19 +109,55 @@ static inline void kmap_atomic_idx_pop(void)
 #endif
 
 /*
- * Make both: kmap_atomic(page, idx) and kmap_atomic(page) work.
+ * NOTE:
+ * kmap_atomic() and kunmap_atomic() with two arguments are deprecated.
+ * We only keep them for backward compatibility, any usage of them
+ * are now warned.
  */
-#define kmap_atomic(page, args...) __kmap_atomic(page)
+
+#define PASTE(a, b) a ## b
+#define PASTE2(a, b) PASTE(a, b)
+
+#define NARG_(_2, _1, n, ...) n
+#define NARG(...) NARG_(__VA_ARGS__, 2, 1, :)
+
+static inline void *kmap_atomic(struct page *page)
+{
+	return __kmap_atomic(page);
+}
+
+static inline void __deprecated *kmap_atomic_deprecated(struct page *page,
+							enum km_type km)
+{
+	return __kmap_atomic(page);
+}
+
+#define kmap_atomic1(...) kmap_atomic(__VA_ARGS__)
+#define kmap_atomic2(...) kmap_atomic_deprecated(__VA_ARGS__)
+#define kmap_atomic(...) PASTE2(kmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
 
 /*
  * Prevent people trying to call kunmap_atomic() as if it were kunmap()
  * kunmap_atomic() should get the return value of kmap_atomic, not the page.
  */
-#define kunmap_atomic(addr, args...)				\
-do {								\
-	BUILD_BUG_ON(__same_type((addr), struct page *));	\
-	__kunmap_atomic(addr);					\
-} while (0)
+static inline void kunmap_atomic(void *addr)
+{
+	BUILD_BUG_ON(__same_type((addr), struct page *));
+	__kunmap_atomic(addr);
+}
+
+static inline void __deprecated kunmap_atomic_deprecated(void *addr,
+							enum km_type km)
+{
+	BUILD_BUG_ON(__same_type((addr), struct page *));
+	__kunmap_atomic(addr);
+}
+
+#define kunmap_atomic1(...) kunmap_atomic(__VA_ARGS__)
+#define kunmap_atomic2(...) kunmap_atomic_deprecated(__VA_ARGS__)
+#define kunmap_atomic(...) PASTE2(kunmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
+
+/**** End of C pre-processor tricks for deprecated macros ****/
 
 /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */
 #ifndef clear_user_highpage
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 02/62] include/linux/highmem.h: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
  2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 03/62] arm: " Cong Wang
                   ` (60 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Christoph Lameter, Tejun Heo, H. Peter Anvin


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 include/linux/highmem.h |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 9fb439f..42ac049 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -163,9 +163,9 @@ static inline void __deprecated kunmap_atomic_deprecated(void *addr,
 #ifndef clear_user_highpage
 static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *addr = kmap_atomic(page, KM_USER0);
+	void *addr = kmap_atomic(page);
 	clear_user_page(addr, vaddr, page);
-	kunmap_atomic(addr, KM_USER0);
+	kunmap_atomic(addr);
 }
 #endif
 
@@ -216,16 +216,16 @@ alloc_zeroed_user_highpage_movable(struct vm_area_struct *vma,
 
 static inline void clear_highpage(struct page *page)
 {
-	void *kaddr = kmap_atomic(page, KM_USER0);
+	void *kaddr = kmap_atomic(page);
 	clear_page(kaddr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 static inline void zero_user_segments(struct page *page,
 	unsigned start1, unsigned end1,
 	unsigned start2, unsigned end2)
 {
-	void *kaddr = kmap_atomic(page, KM_USER0);
+	void *kaddr = kmap_atomic(page);
 
 	BUG_ON(end1 > PAGE_SIZE || end2 > PAGE_SIZE);
 
@@ -235,7 +235,7 @@ static inline void zero_user_segments(struct page *page,
 	if (end2 > start2)
 		memset(kaddr + start2, 0, end2 - start2);
 
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	flush_dcache_page(page);
 }
 
@@ -264,11 +264,11 @@ static inline void copy_user_highpage(struct page *to, struct page *from,
 {
 	char *vfrom, *vto;
 
-	vfrom = kmap_atomic(from, KM_USER0);
-	vto = kmap_atomic(to, KM_USER1);
+	vfrom = kmap_atomic(from);
+	vto = kmap_atomic(to);
 	copy_user_page(vto, vfrom, vaddr, to);
-	kunmap_atomic(vto, KM_USER1);
-	kunmap_atomic(vfrom, KM_USER0);
+	kunmap_atomic(vto);
+	kunmap_atomic(vfrom);
 }
 
 #endif
@@ -277,11 +277,11 @@ static inline void copy_highpage(struct page *to, struct page *from)
 {
 	char *vfrom, *vto;
 
-	vfrom = kmap_atomic(from, KM_USER0);
-	vto = kmap_atomic(to, KM_USER1);
+	vfrom = kmap_atomic(from);
+	vto = kmap_atomic(to);
 	copy_page(vto, vfrom);
-	kunmap_atomic(vto, KM_USER1);
-	kunmap_atomic(vfrom, KM_USER0);
+	kunmap_atomic(vto);
+	kunmap_atomic(vfrom);
 }
 
 #endif /* _LINUX_HIGHMEM_H */
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 03/62] arm: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
  2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
  2011-11-27  5:26 ` [PATCH 02/62] include/linux/highmem.h: remove the second argument of k[un]map_atomic() Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-12-10 21:46   ` Russell King - ARM Linux
  2011-11-27  5:26 ` [PATCH 04/62] mips: " Cong Wang
                   ` (59 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Hans Ulli Kroll, Russell King, Thomas Gleixner,
	Ingo Molnar, Heechul Yun, Catalin Marinas, linux-arm-kernel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/arm/mm/copypage-fa.c       |   12 ++++++------
 arch/arm/mm/copypage-feroceon.c |   12 ++++++------
 arch/arm/mm/copypage-v3.c       |   12 ++++++------
 arch/arm/mm/copypage-v4mc.c     |    8 ++++----
 arch/arm/mm/copypage-v4wb.c     |   12 ++++++------
 arch/arm/mm/copypage-v4wt.c     |   12 ++++++------
 arch/arm/mm/copypage-v6.c       |   12 ++++++------
 arch/arm/mm/copypage-xsc3.c     |   12 ++++++------
 arch/arm/mm/copypage-xscale.c   |    8 ++++----
 9 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/arch/arm/mm/copypage-fa.c b/arch/arm/mm/copypage-fa.c
index d2852e1..d130a5e 100644
--- a/arch/arm/mm/copypage-fa.c
+++ b/arch/arm/mm/copypage-fa.c
@@ -44,11 +44,11 @@ void fa_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	fa_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -58,7 +58,7 @@ void fa_copy_user_highpage(struct page *to, struct page *from,
  */
 void fa_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile("\
 	mov	r1, %2				@ 1\n\
 	mov	r2, #0				@ 1\n\
@@ -77,7 +77,7 @@ void fa_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 32)
 	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns fa_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c
index ac163de..49ee0c1 100644
--- a/arch/arm/mm/copypage-feroceon.c
+++ b/arch/arm/mm/copypage-feroceon.c
@@ -72,17 +72,17 @@ void feroceon_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	flush_cache_page(vma, vaddr, page_to_pfn(from));
 	feroceon_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 void feroceon_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile ("\
 	mov	r1, %2				\n\
 	mov	r2, #0				\n\
@@ -102,7 +102,7 @@ void feroceon_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 32)
 	: "r1", "r2", "r3", "r4", "r5", "r6", "r7", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns feroceon_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-v3.c b/arch/arm/mm/copypage-v3.c
index f72303e..3935bdd 100644
--- a/arch/arm/mm/copypage-v3.c
+++ b/arch/arm/mm/copypage-v3.c
@@ -42,11 +42,11 @@ void v3_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	v3_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -56,7 +56,7 @@ void v3_copy_user_highpage(struct page *to, struct page *from,
  */
 void v3_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile("\n\
 	mov	r1, %2				@ 1\n\
 	mov	r2, #0				@ 1\n\
@@ -72,7 +72,7 @@ void v3_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 64)
 	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns v3_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index 7d0a8c2..ec8c3be 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -71,7 +71,7 @@ mc_copy_user_page(void *from, void *to)
 void v4_mc_copy_user_highpage(struct page *to, struct page *from,
 	unsigned long vaddr, struct vm_area_struct *vma)
 {
-	void *kto = kmap_atomic(to, KM_USER1);
+	void *kto = kmap_atomic(to);
 
 	if (!test_and_set_bit(PG_dcache_clean, &from->flags))
 		__flush_dcache_page(page_mapping(from), from);
@@ -85,7 +85,7 @@ void v4_mc_copy_user_highpage(struct page *to, struct page *from,
 
 	raw_spin_unlock(&minicache_lock);
 
-	kunmap_atomic(kto, KM_USER1);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -93,7 +93,7 @@ void v4_mc_copy_user_highpage(struct page *to, struct page *from,
  */
 void v4_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile("\
 	mov	r1, %2				@ 1\n\
 	mov	r2, #0				@ 1\n\
@@ -111,7 +111,7 @@ void v4_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 64)
 	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns v4_mc_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c
index cb589cb..067d0fd 100644
--- a/arch/arm/mm/copypage-v4wb.c
+++ b/arch/arm/mm/copypage-v4wb.c
@@ -52,12 +52,12 @@ void v4wb_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	flush_cache_page(vma, vaddr, page_to_pfn(from));
 	v4wb_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -67,7 +67,7 @@ void v4wb_copy_user_highpage(struct page *to, struct page *from,
  */
 void v4wb_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile("\
 	mov	r1, %2				@ 1\n\
 	mov	r2, #0				@ 1\n\
@@ -86,7 +86,7 @@ void v4wb_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 64)
 	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns v4wb_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c
index 30c7d04..b85c5da 100644
--- a/arch/arm/mm/copypage-v4wt.c
+++ b/arch/arm/mm/copypage-v4wt.c
@@ -48,11 +48,11 @@ void v4wt_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	v4wt_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -62,7 +62,7 @@ void v4wt_copy_user_highpage(struct page *to, struct page *from,
  */
 void v4wt_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile("\
 	mov	r1, %2				@ 1\n\
 	mov	r2, #0				@ 1\n\
@@ -79,7 +79,7 @@ void v4wt_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 64)
 	: "r1", "r2", "r3", "ip", "lr");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns v4wt_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c
index 3d9a155..8b03a58 100644
--- a/arch/arm/mm/copypage-v6.c
+++ b/arch/arm/mm/copypage-v6.c
@@ -38,11 +38,11 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to,
 {
 	void *kto, *kfrom;
 
-	kfrom = kmap_atomic(from, KM_USER0);
-	kto = kmap_atomic(to, KM_USER1);
+	kfrom = kmap_atomic(from);
+	kto = kmap_atomic(to);
 	copy_page(kto, kfrom);
-	kunmap_atomic(kto, KM_USER1);
-	kunmap_atomic(kfrom, KM_USER0);
+	kunmap_atomic(kto);
+	kunmap_atomic(kfrom);
 }
 
 /*
@@ -51,9 +51,9 @@ static void v6_copy_user_highpage_nonaliasing(struct page *to,
  */
 static void v6_clear_user_highpage_nonaliasing(struct page *page, unsigned long vaddr)
 {
-	void *kaddr = kmap_atomic(page, KM_USER0);
+	void *kaddr = kmap_atomic(page);
 	clear_page(kaddr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 /*
diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c
index f9cde07..03a2042 100644
--- a/arch/arm/mm/copypage-xsc3.c
+++ b/arch/arm/mm/copypage-xsc3.c
@@ -75,12 +75,12 @@ void xsc3_mc_copy_user_highpage(struct page *to, struct page *from,
 {
 	void *kto, *kfrom;
 
-	kto = kmap_atomic(to, KM_USER0);
-	kfrom = kmap_atomic(from, KM_USER1);
+	kto = kmap_atomic(to);
+	kfrom = kmap_atomic(from);
 	flush_cache_page(vma, vaddr, page_to_pfn(from));
 	xsc3_mc_copy_user_page(kto, kfrom);
-	kunmap_atomic(kfrom, KM_USER1);
-	kunmap_atomic(kto, KM_USER0);
+	kunmap_atomic(kfrom);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -90,7 +90,7 @@ void xsc3_mc_copy_user_highpage(struct page *to, struct page *from,
  */
 void xsc3_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile ("\
 	mov	r1, %2				\n\
 	mov	r2, #0				\n\
@@ -105,7 +105,7 @@ void xsc3_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 32)
 	: "r1", "r2", "r3");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns xsc3_mc_user_fns __initdata = {
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index 610c24c..439d106 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -93,7 +93,7 @@ mc_copy_user_page(void *from, void *to)
 void xscale_mc_copy_user_highpage(struct page *to, struct page *from,
 	unsigned long vaddr, struct vm_area_struct *vma)
 {
-	void *kto = kmap_atomic(to, KM_USER1);
+	void *kto = kmap_atomic(to);
 
 	if (!test_and_set_bit(PG_dcache_clean, &from->flags))
 		__flush_dcache_page(page_mapping(from), from);
@@ -107,7 +107,7 @@ void xscale_mc_copy_user_highpage(struct page *to, struct page *from,
 
 	raw_spin_unlock(&minicache_lock);
 
-	kunmap_atomic(kto, KM_USER1);
+	kunmap_atomic(kto);
 }
 
 /*
@@ -116,7 +116,7 @@ void xscale_mc_copy_user_highpage(struct page *to, struct page *from,
 void
 xscale_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *ptr, *kaddr = kmap_atomic(page, KM_USER0);
+	void *ptr, *kaddr = kmap_atomic(page);
 	asm volatile(
 	"mov	r1, %2				\n\
 	mov	r2, #0				\n\
@@ -133,7 +133,7 @@ xscale_mc_clear_user_highpage(struct page *page, unsigned long vaddr)
 	: "=r" (ptr)
 	: "0" (kaddr), "I" (PAGE_SIZE / 32)
 	: "r1", "r2", "r3", "ip");
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 struct cpu_user_fns xscale_mc_user_fns __initdata = {
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 04/62] mips: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (2 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 03/62] arm: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-12-09 16:06   ` Ralf Baechle
  2011-11-27  5:26 ` [PATCH 05/62] powerpc: " Cong Wang
                   ` (58 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Ralf Baechle, David S. Miller, Jiri Kosina,
	Kevin Cernekee, Justin P. Mattock, Peter Zijlstra, David Daney,
	linux-mips


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/mips/mm/c-r4k.c |    4 ++--
 arch/mips/mm/init.c  |    8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index a79fe9a..e37585b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -498,7 +498,7 @@ static inline void local_r4k_flush_cache_page(void *args)
 		if (map_coherent)
 			vaddr = kmap_coherent(page, addr);
 		else
-			vaddr = kmap_atomic(page, KM_USER0);
+			vaddr = kmap_atomic(page);
 		addr = (unsigned long)vaddr;
 	}
 
@@ -521,7 +521,7 @@ static inline void local_r4k_flush_cache_page(void *args)
 		if (map_coherent)
 			kunmap_coherent();
 		else
-			kunmap_atomic(vaddr, KM_USER0);
+			kunmap_atomic(vaddr);
 	}
 }
 
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index b7ebc4f..fbc70f3 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -207,21 +207,21 @@ void copy_user_highpage(struct page *to, struct page *from,
 {
 	void *vfrom, *vto;
 
-	vto = kmap_atomic(to, KM_USER1);
+	vto = kmap_atomic(to);
 	if (cpu_has_dc_aliases &&
 	    page_mapped(from) && !Page_dcache_dirty(from)) {
 		vfrom = kmap_coherent(from, vaddr);
 		copy_page(vto, vfrom);
 		kunmap_coherent();
 	} else {
-		vfrom = kmap_atomic(from, KM_USER0);
+		vfrom = kmap_atomic(from);
 		copy_page(vto, vfrom);
-		kunmap_atomic(vfrom, KM_USER0);
+		kunmap_atomic(vfrom);
 	}
 	if ((!cpu_has_ic_fills_f_dc) ||
 	    pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK))
 		flush_data_cache_page((unsigned long)vto);
-	kunmap_atomic(vto, KM_USER1);
+	kunmap_atomic(vto);
 	/* Make sure this page is cleared on other CPU's too before using it */
 	smp_wmb();
 }
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 05/62] powerpc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (3 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 04/62] mips: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 06/62] sh: " Cong Wang
                   ` (57 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Avi Kivity, Marcelo Tosatti, Alexander Graf,
	Benjamin Herrenschmidt, Paul Mackerras, Paul Gortmaker,
	Andrea Arcangeli, David Gibson, Becky Bruce, Dave Carroll,
	Anton Blanchard, kvm, kvm-ppc, linuxppc-dev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/powerpc/kvm/book3s_pr.c      |    4 ++--
 arch/powerpc/mm/dma-noncoherent.c |    5 ++---
 arch/powerpc/mm/hugetlbpage.c     |    4 ++--
 arch/powerpc/mm/mem.c             |    4 ++--
 4 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
index 3c791e1..fbd4103 100644
--- a/arch/powerpc/kvm/book3s_pr.c
+++ b/arch/powerpc/kvm/book3s_pr.c
@@ -227,14 +227,14 @@ static void kvmppc_patch_dcbz(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte)
 	hpage_offset /= 4;
 
 	get_page(hpage);
-	page = kmap_atomic(hpage, KM_USER0);
+	page = kmap_atomic(hpage);
 
 	/* patch dcbz into reserved instruction, so we trap */
 	for (i=hpage_offset; i < hpage_offset + (HW_PAGE_SIZE / 4); i++)
 		if ((page[i] & 0xff0007ff) == INS_DCBZ)
 			page[i] &= 0xfffffff7;
 
-	kunmap_atomic(page, KM_USER0);
+	kunmap_atomic(page);
 	put_page(hpage);
 }
 
diff --git a/arch/powerpc/mm/dma-noncoherent.c b/arch/powerpc/mm/dma-noncoherent.c
index 329be36..6747eec 100644
--- a/arch/powerpc/mm/dma-noncoherent.c
+++ b/arch/powerpc/mm/dma-noncoherent.c
@@ -365,12 +365,11 @@ static inline void __dma_sync_page_highmem(struct page *page,
 	local_irq_save(flags);
 
 	do {
-		start = (unsigned long)kmap_atomic(page + seg_nr,
-				KM_PPC_SYNC_PAGE) + seg_offset;
+		start = (unsigned long)kmap_atomic(page + seg_nr) + seg_offset;
 
 		/* Sync this buffer segment */
 		__dma_sync((void *)start, seg_size, direction);
-		kunmap_atomic((void *)start, KM_PPC_SYNC_PAGE);
+		kunmap_atomic((void *)start);
 		seg_nr++;
 
 		/* Calculate next buffer segment size */
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 8558b57..85d3592 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -880,9 +880,9 @@ void flush_dcache_icache_hugepage(struct page *page)
 		if (!PageHighMem(page)) {
 			__flush_dcache_icache(page_address(page+i));
 		} else {
-			start = kmap_atomic(page+i, KM_PPC_SYNC_ICACHE);
+			start = kmap_atomic(page+i);
 			__flush_dcache_icache(start);
-			kunmap_atomic(start, KM_PPC_SYNC_ICACHE);
+			kunmap_atomic(start);
 		}
 	}
 }
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 2dd6bdd..edb8b3a 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -457,9 +457,9 @@ void flush_dcache_icache_page(struct page *page)
 #endif
 #ifdef CONFIG_BOOKE
 	{
-		void *start = kmap_atomic(page, KM_PPC_SYNC_ICACHE);
+		void *start = kmap_atomic(page);
 		__flush_dcache_icache(start);
-		kunmap_atomic(start, KM_PPC_SYNC_ICACHE);
+		kunmap_atomic(start);
 	}
 #elif defined(CONFIG_8xx) || defined(CONFIG_PPC64)
 	/* On 8xx there is no need to kmap since highmem is not supported */
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 06/62] sh: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (4 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 05/62] powerpc: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 07/62] um: " Cong Wang
                   ` (56 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Paul Mundt, Stuart Menefy, linux-sh


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/sh/mm/cache-sh4.c |    4 ++--
 arch/sh/mm/cache.c     |   12 ++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c
index 92eb986..112fea1 100644
--- a/arch/sh/mm/cache-sh4.c
+++ b/arch/sh/mm/cache-sh4.c
@@ -244,7 +244,7 @@ static void sh4_flush_cache_page(void *args)
 		if (map_coherent)
 			vaddr = kmap_coherent(page, address);
 		else
-			vaddr = kmap_atomic(page, KM_USER0);
+			vaddr = kmap_atomic(page);
 
 		address = (unsigned long)vaddr;
 	}
@@ -259,7 +259,7 @@ static void sh4_flush_cache_page(void *args)
 		if (map_coherent)
 			kunmap_coherent(vaddr);
 		else
-			kunmap_atomic(vaddr, KM_USER0);
+			kunmap_atomic(vaddr);
 	}
 }
 
diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c
index 5a580ea..616966a 100644
--- a/arch/sh/mm/cache.c
+++ b/arch/sh/mm/cache.c
@@ -95,7 +95,7 @@ void copy_user_highpage(struct page *to, struct page *from,
 {
 	void *vfrom, *vto;
 
-	vto = kmap_atomic(to, KM_USER1);
+	vto = kmap_atomic(to);
 
 	if (boot_cpu_data.dcache.n_aliases && page_mapped(from) &&
 	    test_bit(PG_dcache_clean, &from->flags)) {
@@ -103,16 +103,16 @@ void copy_user_highpage(struct page *to, struct page *from,
 		copy_page(vto, vfrom);
 		kunmap_coherent(vfrom);
 	} else {
-		vfrom = kmap_atomic(from, KM_USER0);
+		vfrom = kmap_atomic(from);
 		copy_page(vto, vfrom);
-		kunmap_atomic(vfrom, KM_USER0);
+		kunmap_atomic(vfrom);
 	}
 
 	if (pages_do_alias((unsigned long)vto, vaddr & PAGE_MASK) ||
 	    (vma->vm_flags & VM_EXEC))
 		__flush_purge_region(vto, PAGE_SIZE);
 
-	kunmap_atomic(vto, KM_USER1);
+	kunmap_atomic(vto);
 	/* Make sure this page is cleared on other CPU's too before using it */
 	smp_wmb();
 }
@@ -120,14 +120,14 @@ EXPORT_SYMBOL(copy_user_highpage);
 
 void clear_user_highpage(struct page *page, unsigned long vaddr)
 {
-	void *kaddr = kmap_atomic(page, KM_USER0);
+	void *kaddr = kmap_atomic(page);
 
 	clear_page(kaddr);
 
 	if (pages_do_alias((unsigned long)kaddr, vaddr & PAGE_MASK))
 		__flush_purge_region(kaddr, PAGE_SIZE);
 
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 EXPORT_SYMBOL(clear_user_highpage);
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 07/62] um: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (5 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 06/62] sh: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 08/62] x86: " Cong Wang
                   ` (55 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Jeff Dike, Richard Weinberger, Al Viro,
	user-mode-linux-devel, user-mode-linux-user


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/um/kernel/skas/uaccess.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/um/kernel/skas/uaccess.c b/arch/um/kernel/skas/uaccess.c
index 9fefd92..cd7df79 100644
--- a/arch/um/kernel/skas/uaccess.c
+++ b/arch/um/kernel/skas/uaccess.c
@@ -69,7 +69,7 @@ static int do_op_one_page(unsigned long addr, int len, int is_write,
 		return -1;
 
 	page = pte_page(*pte);
-	addr = (unsigned long) kmap_atomic(page, KM_UML_USERCOPY) +
+	addr = (unsigned long) kmap_atomic(page) +
 		(addr & ~PAGE_MASK);
 
 	current->thread.fault_catcher = &buf;
@@ -82,7 +82,7 @@ static int do_op_one_page(unsigned long addr, int len, int is_write,
 
 	current->thread.fault_catcher = NULL;
 
-	kunmap_atomic((void *)addr, KM_UML_USERCOPY);
+	kunmap_atomic((void *)addr);
 
 	return n;
 }
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 08/62] x86: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (6 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 07/62] um: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-28 12:35   ` Avi Kivity
  2011-11-28 12:47   ` Herbert Xu
  2011-11-27  5:26 ` [PATCH 09/62] crypto: " Cong Wang
                   ` (54 subsequent siblings)
  62 siblings, 2 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Herbert Xu, David S. Miller, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86, Avi Kivity, Marcelo Tosatti,
	Olaf Hering, linux-crypto, kvm


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/x86/crypto/aesni-intel_glue.c |   24 ++++++++++++------------
 arch/x86/kernel/crash_dump_32.c    |    6 +++---
 arch/x86/kvm/lapic.c               |    8 ++++----
 arch/x86/kvm/paging_tmpl.h         |    4 ++--
 arch/x86/kvm/x86.c                 |    8 ++++----
 arch/x86/lib/usercopy_32.c         |    4 ++--
 6 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c
index 545d0ce..152232d 100644
--- a/arch/x86/crypto/aesni-intel_glue.c
+++ b/arch/x86/crypto/aesni-intel_glue.c
@@ -1107,12 +1107,12 @@ static int __driver_rfc4106_encrypt(struct aead_request *req)
 		one_entry_in_sg = 1;
 		scatterwalk_start(&src_sg_walk, req->src);
 		scatterwalk_start(&assoc_sg_walk, req->assoc);
-		src = scatterwalk_map(&src_sg_walk, 0);
-		assoc = scatterwalk_map(&assoc_sg_walk, 0);
+		src = scatterwalk_map(&src_sg_walk);
+		assoc = scatterwalk_map(&assoc_sg_walk);
 		dst = src;
 		if (unlikely(req->src != req->dst)) {
 			scatterwalk_start(&dst_sg_walk, req->dst);
-			dst = scatterwalk_map(&dst_sg_walk, 0);
+			dst = scatterwalk_map(&dst_sg_walk);
 		}
 
 	} else {
@@ -1136,11 +1136,11 @@ static int __driver_rfc4106_encrypt(struct aead_request *req)
 	 * back to the packet. */
 	if (one_entry_in_sg) {
 		if (unlikely(req->src != req->dst)) {
-			scatterwalk_unmap(dst, 0);
+			scatterwalk_unmap(dst);
 			scatterwalk_done(&dst_sg_walk, 0, 0);
 		}
-		scatterwalk_unmap(src, 0);
-		scatterwalk_unmap(assoc, 0);
+		scatterwalk_unmap(src);
+		scatterwalk_unmap(assoc);
 		scatterwalk_done(&src_sg_walk, 0, 0);
 		scatterwalk_done(&assoc_sg_walk, 0, 0);
 	} else {
@@ -1189,12 +1189,12 @@ static int __driver_rfc4106_decrypt(struct aead_request *req)
 		one_entry_in_sg = 1;
 		scatterwalk_start(&src_sg_walk, req->src);
 		scatterwalk_start(&assoc_sg_walk, req->assoc);
-		src = scatterwalk_map(&src_sg_walk, 0);
-		assoc = scatterwalk_map(&assoc_sg_walk, 0);
+		src = scatterwalk_map(&src_sg_walk);
+		assoc = scatterwalk_map(&assoc_sg_walk);
 		dst = src;
 		if (unlikely(req->src != req->dst)) {
 			scatterwalk_start(&dst_sg_walk, req->dst);
-			dst = scatterwalk_map(&dst_sg_walk, 0);
+			dst = scatterwalk_map(&dst_sg_walk);
 		}
 
 	} else {
@@ -1219,11 +1219,11 @@ static int __driver_rfc4106_decrypt(struct aead_request *req)
 
 	if (one_entry_in_sg) {
 		if (unlikely(req->src != req->dst)) {
-			scatterwalk_unmap(dst, 0);
+			scatterwalk_unmap(dst);
 			scatterwalk_done(&dst_sg_walk, 0, 0);
 		}
-		scatterwalk_unmap(src, 0);
-		scatterwalk_unmap(assoc, 0);
+		scatterwalk_unmap(src);
+		scatterwalk_unmap(assoc);
 		scatterwalk_done(&src_sg_walk, 0, 0);
 		scatterwalk_done(&assoc_sg_walk, 0, 0);
 	} else {
diff --git a/arch/x86/kernel/crash_dump_32.c b/arch/x86/kernel/crash_dump_32.c
index 642f75a..11891ca 100644
--- a/arch/x86/kernel/crash_dump_32.c
+++ b/arch/x86/kernel/crash_dump_32.c
@@ -62,16 +62,16 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
 
 	if (!userbuf) {
 		memcpy(buf, (vaddr + offset), csize);
-		kunmap_atomic(vaddr, KM_PTE0);
+		kunmap_atomic(vaddr);
 	} else {
 		if (!kdump_buf_page) {
 			printk(KERN_WARNING "Kdump: Kdump buffer page not"
 				" allocated\n");
-			kunmap_atomic(vaddr, KM_PTE0);
+			kunmap_atomic(vaddr);
 			return -EFAULT;
 		}
 		copy_page(kdump_buf_page, vaddr);
-		kunmap_atomic(vaddr, KM_PTE0);
+		kunmap_atomic(vaddr);
 		if (copy_to_user(buf, (kdump_buf_page + offset), csize))
 			return -EFAULT;
 	}
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index 54abb40..e462e30 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1282,9 +1282,9 @@ void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu)
 	if (!irqchip_in_kernel(vcpu->kvm) || !vcpu->arch.apic->vapic_addr)
 		return;
 
-	vapic = kmap_atomic(vcpu->arch.apic->vapic_page, KM_USER0);
+	vapic = kmap_atomic(vcpu->arch.apic->vapic_page);
 	data = *(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr));
-	kunmap_atomic(vapic, KM_USER0);
+	kunmap_atomic(vapic);
 
 	apic_set_tpr(vcpu->arch.apic, data & 0xff);
 }
@@ -1309,9 +1309,9 @@ void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu)
 		max_isr = 0;
 	data = (tpr & 0xff) | ((max_isr & 0xf0) << 8) | (max_irr << 24);
 
-	vapic = kmap_atomic(vcpu->arch.apic->vapic_page, KM_USER0);
+	vapic = kmap_atomic(vcpu->arch.apic->vapic_page);
 	*(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr)) = data;
-	kunmap_atomic(vapic, KM_USER0);
+	kunmap_atomic(vapic);
 }
 
 void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr)
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index 9299410..b7c5f7c 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -92,9 +92,9 @@ static int FNAME(cmpxchg_gpte)(struct kvm_vcpu *vcpu, struct kvm_mmu *mmu,
 	if (unlikely(npages != 1))
 		return -EFAULT;
 
-	table = kmap_atomic(page, KM_USER0);
+	table = kmap_atomic(page);
 	ret = CMPXCHG(&table[index], orig_pte, new_pte);
-	kunmap_atomic(table, KM_USER0);
+	kunmap_atomic(table);
 
 	kvm_release_page_dirty(page);
 
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index c38efd7..dfc7c23 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1200,12 +1200,12 @@ static int kvm_guest_time_update(struct kvm_vcpu *v)
 	 */
 	vcpu->hv_clock.version += 2;
 
-	shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0);
+	shared_kaddr = kmap_atomic(vcpu->time_page);
 
 	memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock,
 	       sizeof(vcpu->hv_clock));
 
-	kunmap_atomic(shared_kaddr, KM_USER0);
+	kunmap_atomic(shared_kaddr);
 
 	mark_page_dirty(v->kvm, vcpu->time >> PAGE_SHIFT);
 	return 0;
@@ -4301,7 +4301,7 @@ static int emulator_cmpxchg_emulated(struct x86_emulate_ctxt *ctxt,
 		goto emul_write;
 	}
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	kaddr += offset_in_page(gpa);
 	switch (bytes) {
 	case 1:
@@ -4319,7 +4319,7 @@ static int emulator_cmpxchg_emulated(struct x86_emulate_ctxt *ctxt,
 	default:
 		BUG();
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	kvm_release_page_dirty(page);
 
 	if (!exchanged)
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index e218d5d..d9b094c 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -760,9 +760,9 @@ survive:
 				break;
 			}
 
-			maddr = kmap_atomic(pg, KM_USER0);
+			maddr = kmap_atomic(pg);
 			memcpy(maddr + offset, from, len);
-			kunmap_atomic(maddr, KM_USER0);
+			kunmap_atomic(maddr);
 			set_page_dirty_lock(pg);
 			put_page(pg);
 			up_read(&current->mm->mmap_sem);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 09/62] crypto: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (7 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 08/62] x86: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 10/62] ata: " Cong Wang
                   ` (53 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Herbert Xu, David S. Miller, Dan Williams, linux-crypto


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 crypto/ahash.c                 |    4 ++--
 crypto/async_tx/async_memcpy.c |    8 ++++----
 crypto/blkcipher.c             |    8 ++++----
 crypto/ccm.c                   |    4 ++--
 crypto/scatterwalk.c           |    8 ++++----
 crypto/shash.c                 |    8 ++++----
 include/crypto/scatterwalk.h   |   28 +++-------------------------
 7 files changed, 23 insertions(+), 45 deletions(-)

diff --git a/crypto/ahash.c b/crypto/ahash.c
index ac93c99..33bc9b6 100644
--- a/crypto/ahash.c
+++ b/crypto/ahash.c
@@ -46,7 +46,7 @@ static int hash_walk_next(struct crypto_hash_walk *walk)
 	unsigned int nbytes = min(walk->entrylen,
 				  ((unsigned int)(PAGE_SIZE)) - offset);
 
-	walk->data = crypto_kmap(walk->pg, 0);
+	walk->data = kmap_atomic(walk->pg);
 	walk->data += offset;
 
 	if (offset & alignmask) {
@@ -93,7 +93,7 @@ int crypto_hash_walk_done(struct crypto_hash_walk *walk, int err)
 		return nbytes;
 	}
 
-	crypto_kunmap(walk->data, 0);
+	kunmap_atomic(walk->data);
 	crypto_yield(walk->flags);
 
 	if (err)
diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c
index 0d5a90c..361b5e8 100644
--- a/crypto/async_tx/async_memcpy.c
+++ b/crypto/async_tx/async_memcpy.c
@@ -79,13 +79,13 @@ async_memcpy(struct page *dest, struct page *src, unsigned int dest_offset,
 		/* wait for any prerequisite operations */
 		async_tx_quiesce(&submit->depend_tx);
 
-		dest_buf = kmap_atomic(dest, KM_USER0) + dest_offset;
-		src_buf = kmap_atomic(src, KM_USER1) + src_offset;
+		dest_buf = kmap_atomic(dest) + dest_offset;
+		src_buf = kmap_atomic(src) + src_offset;
 
 		memcpy(dest_buf, src_buf, len);
 
-		kunmap_atomic(src_buf, KM_USER1);
-		kunmap_atomic(dest_buf, KM_USER0);
+		kunmap_atomic(src_buf);
+		kunmap_atomic(dest_buf);
 
 		async_tx_sync_epilog(submit);
 	}
diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c
index 1e61d1a..4dd80c7 100644
--- a/crypto/blkcipher.c
+++ b/crypto/blkcipher.c
@@ -43,22 +43,22 @@ static int blkcipher_walk_first(struct blkcipher_desc *desc,
 
 static inline void blkcipher_map_src(struct blkcipher_walk *walk)
 {
-	walk->src.virt.addr = scatterwalk_map(&walk->in, 0);
+	walk->src.virt.addr = scatterwalk_map(&walk->in);
 }
 
 static inline void blkcipher_map_dst(struct blkcipher_walk *walk)
 {
-	walk->dst.virt.addr = scatterwalk_map(&walk->out, 1);
+	walk->dst.virt.addr = scatterwalk_map(&walk->out);
 }
 
 static inline void blkcipher_unmap_src(struct blkcipher_walk *walk)
 {
-	scatterwalk_unmap(walk->src.virt.addr, 0);
+	scatterwalk_unmap(walk->src.virt.addr);
 }
 
 static inline void blkcipher_unmap_dst(struct blkcipher_walk *walk)
 {
-	scatterwalk_unmap(walk->dst.virt.addr, 1);
+	scatterwalk_unmap(walk->dst.virt.addr);
 }
 
 /* Get a spot of the specified length that does not straddle a page.
diff --git a/crypto/ccm.c b/crypto/ccm.c
index c36d654..32fe1bb 100644
--- a/crypto/ccm.c
+++ b/crypto/ccm.c
@@ -216,12 +216,12 @@ static void get_data_to_compute(struct crypto_cipher *tfm,
 			scatterwalk_start(&walk, sg_next(walk.sg));
 			n = scatterwalk_clamp(&walk, len);
 		}
-		data_src = scatterwalk_map(&walk, 0);
+		data_src = scatterwalk_map(&walk);
 
 		compute_mac(tfm, data_src, n, pctx);
 		len -= n;
 
-		scatterwalk_unmap(data_src, 0);
+		scatterwalk_unmap(data_src);
 		scatterwalk_advance(&walk, n);
 		scatterwalk_done(&walk, 0, len);
 		if (len)
diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
index 41e529a..7281b8a 100644
--- a/crypto/scatterwalk.c
+++ b/crypto/scatterwalk.c
@@ -40,9 +40,9 @@ void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg)
 }
 EXPORT_SYMBOL_GPL(scatterwalk_start);
 
-void *scatterwalk_map(struct scatter_walk *walk, int out)
+void *scatterwalk_map(struct scatter_walk *walk)
 {
-	return crypto_kmap(scatterwalk_page(walk), out) +
+	return kmap_atomic(scatterwalk_page(walk)) +
 	       offset_in_page(walk->offset);
 }
 EXPORT_SYMBOL_GPL(scatterwalk_map);
@@ -83,9 +83,9 @@ void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
 		if (len_this_page > nbytes)
 			len_this_page = nbytes;
 
-		vaddr = scatterwalk_map(walk, out);
+		vaddr = scatterwalk_map(walk);
 		memcpy_dir(buf, vaddr, len_this_page, out);
-		scatterwalk_unmap(vaddr, out);
+		scatterwalk_unmap(vaddr);
 
 		scatterwalk_advance(walk, len_this_page);
 
diff --git a/crypto/shash.c b/crypto/shash.c
index 9100912..21fc12e 100644
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -281,10 +281,10 @@ int shash_ahash_digest(struct ahash_request *req, struct shash_desc *desc)
 	if (nbytes < min(sg->length, ((unsigned int)(PAGE_SIZE)) - offset)) {
 		void *data;
 
-		data = crypto_kmap(sg_page(sg), 0);
+		data = kmap_atomic(sg_page(sg));
 		err = crypto_shash_digest(desc, data + offset, nbytes,
 					  req->result);
-		crypto_kunmap(data, 0);
+		kunmap_atomic(data);
 		crypto_yield(desc->flags);
 	} else
 		err = crypto_shash_init(desc) ?:
@@ -420,9 +420,9 @@ static int shash_compat_digest(struct hash_desc *hdesc, struct scatterlist *sg,
 
 		desc->flags = hdesc->flags;
 
-		data = crypto_kmap(sg_page(sg), 0);
+		data = kmap_atomic(sg_page(sg));
 		err = crypto_shash_digest(desc, data + offset, nbytes, out);
-		crypto_kunmap(data, 0);
+		kunmap_atomic(data);
 		crypto_yield(desc->flags);
 		goto out;
 	}
diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h
index 4fd95a3..3744d2a 100644
--- a/include/crypto/scatterwalk.h
+++ b/include/crypto/scatterwalk.h
@@ -25,28 +25,6 @@
 #include <linux/scatterlist.h>
 #include <linux/sched.h>
 
-static inline enum km_type crypto_kmap_type(int out)
-{
-	enum km_type type;
-
-	if (in_softirq())
-		type = out * (KM_SOFTIRQ1 - KM_SOFTIRQ0) + KM_SOFTIRQ0;
-	else
-		type = out * (KM_USER1 - KM_USER0) + KM_USER0;
-
-	return type;
-}
-
-static inline void *crypto_kmap(struct page *page, int out)
-{
-	return kmap_atomic(page, crypto_kmap_type(out));
-}
-
-static inline void crypto_kunmap(void *vaddr, int out)
-{
-	kunmap_atomic(vaddr, crypto_kmap_type(out));
-}
-
 static inline void crypto_yield(u32 flags)
 {
 	if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
@@ -121,15 +99,15 @@ static inline struct page *scatterwalk_page(struct scatter_walk *walk)
 	return sg_page(walk->sg) + (walk->offset >> PAGE_SHIFT);
 }
 
-static inline void scatterwalk_unmap(void *vaddr, int out)
+static inline void scatterwalk_unmap(void *vaddr)
 {
-	crypto_kunmap(vaddr, out);
+	kunmap_atomic(vaddr);
 }
 
 void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg);
 void scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
 			    size_t nbytes, int out);
-void *scatterwalk_map(struct scatter_walk *walk, int out);
+void *scatterwalk_map(struct scatter_walk *walk);
 void scatterwalk_done(struct scatter_walk *walk, int out, int more);
 
 void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (8 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 09/62] crypto: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27 18:40   ` Jeff Garzik
  2011-11-28 10:01   ` Sergei Shtylyov
  2011-11-27  5:26 ` [PATCH 11/62] block: " Cong Wang
                   ` (52 subsequent siblings)
  62 siblings, 2 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Jeff Garzik, linux-ide


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/ata/libata-sff.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4cadfa2..8469cb5 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -720,13 +720,13 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
 
 		/* FIXME: use a bounce buffer */
 		local_irq_save(flags);
-		buf = kmap_atomic(page, KM_IRQ0);
+		buf = kmap_atomic(page);
 
 		/* do the actual data transfer */
 		ap->ops->sff_data_xfer(qc->dev, buf + offset, qc->sect_size,
 				       do_write);
 
-		kunmap_atomic(buf, KM_IRQ0);
+		kunmap_atomic(buf);
 		local_irq_restore(flags);
 	} else {
 		buf = page_address(page);
@@ -865,13 +865,13 @@ next_sg:
 
 		/* FIXME: use bounce buffer */
 		local_irq_save(flags);
-		buf = kmap_atomic(page, KM_IRQ0);
+		buf = kmap_atomic(page);
 
 		/* do the actual data transfer */
 		consumed = ap->ops->sff_data_xfer(dev,  buf + offset,
 								count, rw);
 
-		kunmap_atomic(buf, KM_IRQ0);
+		kunmap_atomic(buf);
 		local_irq_restore(flags);
 	} else {
 		buf = page_address(page);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 11/62] block: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (9 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 10/62] ata: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 12/62] crypto: " Cong Wang
                   ` (51 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Nick Piggin, Lars Ellenberg, Peter Osterlund,
	Jens Axboe, Kay Sievers, Namhyung Kim, Dmitry Monakhov,
	drbd-user


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/block/brd.c              |   20 ++++++++++----------
 drivers/block/drbd/drbd_bitmap.c |   36 ++++++++++++++++++------------------
 drivers/block/drbd/drbd_nl.c     |    4 ++--
 drivers/block/loop.c             |   16 ++++++++--------
 drivers/block/pktcdvd.c          |    8 ++++----
 5 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index d22119d..b345834 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -242,9 +242,9 @@ static void copy_to_brd(struct brd_device *brd, const void *src,
 	page = brd_lookup_page(brd, sector);
 	BUG_ON(!page);
 
-	dst = kmap_atomic(page, KM_USER1);
+	dst = kmap_atomic(page);
 	memcpy(dst + offset, src, copy);
-	kunmap_atomic(dst, KM_USER1);
+	kunmap_atomic(dst);
 
 	if (copy < n) {
 		src += copy;
@@ -253,9 +253,9 @@ static void copy_to_brd(struct brd_device *brd, const void *src,
 		page = brd_lookup_page(brd, sector);
 		BUG_ON(!page);
 
-		dst = kmap_atomic(page, KM_USER1);
+		dst = kmap_atomic(page);
 		memcpy(dst, src, copy);
-		kunmap_atomic(dst, KM_USER1);
+		kunmap_atomic(dst);
 	}
 }
 
@@ -273,9 +273,9 @@ static void copy_from_brd(void *dst, struct brd_device *brd,
 	copy = min_t(size_t, n, PAGE_SIZE - offset);
 	page = brd_lookup_page(brd, sector);
 	if (page) {
-		src = kmap_atomic(page, KM_USER1);
+		src = kmap_atomic(page);
 		memcpy(dst, src + offset, copy);
-		kunmap_atomic(src, KM_USER1);
+		kunmap_atomic(src);
 	} else
 		memset(dst, 0, copy);
 
@@ -285,9 +285,9 @@ static void copy_from_brd(void *dst, struct brd_device *brd,
 		copy = n - copy;
 		page = brd_lookup_page(brd, sector);
 		if (page) {
-			src = kmap_atomic(page, KM_USER1);
+			src = kmap_atomic(page);
 			memcpy(dst, src, copy);
-			kunmap_atomic(src, KM_USER1);
+			kunmap_atomic(src);
 		} else
 			memset(dst, 0, copy);
 	}
@@ -309,7 +309,7 @@ static int brd_do_bvec(struct brd_device *brd, struct page *page,
 			goto out;
 	}
 
-	mem = kmap_atomic(page, KM_USER0);
+	mem = kmap_atomic(page);
 	if (rw == READ) {
 		copy_from_brd(mem + off, brd, sector, len);
 		flush_dcache_page(page);
@@ -317,7 +317,7 @@ static int brd_do_bvec(struct brd_device *brd, struct page *page,
 		flush_dcache_page(page);
 		copy_to_brd(brd, mem + off, sector, len);
 	}
-	kunmap_atomic(mem, KM_USER0);
+	kunmap_atomic(mem);
 
 out:
 	return err;
diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 912f585..39de9ff 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -292,22 +292,22 @@ static unsigned int bm_bit_to_page_idx(struct drbd_bitmap *b, u64 bitnr)
 static unsigned long *__bm_map_pidx(struct drbd_bitmap *b, unsigned int idx, const enum km_type km)
 {
 	struct page *page = b->bm_pages[idx];
-	return (unsigned long *) kmap_atomic(page, km);
+	return (unsigned long *) kmap_atomic(page);
 }
 
 static unsigned long *bm_map_pidx(struct drbd_bitmap *b, unsigned int idx)
 {
-	return __bm_map_pidx(b, idx, KM_IRQ1);
+	return __bm_map_pidx(b, idx);
 }
 
-static void __bm_unmap(unsigned long *p_addr, const enum km_type km)
+static void __bm_unmap(unsigned long *p_addr)
 {
-	kunmap_atomic(p_addr, km);
+	kunmap_atomic(p_addr);
 };
 
 static void bm_unmap(unsigned long *p_addr)
 {
-	return __bm_unmap(p_addr, KM_IRQ1);
+	return __bm_unmap(p_addr);
 }
 
 /* long word offset of _bitmap_ sector */
@@ -543,10 +543,10 @@ static unsigned long bm_count_bits(struct drbd_bitmap *b)
 
 	/* all but last page */
 	for (idx = 0; idx < b->bm_number_of_pages - 1; idx++) {
-		p_addr = __bm_map_pidx(b, idx, KM_USER0);
+		p_addr = __bm_map_pidx(b, idx);
 		for (i = 0; i < LWPP; i++)
 			bits += hweight_long(p_addr[i]);
-		__bm_unmap(p_addr, KM_USER0);
+		__bm_unmap(p_addr);
 		cond_resched();
 	}
 	/* last (or only) page */
@@ -1163,7 +1163,7 @@ int drbd_bm_write_page(struct drbd_conf *mdev, unsigned int idx) __must_hold(loc
  * this returns a bit number, NOT a sector!
  */
 static unsigned long __bm_find_next(struct drbd_conf *mdev, unsigned long bm_fo,
-	const int find_zero_bit, const enum km_type km)
+	const int find_zero_bit)
 {
 	struct drbd_bitmap *b = mdev->bitmap;
 	unsigned long *p_addr;
@@ -1178,7 +1178,7 @@ static unsigned long __bm_find_next(struct drbd_conf *mdev, unsigned long bm_fo,
 		while (bm_fo < b->bm_bits) {
 			/* bit offset of the first bit in the page */
 			bit_offset = bm_fo & ~BITS_PER_PAGE_MASK;
-			p_addr = __bm_map_pidx(b, bm_bit_to_page_idx(b, bm_fo), km);
+			p_addr = __bm_map_pidx(b, bm_bit_to_page_idx(b, bm_fo));
 
 			if (find_zero_bit)
 				i = find_next_zero_bit_le(p_addr,
@@ -1187,7 +1187,7 @@ static unsigned long __bm_find_next(struct drbd_conf *mdev, unsigned long bm_fo,
 				i = find_next_bit_le(p_addr,
 						PAGE_SIZE*8, bm_fo & BITS_PER_PAGE_MASK);
 
-			__bm_unmap(p_addr, km);
+			__bm_unmap(p_addr);
 			if (i < PAGE_SIZE*8) {
 				bm_fo = bit_offset + i;
 				if (bm_fo >= b->bm_bits)
@@ -1215,7 +1215,7 @@ static unsigned long bm_find_next(struct drbd_conf *mdev,
 	if (BM_DONT_TEST & b->bm_flags)
 		bm_print_lock_info(mdev);
 
-	i = __bm_find_next(mdev, bm_fo, find_zero_bit, KM_IRQ1);
+	i = __bm_find_next(mdev, bm_fo, find_zero_bit);
 
 	spin_unlock_irq(&b->bm_lock);
 	return i;
@@ -1239,13 +1239,13 @@ unsigned long drbd_bm_find_next_zero(struct drbd_conf *mdev, unsigned long bm_fo
 unsigned long _drbd_bm_find_next(struct drbd_conf *mdev, unsigned long bm_fo)
 {
 	/* WARN_ON(!(BM_DONT_SET & mdev->b->bm_flags)); */
-	return __bm_find_next(mdev, bm_fo, 0, KM_USER1);
+	return __bm_find_next(mdev, bm_fo, 0);
 }
 
 unsigned long _drbd_bm_find_next_zero(struct drbd_conf *mdev, unsigned long bm_fo)
 {
 	/* WARN_ON(!(BM_DONT_SET & mdev->b->bm_flags)); */
-	return __bm_find_next(mdev, bm_fo, 1, KM_USER1);
+	return __bm_find_next(mdev, bm_fo, 1);
 }
 
 /* returns number of bits actually changed.
@@ -1273,14 +1273,14 @@ static int __bm_change_bits_to(struct drbd_conf *mdev, const unsigned long s,
 		unsigned int page_nr = bm_bit_to_page_idx(b, bitnr);
 		if (page_nr != last_page_nr) {
 			if (p_addr)
-				__bm_unmap(p_addr, KM_IRQ1);
+				__bm_unmap(p_addr);
 			if (c < 0)
 				bm_set_page_lazy_writeout(b->bm_pages[last_page_nr]);
 			else if (c > 0)
 				bm_set_page_need_writeout(b->bm_pages[last_page_nr]);
 			changed_total += c;
 			c = 0;
-			p_addr = __bm_map_pidx(b, page_nr, KM_IRQ1);
+			p_addr = __bm_map_pidx(b, page_nr);
 			last_page_nr = page_nr;
 		}
 		if (val)
@@ -1289,7 +1289,7 @@ static int __bm_change_bits_to(struct drbd_conf *mdev, const unsigned long s,
 			c -= (0 != __test_and_clear_bit_le(bitnr & BITS_PER_PAGE_MASK, p_addr));
 	}
 	if (p_addr)
-		__bm_unmap(p_addr, KM_IRQ1);
+		__bm_unmap(p_addr);
 	if (c < 0)
 		bm_set_page_lazy_writeout(b->bm_pages[last_page_nr]);
 	else if (c > 0)
@@ -1342,13 +1342,13 @@ static inline void bm_set_full_words_within_one_page(struct drbd_bitmap *b,
 {
 	int i;
 	int bits;
-	unsigned long *paddr = kmap_atomic(b->bm_pages[page_nr], KM_IRQ1);
+	unsigned long *paddr = kmap_atomic(b->bm_pages[page_nr]);
 	for (i = first_word; i < last_word; i++) {
 		bits = hweight_long(paddr[i]);
 		paddr[i] = ~0UL;
 		b->bm_set += BITS_PER_LONG - bits;
 	}
-	kunmap_atomic(paddr, KM_IRQ1);
+	kunmap_atomic(paddr);
 }
 
 /* Same thing as drbd_bm_set_bits,
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index af2a250..e09f9ce 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -2526,10 +2526,10 @@ void drbd_bcast_ee(struct drbd_conf *mdev,
 
 	page = e->pages;
 	page_chain_for_each(page) {
-		void *d = kmap_atomic(page, KM_USER0);
+		void *d = kmap_atomic(page);
 		unsigned l = min_t(unsigned, len, PAGE_SIZE);
 		memcpy(tl, d, l);
-		kunmap_atomic(d, KM_USER0);
+		kunmap_atomic(d);
 		tl = (unsigned short*)((char*)tl + l);
 		len -= l;
 		if (len == 0)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 68b205a..4fe6227 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -94,16 +94,16 @@ static int transfer_none(struct loop_device *lo, int cmd,
 			 struct page *loop_page, unsigned loop_off,
 			 int size, sector_t real_block)
 {
-	char *raw_buf = kmap_atomic(raw_page, KM_USER0) + raw_off;
-	char *loop_buf = kmap_atomic(loop_page, KM_USER1) + loop_off;
+	char *raw_buf = kmap_atomic(raw_page) + raw_off;
+	char *loop_buf = kmap_atomic(loop_page) + loop_off;
 
 	if (cmd == READ)
 		memcpy(loop_buf, raw_buf, size);
 	else
 		memcpy(raw_buf, loop_buf, size);
 
-	kunmap_atomic(loop_buf, KM_USER1);
-	kunmap_atomic(raw_buf, KM_USER0);
+	kunmap_atomic(loop_buf);
+	kunmap_atomic(raw_buf);
 	cond_resched();
 	return 0;
 }
@@ -113,8 +113,8 @@ static int transfer_xor(struct loop_device *lo, int cmd,
 			struct page *loop_page, unsigned loop_off,
 			int size, sector_t real_block)
 {
-	char *raw_buf = kmap_atomic(raw_page, KM_USER0) + raw_off;
-	char *loop_buf = kmap_atomic(loop_page, KM_USER1) + loop_off;
+	char *raw_buf = kmap_atomic(raw_page) + raw_off;
+	char *loop_buf = kmap_atomic(loop_page) + loop_off;
 	char *in, *out, *key;
 	int i, keysize;
 
@@ -131,8 +131,8 @@ static int transfer_xor(struct loop_device *lo, int cmd,
 	for (i = 0; i < size; i++)
 		*out++ = *in++ ^ key[(i & 511) % keysize];
 
-	kunmap_atomic(loop_buf, KM_USER1);
-	kunmap_atomic(raw_buf, KM_USER0);
+	kunmap_atomic(loop_buf);
+	kunmap_atomic(raw_buf);
 	cond_resched();
 	return 0;
 }
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index a63b0a2..4e06fa3 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -987,14 +987,14 @@ static void pkt_copy_bio_data(struct bio *src_bio, int seg, int offs, struct pag
 
 	while (copy_size > 0) {
 		struct bio_vec *src_bvl = bio_iovec_idx(src_bio, seg);
-		void *vfrom = kmap_atomic(src_bvl->bv_page, KM_USER0) +
+		void *vfrom = kmap_atomic(src_bvl->bv_page) +
 			src_bvl->bv_offset + offs;
 		void *vto = page_address(dst_page) + dst_offs;
 		int len = min_t(int, copy_size, src_bvl->bv_len - offs);
 
 		BUG_ON(len < 0);
 		memcpy(vto, vfrom, len);
-		kunmap_atomic(vfrom, KM_USER0);
+		kunmap_atomic(vfrom);
 
 		seg++;
 		offs = 0;
@@ -1019,10 +1019,10 @@ static void pkt_make_local_copy(struct packet_data *pkt, struct bio_vec *bvec)
 	offs = 0;
 	for (f = 0; f < pkt->frames; f++) {
 		if (bvec[f].bv_page != pkt->pages[p]) {
-			void *vfrom = kmap_atomic(bvec[f].bv_page, KM_USER0) + bvec[f].bv_offset;
+			void *vfrom = kmap_atomic(bvec[f].bv_page) + bvec[f].bv_offset;
 			void *vto = page_address(pkt->pages[p]) + offs;
 			memcpy(vto, vfrom, CD_FRAMESIZE);
-			kunmap_atomic(vfrom, KM_USER0);
+			kunmap_atomic(vfrom);
 			bvec[f].bv_page = pkt->pages[p];
 			bvec[f].bv_offset = offs;
 		} else {
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 12/62] crypto: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (10 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 11/62] block: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 13/62] edac: " Cong Wang
                   ` (50 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Herbert Xu, David S. Miller, linux-crypto


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/crypto/hifn_795x.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
index fe765f4..76368f9 100644
--- a/drivers/crypto/hifn_795x.c
+++ b/drivers/crypto/hifn_795x.c
@@ -1731,9 +1731,9 @@ static int ablkcipher_get(void *saddr, unsigned int *srestp, unsigned int offset
 	while (size) {
 		copy = min3(srest, dst->length, size);
 
-		daddr = kmap_atomic(sg_page(dst), KM_IRQ0);
+		daddr = kmap_atomic(sg_page(dst));
 		memcpy(daddr + dst->offset + offset, saddr, copy);
-		kunmap_atomic(daddr, KM_IRQ0);
+		kunmap_atomic(daddr);
 
 		nbytes -= copy;
 		size -= copy;
@@ -1793,17 +1793,17 @@ static void hifn_process_ready(struct ablkcipher_request *req, int error)
 				continue;
 			}
 
-			saddr = kmap_atomic(sg_page(t), KM_SOFTIRQ0);
+			saddr = kmap_atomic(sg_page(t));
 
 			err = ablkcipher_get(saddr, &t->length, t->offset,
 					dst, nbytes, &nbytes);
 			if (err < 0) {
-				kunmap_atomic(saddr, KM_SOFTIRQ0);
+				kunmap_atomic(saddr);
 				break;
 			}
 
 			idx += err;
-			kunmap_atomic(saddr, KM_SOFTIRQ0);
+			kunmap_atomic(saddr);
 		}
 
 		hifn_cipher_walk_exit(&rctx->walk);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 13/62] edac: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (11 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 12/62] crypto: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 14/62] drm: " Cong Wang
                   ` (49 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Doug Thompson, bluesmoke-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/edac/edac_mc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index d69144a..08dff48 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -621,13 +621,13 @@ static void edac_mc_scrub_block(unsigned long page, unsigned long offset,
 	if (PageHighMem(pg))
 		local_irq_save(flags);
 
-	virt_addr = kmap_atomic(pg, KM_BOUNCE_READ);
+	virt_addr = kmap_atomic(pg);
 
 	/* Perform architecture specific atomic scrub operation */
 	atomic_scrub(virt_addr + offset, size);
 
 	/* Unmap and complete */
-	kunmap_atomic(virt_addr, KM_BOUNCE_READ);
+	kunmap_atomic(virt_addr);
 
 	if (PageHighMem(pg))
 		local_irq_restore(flags);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 14/62] drm: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (12 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 13/62] edac: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:26 ` [PATCH 15/62] ide: " Cong Wang
                   ` (48 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, David Airlie, Konrad Rzeszutek Wilk,
	Thomas Hellstrom, Dave Airlie, Paul Gortmaker, Jakob Bornecantz,
	dri-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/gpu/drm/drm_cache.c         |    8 ++++----
 drivers/gpu/drm/ttm/ttm_tt.c        |   16 ++++++++--------
 drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c |    6 +++---
 3 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c
index 5928653..4b8653b 100644
--- a/drivers/gpu/drm/drm_cache.c
+++ b/drivers/gpu/drm/drm_cache.c
@@ -41,10 +41,10 @@ drm_clflush_page(struct page *page)
 	if (unlikely(page == NULL))
 		return;
 
-	page_virtual = kmap_atomic(page, KM_USER0);
+	page_virtual = kmap_atomic(page);
 	for (i = 0; i < PAGE_SIZE; i += boot_cpu_data.x86_clflush_size)
 		clflush(page_virtual + i);
-	kunmap_atomic(page_virtual, KM_USER0);
+	kunmap_atomic(page_virtual);
 }
 
 static void drm_cache_flush_clflush(struct page *pages[],
@@ -87,10 +87,10 @@ drm_clflush_pages(struct page *pages[], unsigned long num_pages)
 		if (unlikely(page == NULL))
 			continue;
 
-		page_virtual = kmap_atomic(page, KM_USER0);
+		page_virtual = kmap_atomic(page);
 		flush_dcache_range((unsigned long)page_virtual,
 				   (unsigned long)page_virtual + PAGE_SIZE);
-		kunmap_atomic(page_virtual, KM_USER0);
+		kunmap_atomic(page_virtual);
 	}
 #else
 	printk(KERN_ERR "Architecture has no drm_cache.c support\n");
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index f9cc548..ec27fb9 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -496,11 +496,11 @@ static int ttm_tt_swapin(struct ttm_tt *ttm)
 			goto out_err;
 
 		preempt_disable();
-		from_virtual = kmap_atomic(from_page, KM_USER0);
-		to_virtual = kmap_atomic(to_page, KM_USER1);
+		from_virtual = kmap_atomic(from_page);
+		to_virtual = kmap_atomic(to_page);
 		memcpy(to_virtual, from_virtual, PAGE_SIZE);
-		kunmap_atomic(to_virtual, KM_USER1);
-		kunmap_atomic(from_virtual, KM_USER0);
+		kunmap_atomic(to_virtual);
+		kunmap_atomic(from_virtual);
 		preempt_enable();
 		page_cache_release(from_page);
 	}
@@ -565,11 +565,11 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage)
 			goto out_err;
 		}
 		preempt_disable();
-		from_virtual = kmap_atomic(from_page, KM_USER0);
-		to_virtual = kmap_atomic(to_page, KM_USER1);
+		from_virtual = kmap_atomic(from_page);
+		to_virtual = kmap_atomic(to_page);
 		memcpy(to_virtual, from_virtual, PAGE_SIZE);
-		kunmap_atomic(to_virtual, KM_USER1);
-		kunmap_atomic(from_virtual, KM_USER0);
+		kunmap_atomic(to_virtual);
+		kunmap_atomic(from_virtual);
 		preempt_enable();
 		set_page_dirty(to_page);
 		mark_page_accessed(to_page);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
index f4e7763..51c9ba5 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
@@ -136,10 +136,10 @@ static int vmw_gmr_build_descriptors(struct list_head *desc_pages,
 
 		if (likely(page_virtual != NULL)) {
 			desc_virtual->ppn = page_to_pfn(page);
-			kunmap_atomic(page_virtual, KM_USER0);
+			kunmap_atomic(page_virtual);
 		}
 
-		page_virtual = kmap_atomic(page, KM_USER0);
+		page_virtual = kmap_atomic(page);
 		desc_virtual = page_virtual - 1;
 		prev_pfn = ~(0UL);
 
@@ -169,7 +169,7 @@ static int vmw_gmr_build_descriptors(struct list_head *desc_pages,
 	}
 
 	if (likely(page_virtual != NULL))
-		kunmap_atomic(page_virtual, KM_USER0);
+		kunmap_atomic(page_virtual);
 
 	return 0;
 out_err:
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 15/62] ide: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (13 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 14/62] drm: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  6:12   ` David Miller
  2011-11-27  5:26 ` [PATCH 16/62] infiniband: " Cong Wang
                   ` (47 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, David S. Miller, linux-ide


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/ide/ide-taskfile.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 5bc2839..729428e 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -253,7 +253,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
 		if (page_is_high)
 			local_irq_save(flags);
 
-		buf = kmap_atomic(page, KM_BIO_SRC_IRQ) + offset;
+		buf = kmap_atomic(page) + offset;
 
 		cmd->nleft -= nr_bytes;
 		cmd->cursg_ofs += nr_bytes;
@@ -269,7 +269,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
 		else
 			hwif->tp_ops->input_data(drive, cmd, buf, nr_bytes);
 
-		kunmap_atomic(buf, KM_BIO_SRC_IRQ);
+		kunmap_atomic(buf);
 
 		if (page_is_high)
 			local_irq_restore(flags);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 16/62] infiniband: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (14 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 15/62] ide: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-28  7:38   ` Roland Dreier
  2011-11-27  5:26 ` [PATCH 17/62] md: " Cong Wang
                   ` (46 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Roland Dreier, Sean Hefty, Hal Rosenstock, linux-rdma


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/infiniband/ulp/iser/iser_memory.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index fb88d68..2033a92 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -73,11 +73,11 @@ static int iser_start_rdma_unaligned_sg(struct iscsi_iser_task *iser_task,
 
 		p = mem;
 		for_each_sg(sgl, sg, data->size, i) {
-			from = kmap_atomic(sg_page(sg), KM_USER0);
+			from = kmap_atomic(sg_page(sg));
 			memcpy(p,
 			       from + sg->offset,
 			       sg->length);
-			kunmap_atomic(from, KM_USER0);
+			kunmap_atomic(from);
 			p += sg->length;
 		}
 	}
@@ -133,11 +133,11 @@ void iser_finalize_rdma_unaligned_sg(struct iscsi_iser_task *iser_task,
 
 		p = mem;
 		for_each_sg(sgl, sg, sg_size, i) {
-			to = kmap_atomic(sg_page(sg), KM_SOFTIRQ0);
+			to = kmap_atomic(sg_page(sg));
 			memcpy(to + sg->offset,
 			       p,
 			       sg->length);
-			kunmap_atomic(to, KM_SOFTIRQ0);
+			kunmap_atomic(to);
 			p += sg->length;
 		}
 	}
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 17/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (15 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 16/62] infiniband: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  6:00   ` NeilBrown
  2011-11-27  5:26 ` [PATCH 18/62] media: " Cong Wang
                   ` (45 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Neil Brown, linux-raid, dm-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/md/bitmap.c   |   36 ++++++++++++++++++------------------
 drivers/md/dm-crypt.c |    8 ++++----
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 7878712..8659515 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -457,7 +457,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
 		return;
 	}
 	spin_unlock_irqrestore(&bitmap->lock, flags);
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	sb->events = cpu_to_le64(bitmap->mddev->events);
 	if (bitmap->mddev->events < bitmap->events_cleared)
 		/* rocking back to read-only */
@@ -467,7 +467,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
 	/* Just in case these have been changed via sysfs: */
 	sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ);
 	sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind);
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	write_page(bitmap, bitmap->sb_page, 1);
 }
 
@@ -478,7 +478,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
 
 	if (!bitmap || !bitmap->sb_page)
 		return;
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	printk(KERN_DEBUG "%s: bitmap file superblock:\n", bmname(bitmap));
 	printk(KERN_DEBUG "         magic: %08x\n", le32_to_cpu(sb->magic));
 	printk(KERN_DEBUG "       version: %d\n", le32_to_cpu(sb->version));
@@ -497,7 +497,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
 	printk(KERN_DEBUG "     sync size: %llu KB\n",
 			(unsigned long long)le64_to_cpu(sb->sync_size)/2);
 	printk(KERN_DEBUG "max write behind: %d\n", le32_to_cpu(sb->write_behind));
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 }
 
 /*
@@ -603,7 +603,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
 		return err;
 	}
 
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 
 	chunksize = le32_to_cpu(sb->chunksize);
 	daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ;
@@ -664,7 +664,7 @@ success:
 		bitmap->events_cleared = bitmap->mddev->events;
 	err = 0;
 out:
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	if (err)
 		bitmap_print_sb(bitmap);
 	return err;
@@ -689,7 +689,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
 		return 0;
 	}
 	spin_unlock_irqrestore(&bitmap->lock, flags);
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	old = le32_to_cpu(sb->state) & bits;
 	switch (op) {
 	case MASK_SET:
@@ -703,7 +703,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
 	default:
 		BUG();
 	}
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	return old;
 }
 
@@ -881,12 +881,12 @@ static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block)
 	bit = file_page_offset(bitmap, chunk);
 
 	/* set the bit */
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (bitmap->flags & BITMAP_HOSTENDIAN)
 		set_bit(bit, kaddr);
 	else
 		__set_bit_le(bit, kaddr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	pr_debug("set file bit %lu page %lu\n", bit, page->index);
 	/* record page number so it gets flushed to disk when unplug occurs */
 	set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY);
@@ -1050,10 +1050,10 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
 				 * if bitmap is out of date, dirty the
 				 * whole page and write it out
 				 */
-				paddr = kmap_atomic(page, KM_USER0);
+				paddr = kmap_atomic(page);
 				memset(paddr + offset, 0xff,
 				       PAGE_SIZE - offset);
-				kunmap_atomic(paddr, KM_USER0);
+				kunmap_atomic(paddr);
 				write_page(bitmap, page, 1);
 
 				ret = -EIO;
@@ -1061,12 +1061,12 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
 					goto err;
 			}
 		}
-		paddr = kmap_atomic(page, KM_USER0);
+		paddr = kmap_atomic(page);
 		if (bitmap->flags & BITMAP_HOSTENDIAN)
 			b = test_bit(bit, paddr);
 		else
 			b = test_bit_le(bit, paddr);
-		kunmap_atomic(paddr, KM_USER0);
+		kunmap_atomic(paddr);
 		if (b) {
 			/* if the disk bit is set, set the memory bit */
 			int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap))
@@ -1207,10 +1207,10 @@ void bitmap_daemon_work(struct mddev *mddev)
 			    bitmap->mddev->bitmap_info.external == 0) {
 				bitmap_super_t *sb;
 				bitmap->need_sync = 0;
-				sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+				sb = kmap_atomic(bitmap->sb_page);
 				sb->events_cleared =
 					cpu_to_le64(bitmap->events_cleared);
-				kunmap_atomic(sb, KM_USER0);
+				kunmap_atomic(sb);
 				write_page(bitmap, bitmap->sb_page, 1);
 			}
 			spin_lock_irqsave(&bitmap->lock, flags);
@@ -1233,7 +1233,7 @@ void bitmap_daemon_work(struct mddev *mddev)
 						  -1);
 
 				/* clear the bit */
-				paddr = kmap_atomic(page, KM_USER0);
+				paddr = kmap_atomic(page);
 				if (bitmap->flags & BITMAP_HOSTENDIAN)
 					clear_bit(file_page_offset(bitmap, j),
 						  paddr);
@@ -1242,7 +1242,7 @@ void bitmap_daemon_work(struct mddev *mddev)
 						file_page_offset(bitmap,
 								 j),
 						paddr);
-				kunmap_atomic(paddr, KM_USER0);
+				kunmap_atomic(paddr);
 			} else if (*bmc <= 2) {
 				*bmc = 1; /* maybe clear the bit next time */
 				set_page_attr(bitmap, page, BITMAP_PAGE_PENDING);
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 8c2a000..db6b516 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -590,9 +590,9 @@ static int crypt_iv_lmk_gen(struct crypt_config *cc, u8 *iv,
 	int r = 0;
 
 	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE) {
-		src = kmap_atomic(sg_page(&dmreq->sg_in), KM_USER0);
+		src = kmap_atomic(sg_page(&dmreq->sg_in));
 		r = crypt_iv_lmk_one(cc, iv, dmreq, src + dmreq->sg_in.offset);
-		kunmap_atomic(src, KM_USER0);
+		kunmap_atomic(src);
 	} else
 		memset(iv, 0, cc->iv_size);
 
@@ -608,14 +608,14 @@ static int crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
 	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE)
 		return 0;
 
-	dst = kmap_atomic(sg_page(&dmreq->sg_out), KM_USER0);
+	dst = kmap_atomic(sg_page(&dmreq->sg_out));
 	r = crypt_iv_lmk_one(cc, iv, dmreq, dst + dmreq->sg_out.offset);
 
 	/* Tweak the first block of plaintext sector */
 	if (!r)
 		crypto_xor(dst + dmreq->sg_out.offset, iv, cc->iv_size);
 
-	kunmap_atomic(dst, KM_USER0);
+	kunmap_atomic(dst);
 	return r;
 }
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 18/62] media: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (16 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 17/62] md: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27 23:10   ` Andy Walls
  2011-11-27  5:26 ` [PATCH 19/62] memstick: " Cong Wang
                   ` (44 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Andy Walls, Mauro Carvalho Chehab, ivtv-devel,
	linux-media


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/media/video/ivtv/ivtv-udma.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/ivtv/ivtv-udma.c b/drivers/media/video/ivtv/ivtv-udma.c
index 69cc816..7338cb2 100644
--- a/drivers/media/video/ivtv/ivtv-udma.c
+++ b/drivers/media/video/ivtv/ivtv-udma.c
@@ -57,9 +57,9 @@ int ivtv_udma_fill_sg_list (struct ivtv_user_dma *dma, struct ivtv_dma_page_info
 			if (dma->bouncemap[map_offset] == NULL)
 				return -1;
 			local_irq_save(flags);
-			src = kmap_atomic(dma->map[map_offset], KM_BOUNCE_READ) + offset;
+			src = kmap_atomic(dma->map[map_offset]) + offset;
 			memcpy(page_address(dma->bouncemap[map_offset]) + offset, src, len);
-			kunmap_atomic(src, KM_BOUNCE_READ);
+			kunmap_atomic(src);
 			local_irq_restore(flags);
 			sg_set_page(&dma->SGlist[map_offset], dma->bouncemap[map_offset], len, offset);
 		}
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 19/62] memstick: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (17 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 18/62] media: " Cong Wang
@ 2011-11-27  5:26 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
                   ` (43 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:26 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Alex Dubov, Takashi Iwai, Aries Lee, Paul Gortmaker


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/memstick/host/jmb38x_ms.c |    4 ++--
 drivers/memstick/host/tifm_ms.c   |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index 6ce70e9..fd4eefb 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -325,7 +325,7 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host)
 			p_cnt = min(p_cnt, length);
 
 			local_irq_save(flags);
-			buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + p_off;
+			buf = kmap_atomic(pg) + p_off;
 		} else {
 			buf = host->req->data + host->block_pos;
 			p_cnt = host->req->data_len - host->block_pos;
@@ -341,7 +341,7 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host)
 				 : jmb38x_ms_read_reg_data(host, buf, p_cnt);
 
 		if (host->req->long_data) {
-			kunmap_atomic(buf - p_off, KM_BIO_SRC_IRQ);
+			kunmap_atomic(buf - p_off);
 			local_irq_restore(flags);
 		}
 
diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c
index b7aacf4..975d77c 100644
--- a/drivers/memstick/host/tifm_ms.c
+++ b/drivers/memstick/host/tifm_ms.c
@@ -210,7 +210,7 @@ static unsigned int tifm_ms_transfer_data(struct tifm_ms *host)
 			p_cnt = min(p_cnt, length);
 
 			local_irq_save(flags);
-			buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + p_off;
+			buf = kmap_atomic(pg) + p_off;
 		} else {
 			buf = host->req->data + host->block_pos;
 			p_cnt = host->req->data_len - host->block_pos;
@@ -221,7 +221,7 @@ static unsigned int tifm_ms_transfer_data(struct tifm_ms *host)
 			 : tifm_ms_read_data(host, buf, p_cnt);
 
 		if (host->req->long_data) {
-			kunmap_atomic(buf - p_off, KM_BIO_SRC_IRQ);
+			kunmap_atomic(buf - p_off);
 			local_irq_restore(flags);
 		}
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 20/62] mmc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (18 preceding siblings ...)
  2011-11-27  5:26 ` [PATCH 19/62] memstick: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27 21:02   ` Guennadi Liakhovetski
                     ` (2 more replies)
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
                   ` (42 subsequent siblings)
  62 siblings, 3 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Nicolas Ferre, Chris Ball, David Brown,
	Daniel Walker, Bryan Huntsman, Alex Dubov, Guennadi Liakhovetski,
	Ian Molton, linux-arm-kernel, linux-mmc, linux-arm-msm


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/mmc/host/at91_mci.c |    8 ++++----
 drivers/mmc/host/msm_sdcc.c |    6 +++---
 drivers/mmc/host/sdhci.c    |    4 ++--
 drivers/mmc/host/tifm_sd.c  |   16 ++++++++--------
 drivers/mmc/host/tmio_mmc.c |    1 -
 drivers/mmc/host/tmio_mmc.h |    4 ++--
 6 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index a8b4d2a..9a32922 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -236,7 +236,7 @@ static inline void at91_mci_sg_to_dma(struct at91mci_host *host, struct mmc_data
 
 		sg = &data->sg[i];
 
-		sgbuffer = kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset;
+		sgbuffer = kmap_atomic(sg_page(sg)) + sg->offset;
 		amount = min(size, sg->length);
 		size -= amount;
 
@@ -252,7 +252,7 @@ static inline void at91_mci_sg_to_dma(struct at91mci_host *host, struct mmc_data
 			dmabuf = (unsigned *)tmpv;
 		}
 
-		kunmap_atomic(sgbuffer, KM_BIO_SRC_IRQ);
+		kunmap_atomic(sgbuffer);
 
 		if (size == 0)
 			break;
@@ -302,7 +302,7 @@ static void at91_mci_post_dma_read(struct at91mci_host *host)
 
 		sg = &data->sg[i];
 
-		sgbuffer = kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset;
+		sgbuffer = kmap_atomic(sg_page(sg)) + sg->offset;
 		amount = min(size, sg->length);
 		size -= amount;
 
@@ -318,7 +318,7 @@ static void at91_mci_post_dma_read(struct at91mci_host *host)
 		}
 
 		flush_kernel_dcache_page(sg_page(sg));
-		kunmap_atomic(sgbuffer, KM_BIO_SRC_IRQ);
+		kunmap_atomic(sgbuffer);
 		data->bytes_xfered += amount;
 		if (size == 0)
 			break;
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index 80d8eb1..62faa4a 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -689,8 +689,8 @@ msmsdcc_pio_irq(int irq, void *dev_id)
 
 		/* Map the current scatter buffer */
 		local_irq_save(flags);
-		buffer = kmap_atomic(sg_page(host->pio.sg),
-				     KM_BIO_SRC_IRQ) + host->pio.sg->offset;
+		buffer = kmap_atomic(sg_page(host->pio.sg))
+				     + host->pio.sg->offset;
 		buffer += host->pio.sg_off;
 		remain = host->pio.sg->length - host->pio.sg_off;
 		len = 0;
@@ -700,7 +700,7 @@ msmsdcc_pio_irq(int irq, void *dev_id)
 			len = msmsdcc_pio_write(host, buffer, remain, status);
 
 		/* Unmap the buffer */
-		kunmap_atomic(buffer, KM_BIO_SRC_IRQ);
+		kunmap_atomic(buffer);
 		local_irq_restore(flags);
 
 		host->pio.sg_off += len;
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 6d8eea3..2cc9e29 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -423,12 +423,12 @@ static void sdhci_transfer_pio(struct sdhci_host *host)
 static char *sdhci_kmap_atomic(struct scatterlist *sg, unsigned long *flags)
 {
 	local_irq_save(*flags);
-	return kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset;
+	return kmap_atomic(sg_page(sg)) + sg->offset;
 }
 
 static void sdhci_kunmap_atomic(void *buffer, unsigned long *flags)
 {
-	kunmap_atomic(buffer, KM_BIO_SRC_IRQ);
+	kunmap_atomic(buffer);
 	local_irq_restore(*flags);
 }
 
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c
index f70d046..fc00081 100644
--- a/drivers/mmc/host/tifm_sd.c
+++ b/drivers/mmc/host/tifm_sd.c
@@ -118,7 +118,7 @@ static void tifm_sd_read_fifo(struct tifm_sd *host, struct page *pg,
 	unsigned char *buf;
 	unsigned int pos = 0, val;
 
-	buf = kmap_atomic(pg, KM_BIO_DST_IRQ) + off;
+	buf = kmap_atomic(pg) + off;
 	if (host->cmd_flags & DATA_CARRY) {
 		buf[pos++] = host->bounce_buf_data[0];
 		host->cmd_flags &= ~DATA_CARRY;
@@ -134,7 +134,7 @@ static void tifm_sd_read_fifo(struct tifm_sd *host, struct page *pg,
 		}
 		buf[pos++] = (val >> 8) & 0xff;
 	}
-	kunmap_atomic(buf - off, KM_BIO_DST_IRQ);
+	kunmap_atomic(buf - off);
 }
 
 static void tifm_sd_write_fifo(struct tifm_sd *host, struct page *pg,
@@ -144,7 +144,7 @@ static void tifm_sd_write_fifo(struct tifm_sd *host, struct page *pg,
 	unsigned char *buf;
 	unsigned int pos = 0, val;
 
-	buf = kmap_atomic(pg, KM_BIO_SRC_IRQ) + off;
+	buf = kmap_atomic(pg) + off;
 	if (host->cmd_flags & DATA_CARRY) {
 		val = host->bounce_buf_data[0] | ((buf[pos++] << 8) & 0xff00);
 		writel(val, sock->addr + SOCK_MMCSD_DATA);
@@ -161,7 +161,7 @@ static void tifm_sd_write_fifo(struct tifm_sd *host, struct page *pg,
 		val |= (buf[pos++] << 8) & 0xff00;
 		writel(val, sock->addr + SOCK_MMCSD_DATA);
 	}
-	kunmap_atomic(buf - off, KM_BIO_SRC_IRQ);
+	kunmap_atomic(buf - off);
 }
 
 static void tifm_sd_transfer_data(struct tifm_sd *host)
@@ -212,13 +212,13 @@ static void tifm_sd_copy_page(struct page *dst, unsigned int dst_off,
 			      struct page *src, unsigned int src_off,
 			      unsigned int count)
 {
-	unsigned char *src_buf = kmap_atomic(src, KM_BIO_SRC_IRQ) + src_off;
-	unsigned char *dst_buf = kmap_atomic(dst, KM_BIO_DST_IRQ) + dst_off;
+	unsigned char *src_buf = kmap_atomic(src) + src_off;
+	unsigned char *dst_buf = kmap_atomic(dst) + dst_off;
 
 	memcpy(dst_buf, src_buf, count);
 
-	kunmap_atomic(dst_buf - dst_off, KM_BIO_DST_IRQ);
-	kunmap_atomic(src_buf - src_off, KM_BIO_SRC_IRQ);
+	kunmap_atomic(dst_buf - dst_off);
+	kunmap_atomic(src_buf - src_off);
 }
 
 static void tifm_sd_bounce_block(struct tifm_sd *host, struct mmc_data *r_data)
diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c
index a4ea102..4626ef2 100644
--- a/drivers/mmc/host/tmio_mmc.c
+++ b/drivers/mmc/host/tmio_mmc.c
@@ -20,7 +20,6 @@
 #include <linux/module.h>
 #include <linux/pagemap.h>
 #include <linux/scatterlist.h>
-
 #include "tmio_mmc.h"
 
 #ifdef CONFIG_PM
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index 3020f98..a95e6d9 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -105,13 +105,13 @@ static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg,
 					 unsigned long *flags)
 {
 	local_irq_save(*flags);
-	return kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset;
+	return kmap_atomic(sg_page(sg)) + sg->offset;
 }
 
 static inline void tmio_mmc_kunmap_atomic(struct scatterlist *sg,
 					  unsigned long *flags, void *virt)
 {
-	kunmap_atomic(virt - sg->offset, KM_BIO_SRC_IRQ);
+	kunmap_atomic(virt - sg->offset);
 	local_irq_restore(*flags);
 }
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (19 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  6:12   ` David Miller
                     ` (3 more replies)
  2011-11-27  5:27 ` [PATCH 23/62] hv: " Cong Wang
                   ` (41 subsequent siblings)
  62 siblings, 4 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Jeff Kirsher, Jesse Brandeburg, Bruce Allan,
	Carolyn Wyborny, Don Skidmore, Greg Rose, Peter P Waskiewicz Jr,
	Alex Duyck, John Ronciak, David S. Miller, Dean Nelson,
	Eric Dumazet, Ian Campbell, Jiri Pirko, e1000-devel, netdev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/net/ethernet/intel/e1000/e1000_main.c |    6 ++----
 drivers/net/ethernet/intel/e1000e/netdev.c    |   10 ++++------
 drivers/net/ethernet/sun/cassini.c            |    4 ++--
 3 files changed, 8 insertions(+), 12 deletions(-)
 create mode 100644 drivers/net/team/Module.symvers

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index cf480b5..b194beb 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -3878,11 +3878,9 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
 				if (length <= copybreak &&
 				    skb_tailroom(skb) >= length) {
 					u8 *vaddr;
-					vaddr = kmap_atomic(buffer_info->page,
-					                    KM_SKB_DATA_SOFTIRQ);
+					vaddr = kmap_atomic(buffer_info->page);
 					memcpy(skb_tail_pointer(skb), vaddr, length);
-					kunmap_atomic(vaddr,
-					              KM_SKB_DATA_SOFTIRQ);
+					kunmap_atomic(vaddr);
 					/* re-use the page, so don't erase
 					 * buffer_info->page */
 					skb_put(skb, length);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index a855db1..8603c87 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1272,9 +1272,9 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 			 */
 			dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
 						PAGE_SIZE, DMA_FROM_DEVICE);
-			vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
+			vaddr = kmap_atomic(ps_page->page);
 			memcpy(skb_tail_pointer(skb), vaddr, l1);
-			kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
+			kunmap_atomic(vaddr);
 			dma_sync_single_for_device(&pdev->dev, ps_page->dma,
 						   PAGE_SIZE, DMA_FROM_DEVICE);
 
@@ -1465,12 +1465,10 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
 				if (length <= copybreak &&
 				    skb_tailroom(skb) >= length) {
 					u8 *vaddr;
-					vaddr = kmap_atomic(buffer_info->page,
-					                   KM_SKB_DATA_SOFTIRQ);
+					vaddr = kmap_atomic(buffer_info->page);
 					memcpy(skb_tail_pointer(skb), vaddr,
 					       length);
-					kunmap_atomic(vaddr,
-					              KM_SKB_DATA_SOFTIRQ);
+					kunmap_atomic(vaddr);
 					/* re-use the page, so don't erase
 					 * buffer_info->page */
 					skb_put(skb, length);
diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index fd40988..c22a195 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -104,8 +104,8 @@
 #include <asm/byteorder.h>
 #include <asm/uaccess.h>
 
-#define cas_page_map(x)      kmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
-#define cas_page_unmap(x)    kunmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
+#define cas_page_map(x)      kmap_atomic((x))
+#define cas_page_unmap(x)    kunmap_atomic((x))
 #define CAS_NCPUS            num_online_cpus()
 
 #define cas_skb_release(x)  netif_rx(x)
diff --git a/drivers/net/team/Module.symvers b/drivers/net/team/Module.symvers
new file mode 100644
index 0000000..e69de29
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 23/62] hv: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (20 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  9:34   ` Greg KH
  2011-11-27  5:27 ` [PATCH 24/62] pohmelfs: " Cong Wang
                   ` (40 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Hank Janssen, Haiyang Zhang, Greg Kroah-Hartman,
	K. Y. Srinivasan, Abhishek Kane, devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/hv/netvsc_drv.c   |    5 ++---
 drivers/staging/hv/rndis_filter.c |    4 ++--
 drivers/staging/hv/storvsc_drv.c  |   31 ++++++++++++++-----------------
 3 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 93b0e91..1c61a7d 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -261,8 +261,7 @@ int netvsc_recv_callback(struct hv_device *device_obj,
 	 * hv_netvsc_packet cannot be deallocated
 	 */
 	for (i = 0; i < packet->page_buf_cnt; i++) {
-		data = kmap_atomic(pfn_to_page(packet->page_buf[i].pfn),
-					       KM_IRQ1);
+		data = kmap_atomic(pfn_to_page(packet->page_buf[i].pfn));
 		data = (void *)(unsigned long)data +
 				packet->page_buf[i].offset;
 
@@ -270,7 +269,7 @@ int netvsc_recv_callback(struct hv_device *device_obj,
 		       packet->page_buf[i].len);
 
 		kunmap_atomic((void *)((unsigned long)data -
-				       packet->page_buf[i].offset), KM_IRQ1);
+				       packet->page_buf[i].offset));
 	}
 
 	local_irq_restore(flags);
diff --git a/drivers/staging/hv/rndis_filter.c b/drivers/staging/hv/rndis_filter.c
index bafccb3..5e209e7 100644
--- a/drivers/staging/hv/rndis_filter.c
+++ b/drivers/staging/hv/rndis_filter.c
@@ -388,7 +388,7 @@ int rndis_filter_receive(struct hv_device *dev,
 	}
 
 	rndis_hdr = (struct rndis_message *)kmap_atomic(
-			pfn_to_page(pkt->page_buf[0].pfn), KM_IRQ0);
+			pfn_to_page(pkt->page_buf[0].pfn));
 
 	rndis_hdr = (void *)((unsigned long)rndis_hdr +
 			pkt->page_buf[0].offset);
@@ -407,7 +407,7 @@ int rndis_filter_receive(struct hv_device *dev,
 			sizeof(struct rndis_message) :
 			rndis_hdr->msg_len);
 
-	kunmap_atomic(rndis_hdr - pkt->page_buf[0].offset, KM_IRQ0);
+	kunmap_atomic(rndis_hdr - pkt->page_buf[0].offset);
 
 	dump_rndis_message(dev, &rndis_msg);
 
diff --git a/drivers/staging/hv/storvsc_drv.c b/drivers/staging/hv/storvsc_drv.c
index ae8c33e..05b8bdc 100644
--- a/drivers/staging/hv/storvsc_drv.c
+++ b/drivers/staging/hv/storvsc_drv.c
@@ -847,15 +847,14 @@ static unsigned int copy_from_bounce_buffer(struct scatterlist *orig_sgl,
 	local_irq_save(flags);
 
 	for (i = 0; i < orig_sgl_count; i++) {
-		dest_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])),
-					KM_IRQ0) + orig_sgl[i].offset;
+		dest_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])))
+					+ orig_sgl[i].offset;
 		dest = dest_addr;
 		destlen = orig_sgl[i].length;
 
 		if (bounce_addr == 0)
 			bounce_addr =
-			(unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])),
-							KM_IRQ0);
+			(unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])));
 
 		while (destlen) {
 			src = bounce_addr + bounce_sgl[j].offset;
@@ -871,22 +870,21 @@ static unsigned int copy_from_bounce_buffer(struct scatterlist *orig_sgl,
 
 			if (bounce_sgl[j].offset == bounce_sgl[j].length) {
 				/* full */
-				kunmap_atomic((void *)bounce_addr, KM_IRQ0);
+				kunmap_atomic((void *)bounce_addr);
 				j++;
 
 				/* if we need to use another bounce buffer */
 				if (destlen || i != orig_sgl_count - 1)
 					bounce_addr =
 					(unsigned long)kmap_atomic(
-					sg_page((&bounce_sgl[j])), KM_IRQ0);
+					sg_page((&bounce_sgl[j])));
 			} else if (destlen == 0 && i == orig_sgl_count - 1) {
 				/* unmap the last bounce that is < PAGE_SIZE */
-				kunmap_atomic((void *)bounce_addr, KM_IRQ0);
+				kunmap_atomic((void *)bounce_addr);
 			}
 		}
 
-		kunmap_atomic((void *)(dest_addr - orig_sgl[i].offset),
-			      KM_IRQ0);
+		kunmap_atomic((void *)(dest_addr - orig_sgl[i].offset));
 	}
 
 	local_irq_restore(flags);
@@ -912,15 +910,14 @@ static unsigned int copy_to_bounce_buffer(struct scatterlist *orig_sgl,
 	local_irq_save(flags);
 
 	for (i = 0; i < orig_sgl_count; i++) {
-		src_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])),
-				KM_IRQ0) + orig_sgl[i].offset;
+		src_addr = (unsigned long)kmap_atomic(sg_page((&orig_sgl[i])))
+				+ orig_sgl[i].offset;
 		src = src_addr;
 		srclen = orig_sgl[i].length;
 
 		if (bounce_addr == 0)
 			bounce_addr =
-			(unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])),
-						KM_IRQ0);
+			(unsigned long)kmap_atomic(sg_page((&bounce_sgl[j])));
 
 		while (srclen) {
 			/* assume bounce offset always == 0 */
@@ -937,22 +934,22 @@ static unsigned int copy_to_bounce_buffer(struct scatterlist *orig_sgl,
 
 			if (bounce_sgl[j].length == PAGE_SIZE) {
 				/* full..move to next entry */
-				kunmap_atomic((void *)bounce_addr, KM_IRQ0);
+				kunmap_atomic((void *)bounce_addr);
 				j++;
 
 				/* if we need to use another bounce buffer */
 				if (srclen || i != orig_sgl_count - 1)
 					bounce_addr =
 					(unsigned long)kmap_atomic(
-					sg_page((&bounce_sgl[j])), KM_IRQ0);
+					sg_page((&bounce_sgl[j])));
 
 			} else if (srclen == 0 && i == orig_sgl_count - 1) {
 				/* unmap the last bounce that is < PAGE_SIZE */
-				kunmap_atomic((void *)bounce_addr, KM_IRQ0);
+				kunmap_atomic((void *)bounce_addr);
 			}
 		}
 
-		kunmap_atomic((void *)(src_addr - orig_sgl[i].offset), KM_IRQ0);
+		kunmap_atomic((void *)(src_addr - orig_sgl[i].offset));
 	}
 
 	local_irq_restore(flags);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 24/62] pohmelfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (21 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 23/62] hv: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  9:34   ` Greg KH
  2011-11-27  5:27 ` [PATCH 25/62] rtl8192u: " Cong Wang
                   ` (39 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Greg Kroah-Hartman, Evgeniy Polyakov,
	Josef Bacik, Jan Kara, Al Viro, devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/pohmelfs/inode.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/pohmelfs/inode.c b/drivers/staging/pohmelfs/inode.c
index 7a19555..96a7ddd 100644
--- a/drivers/staging/pohmelfs/inode.c
+++ b/drivers/staging/pohmelfs/inode.c
@@ -606,11 +606,11 @@ static int pohmelfs_write_begin(struct file *file, struct address_space *mapping
 		}
 
 		if (len != PAGE_CACHE_SIZE) {
-			void *kaddr = kmap_atomic(page, KM_USER0);
+			void *kaddr = kmap_atomic(page);
 
 			memset(kaddr + start, 0, PAGE_CACHE_SIZE - start);
 			flush_dcache_page(page);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 		}
 		SetPageUptodate(page);
 	}
@@ -636,11 +636,11 @@ static int pohmelfs_write_end(struct file *file, struct address_space *mapping,
 
 	if (copied != len) {
 		unsigned from = pos & (PAGE_CACHE_SIZE - 1);
-		void *kaddr = kmap_atomic(page, KM_USER0);
+		void *kaddr = kmap_atomic(page);
 
 		memset(kaddr + from + copied, 0, len - copied);
 		flush_dcache_page(page);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 
 	SetPageUptodate(page);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 25/62] rtl8192u: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (22 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 24/62] pohmelfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  9:34   ` Greg KH
  2011-11-27  5:27 ` [PATCH 26/62] zram: " Cong Wang
                   ` (38 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Greg Kroah-Hartman, Ilia Mirkin, Lucas De Marchi, devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/rtl8192u/ieee80211/cipher.c      |    8 ++++----
 drivers/staging/rtl8192u/ieee80211/digest.c      |    8 ++++----
 drivers/staging/rtl8192u/ieee80211/internal.h    |   17 -----------------
 drivers/staging/rtl8192u/ieee80211/kmap_types.h  |   20 --------------------
 drivers/staging/rtl8192u/ieee80211/scatterwalk.c |   19 +++++--------------
 5 files changed, 13 insertions(+), 59 deletions(-)
 delete mode 100644 drivers/staging/rtl8192u/ieee80211/kmap_types.h

diff --git a/drivers/staging/rtl8192u/ieee80211/cipher.c b/drivers/staging/rtl8192u/ieee80211/cipher.c
index 69dcc31..d47345c 100644
--- a/drivers/staging/rtl8192u/ieee80211/cipher.c
+++ b/drivers/staging/rtl8192u/ieee80211/cipher.c
@@ -71,8 +71,8 @@ static int crypt(struct crypto_tfm *tfm,
 		u8 *src_p, *dst_p;
 		int in_place;
 
-		scatterwalk_map(&walk_in, 0);
-		scatterwalk_map(&walk_out, 1);
+		scatterwalk_map(&walk_in);
+		scatterwalk_map(&walk_out);
 		src_p = scatterwalk_whichbuf(&walk_in, bsize, tmp_src);
 		dst_p = scatterwalk_whichbuf(&walk_out, bsize, tmp_dst);
 		in_place = scatterwalk_samebuf(&walk_in, &walk_out,
@@ -84,10 +84,10 @@ static int crypt(struct crypto_tfm *tfm,
 
 		prfn(tfm, dst_p, src_p, crfn, enc, info, in_place);
 
-		scatterwalk_done(&walk_in, 0, nbytes);
+		scatterwalk_done(&walk_in, nbytes);
 
 		scatterwalk_copychunks(dst_p, &walk_out, bsize, 1);
-		scatterwalk_done(&walk_out, 1, nbytes);
+		scatterwalk_done(&walk_out, nbytes);
 
 		if (!nbytes)
 			return 0;
diff --git a/drivers/staging/rtl8192u/ieee80211/digest.c b/drivers/staging/rtl8192u/ieee80211/digest.c
index 301ed51..05e7497 100644
--- a/drivers/staging/rtl8192u/ieee80211/digest.c
+++ b/drivers/staging/rtl8192u/ieee80211/digest.c
@@ -39,12 +39,12 @@ static void update(struct crypto_tfm *tfm,
 			unsigned int bytes_from_page = min(l, ((unsigned int)
 							   (PAGE_SIZE)) -
 							   offset);
-			char *p = crypto_kmap(pg, 0) + offset;
+			char *p = kmap_atomic(pg) + offset;
 
 			tfm->__crt_alg->cra_digest.dia_update
 					(crypto_tfm_ctx(tfm), p,
 					 bytes_from_page);
-			crypto_kunmap(p, 0);
+			kunmap_atomic(p);
 			crypto_yield(tfm);
 			offset = 0;
 			pg++;
@@ -75,10 +75,10 @@ static void digest(struct crypto_tfm *tfm,
 	tfm->crt_digest.dit_init(tfm);
 
 	for (i = 0; i < nsg; i++) {
-		char *p = crypto_kmap(sg[i].page, 0) + sg[i].offset;
+		char *p = kmap_atomic(sg[i].page) + sg[i].offset;
 		tfm->__crt_alg->cra_digest.dia_update(crypto_tfm_ctx(tfm),
 						      p, sg[i].length);
-		crypto_kunmap(p, 0);
+		kunmap_atomic(p);
 		crypto_yield(tfm);
 	}
 	crypto_digest_final(tfm, out);
diff --git a/drivers/staging/rtl8192u/ieee80211/internal.h b/drivers/staging/rtl8192u/ieee80211/internal.h
index a7c096e..bebe13a 100644
--- a/drivers/staging/rtl8192u/ieee80211/internal.h
+++ b/drivers/staging/rtl8192u/ieee80211/internal.h
@@ -23,23 +23,6 @@
 #include <asm/kmap_types.h>
 
 
-extern enum km_type crypto_km_types[];
-
-static inline enum km_type crypto_kmap_type(int out)
-{
-	return crypto_km_types[(in_softirq() ? 2 : 0) + out];
-}
-
-static inline void *crypto_kmap(struct page *page, int out)
-{
-	return kmap_atomic(page, crypto_kmap_type(out));
-}
-
-static inline void crypto_kunmap(void *vaddr, int out)
-{
-	kunmap_atomic(vaddr, crypto_kmap_type(out));
-}
-
 static inline void crypto_yield(struct crypto_tfm *tfm)
 {
 	if (!in_softirq())
diff --git a/drivers/staging/rtl8192u/ieee80211/kmap_types.h b/drivers/staging/rtl8192u/ieee80211/kmap_types.h
deleted file mode 100644
index de67bb0..0000000
--- a/drivers/staging/rtl8192u/ieee80211/kmap_types.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __KMAP_TYPES_H
-
-#define __KMAP_TYPES_H
-
-
-enum km_type {
-	KM_BOUNCE_READ,
-	KM_SKB_SUNRPC_DATA,
-	KM_SKB_DATA_SOFTIRQ,
-	KM_USER0,
-	KM_USER1,
-	KM_BH_IRQ,
-	KM_SOFTIRQ0,
-	KM_SOFTIRQ1,
-	KM_TYPE_NR
-};
-
-#define _ASM_KMAP_TYPES_H
-
-#endif
diff --git a/drivers/staging/rtl8192u/ieee80211/scatterwalk.c b/drivers/staging/rtl8192u/ieee80211/scatterwalk.c
index 3543a61..8b73f6c 100644
--- a/drivers/staging/rtl8192u/ieee80211/scatterwalk.c
+++ b/drivers/staging/rtl8192u/ieee80211/scatterwalk.c
@@ -13,8 +13,6 @@
  * any later version.
  *
  */
-#include "kmap_types.h"
-
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/pagemap.h>
@@ -23,13 +21,6 @@
 #include "internal.h"
 #include "scatterwalk.h"
 
-enum km_type crypto_km_types[] = {
-	KM_USER0,
-	KM_USER1,
-	KM_SOFTIRQ0,
-	KM_SOFTIRQ1,
-};
-
 void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch)
 {
 	if (nbytes <= walk->len_this_page &&
@@ -62,9 +53,9 @@ void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg)
 	walk->offset = sg->offset;
 }
 
-void scatterwalk_map(struct scatter_walk *walk, int out)
+void scatterwalk_map(struct scatter_walk *walk)
 {
-	walk->data = crypto_kmap(walk->page, out) + walk->offset;
+	walk->data = kmap_atomic(walk->page) + walk->offset;
 }
 
 static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
@@ -103,7 +94,7 @@ void scatterwalk_done(struct scatter_walk *walk, int out, int more)
  * has been verified as multiple of the block size.
  */
 int scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
-			   size_t nbytes, int out)
+			   size_t nbytes)
 {
 	if (buf != walk->data) {
 		while (nbytes > walk->len_this_page) {
@@ -111,9 +102,9 @@ int scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
 			buf += walk->len_this_page;
 			nbytes -= walk->len_this_page;
 
-			crypto_kunmap(walk->data, out);
+			kunmap_atomic(walk->data);
 			scatterwalk_pagedone(walk, out, 1);
-			scatterwalk_map(walk, out);
+			scatterwalk_map(walk);
 		}
 
 		memcpy_dir(buf, walk->data, nbytes, out);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 26/62] zram: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (23 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 25/62] rtl8192u: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  9:34   ` Greg KH
  2011-11-27  5:27 ` [PATCH 27/62] target: " Cong Wang
                   ` (37 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Greg Kroah-Hartman, Robert Jennings,
	Pekka Enberg, Nitin Gupta, Peter Huewe, Jerome Marchand,
	Jeff Moyer, devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/zram/xvmalloc.c |   39 ++++++++++++++++-----------------
 drivers/staging/zram/zram_drv.c |   44 +++++++++++++++++++-------------------
 2 files changed, 41 insertions(+), 42 deletions(-)

diff --git a/drivers/staging/zram/xvmalloc.c b/drivers/staging/zram/xvmalloc.c
index 1f9c508..93ba8e9 100644
--- a/drivers/staging/zram/xvmalloc.c
+++ b/drivers/staging/zram/xvmalloc.c
@@ -56,17 +56,17 @@ static void clear_flag(struct block_header *block, enum blockflags flag)
  * This is called from xv_malloc/xv_free path, so it
  * needs to be fast.
  */
-static void *get_ptr_atomic(struct page *page, u16 offset, enum km_type type)
+static void *get_ptr_atomic(struct page *page, u16 offset)
 {
 	unsigned char *base;
 
-	base = kmap_atomic(page, type);
+	base = kmap_atomic(page);
 	return base + offset;
 }
 
-static void put_ptr_atomic(void *ptr, enum km_type type)
+static void put_ptr_atomic(void *ptr)
 {
-	kunmap_atomic(ptr, type);
+	kunmap_atomic(ptr);
 }
 
 static u32 get_blockprev(struct block_header *block)
@@ -202,10 +202,10 @@ static void insert_block(struct xv_pool *pool, struct page *page, u32 offset,
 
 	if (block->link.next_page) {
 		nextblock = get_ptr_atomic(block->link.next_page,
-					block->link.next_offset, KM_USER1);
+					block->link.next_offset);
 		nextblock->link.prev_page = page;
 		nextblock->link.prev_offset = offset;
-		put_ptr_atomic(nextblock, KM_USER1);
+		put_ptr_atomic(nextblock);
 		/* If there was a next page then the free bits are set. */
 		return;
 	}
@@ -225,18 +225,18 @@ static void remove_block(struct xv_pool *pool, struct page *page, u32 offset,
 
 	if (block->link.prev_page) {
 		tmpblock = get_ptr_atomic(block->link.prev_page,
-				block->link.prev_offset, KM_USER1);
+				block->link.prev_offset);
 		tmpblock->link.next_page = block->link.next_page;
 		tmpblock->link.next_offset = block->link.next_offset;
-		put_ptr_atomic(tmpblock, KM_USER1);
+		put_ptr_atomic(tmpblock);
 	}
 
 	if (block->link.next_page) {
 		tmpblock = get_ptr_atomic(block->link.next_page,
-				block->link.next_offset, KM_USER1);
+				block->link.next_offset);
 		tmpblock->link.prev_page = block->link.prev_page;
 		tmpblock->link.prev_offset = block->link.prev_offset;
-		put_ptr_atomic(tmpblock, KM_USER1);
+		put_ptr_atomic(tmpblock);
 	}
 
 	/* Is this block is at the head of the freelist? */
@@ -249,11 +249,10 @@ static void remove_block(struct xv_pool *pool, struct page *page, u32 offset,
 		if (pool->freelist[slindex].page) {
 			struct block_header *tmpblock;
 			tmpblock = get_ptr_atomic(pool->freelist[slindex].page,
-					pool->freelist[slindex].offset,
-					KM_USER1);
+					pool->freelist[slindex].offset);
 			tmpblock->link.prev_page = NULL;
 			tmpblock->link.prev_offset = 0;
-			put_ptr_atomic(tmpblock, KM_USER1);
+			put_ptr_atomic(tmpblock);
 		} else {
 			/* This freelist bucket is empty */
 			__clear_bit(slindex % BITS_PER_LONG,
@@ -284,7 +283,7 @@ static int grow_pool(struct xv_pool *pool, gfp_t flags)
 	stat_inc(&pool->total_pages);
 
 	spin_lock(&pool->lock);
-	block = get_ptr_atomic(page, 0, KM_USER0);
+	block = get_ptr_atomic(page, 0);
 
 	block->size = PAGE_SIZE - XV_ALIGN;
 	set_flag(block, BLOCK_FREE);
@@ -293,7 +292,7 @@ static int grow_pool(struct xv_pool *pool, gfp_t flags)
 
 	insert_block(pool, page, 0, block);
 
-	put_ptr_atomic(block, KM_USER0);
+	put_ptr_atomic(block);
 	spin_unlock(&pool->lock);
 
 	return 0;
@@ -375,7 +374,7 @@ int xv_malloc(struct xv_pool *pool, u32 size, struct page **page,
 		return -ENOMEM;
 	}
 
-	block = get_ptr_atomic(*page, *offset, KM_USER0);
+	block = get_ptr_atomic(*page, *offset);
 
 	remove_block(pool, *page, *offset, block, index);
 
@@ -405,7 +404,7 @@ int xv_malloc(struct xv_pool *pool, u32 size, struct page **page,
 	block->size = origsize;
 	clear_flag(block, BLOCK_FREE);
 
-	put_ptr_atomic(block, KM_USER0);
+	put_ptr_atomic(block);
 	spin_unlock(&pool->lock);
 
 	*offset += XV_ALIGN;
@@ -426,7 +425,7 @@ void xv_free(struct xv_pool *pool, struct page *page, u32 offset)
 
 	spin_lock(&pool->lock);
 
-	page_start = get_ptr_atomic(page, 0, KM_USER0);
+	page_start = get_ptr_atomic(page, 0);
 	block = (struct block_header *)((char *)page_start + offset);
 
 	/* Catch double free bugs */
@@ -468,7 +467,7 @@ void xv_free(struct xv_pool *pool, struct page *page, u32 offset)
 
 	/* No used objects in this page. Free it. */
 	if (block->size == PAGE_SIZE - XV_ALIGN) {
-		put_ptr_atomic(page_start, KM_USER0);
+		put_ptr_atomic(page_start);
 		spin_unlock(&pool->lock);
 
 		__free_page(page);
@@ -486,7 +485,7 @@ void xv_free(struct xv_pool *pool, struct page *page, u32 offset)
 		set_blockprev(tmpblock, offset);
 	}
 
-	put_ptr_atomic(page_start, KM_USER0);
+	put_ptr_atomic(page_start);
 	spin_unlock(&pool->lock);
 }
 EXPORT_SYMBOL_GPL(xv_free);
diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
index 09de99f..fa276c0 100644
--- a/drivers/staging/zram/zram_drv.c
+++ b/drivers/staging/zram/zram_drv.c
@@ -161,9 +161,9 @@ static void zram_free_page(struct zram *zram, size_t index)
 		goto out;
 	}
 
-	obj = kmap_atomic(page, KM_USER0) + offset;
+	obj = kmap_atomic(page) + offset;
 	clen = xv_get_object_size(obj) - sizeof(struct zobj_header);
-	kunmap_atomic(obj, KM_USER0);
+	kunmap_atomic(obj);
 
 	xv_free(zram->mem_pool, page, offset);
 	if (clen <= PAGE_SIZE / 2)
@@ -182,9 +182,9 @@ static void handle_zero_page(struct bio_vec *bvec)
 	struct page *page = bvec->bv_page;
 	void *user_mem;
 
-	user_mem = kmap_atomic(page, KM_USER0);
+	user_mem = kmap_atomic(page);
 	memset(user_mem + bvec->bv_offset, 0, bvec->bv_len);
-	kunmap_atomic(user_mem, KM_USER0);
+	kunmap_atomic(user_mem);
 
 	flush_dcache_page(page);
 }
@@ -195,12 +195,12 @@ static void handle_uncompressed_page(struct zram *zram, struct bio_vec *bvec,
 	struct page *page = bvec->bv_page;
 	unsigned char *user_mem, *cmem;
 
-	user_mem = kmap_atomic(page, KM_USER0);
-	cmem = kmap_atomic(zram->table[index].page, KM_USER1);
+	user_mem = kmap_atomic(page);
+	cmem = kmap_atomic(zram->table[index].page);
 
 	memcpy(user_mem + bvec->bv_offset, cmem + offset, bvec->bv_len);
-	kunmap_atomic(cmem, KM_USER1);
-	kunmap_atomic(user_mem, KM_USER0);
+	kunmap_atomic(cmem);
+	kunmap_atomic(user_mem);
 
 	flush_dcache_page(page);
 }
@@ -249,12 +249,12 @@ static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec,
 		}
 	}
 
-	user_mem = kmap_atomic(page, KM_USER0);
+	user_mem = kmap_atomic(page);
 	if (!is_partial_io(bvec))
 		uncmem = user_mem;
 	clen = PAGE_SIZE;
 
-	cmem = kmap_atomic(zram->table[index].page, KM_USER1) +
+	cmem = kmap_atomic(zram->table[index].page) +
 		zram->table[index].offset;
 
 	ret = lzo1x_decompress_safe(cmem + sizeof(*zheader),
@@ -267,8 +267,8 @@ static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec,
 		kfree(uncmem);
 	}
 
-	kunmap_atomic(cmem, KM_USER1);
-	kunmap_atomic(user_mem, KM_USER0);
+	kunmap_atomic(cmem);
+	kunmap_atomic(user_mem);
 
 	/* Should NEVER happen. Return bio error if it does. */
 	if (unlikely(ret != LZO_E_OK)) {
@@ -295,20 +295,20 @@ static int zram_read_before_write(struct zram *zram, char *mem, u32 index)
 		return 0;
 	}
 
-	cmem = kmap_atomic(zram->table[index].page, KM_USER0) +
+	cmem = kmap_atomic(zram->table[index].page) +
 		zram->table[index].offset;
 
 	/* Page is stored uncompressed since it's incompressible */
 	if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) {
 		memcpy(mem, cmem, PAGE_SIZE);
-		kunmap_atomic(cmem, KM_USER0);
+		kunmap_atomic(cmem);
 		return 0;
 	}
 
 	ret = lzo1x_decompress_safe(cmem + sizeof(*zheader),
 				    xv_get_object_size(cmem) - sizeof(*zheader),
 				    mem, &clen);
-	kunmap_atomic(cmem, KM_USER0);
+	kunmap_atomic(cmem);
 
 	/* Should NEVER happen. Return bio error if it does. */
 	if (unlikely(ret != LZO_E_OK)) {
@@ -359,7 +359,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
 	    zram_test_flag(zram, index, ZRAM_ZERO))
 		zram_free_page(zram, index);
 
-	user_mem = kmap_atomic(page, KM_USER0);
+	user_mem = kmap_atomic(page);
 
 	if (is_partial_io(bvec))
 		memcpy(uncmem + offset, user_mem + bvec->bv_offset,
@@ -368,7 +368,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
 		uncmem = user_mem;
 
 	if (page_zero_filled(uncmem)) {
-		kunmap_atomic(user_mem, KM_USER0);
+		kunmap_atomic(user_mem);
 		if (is_partial_io(bvec))
 			kfree(uncmem);
 		zram_stat_inc(&zram->stats.pages_zero);
@@ -380,7 +380,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
 	ret = lzo1x_1_compress(uncmem, PAGE_SIZE, src, &clen,
 			       zram->compress_workmem);
 
-	kunmap_atomic(user_mem, KM_USER0);
+	kunmap_atomic(user_mem);
 	if (is_partial_io(bvec))
 			kfree(uncmem);
 
@@ -408,7 +408,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
 		zram_set_flag(zram, index, ZRAM_UNCOMPRESSED);
 		zram_stat_inc(&zram->stats.pages_expand);
 		zram->table[index].page = page_store;
-		src = kmap_atomic(page, KM_USER0);
+		src = kmap_atomic(page);
 		goto memstore;
 	}
 
@@ -424,7 +424,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index,
 memstore:
 	zram->table[index].offset = store_offset;
 
-	cmem = kmap_atomic(zram->table[index].page, KM_USER1) +
+	cmem = kmap_atomic(zram->table[index].page) +
 		zram->table[index].offset;
 
 #if 0
@@ -438,9 +438,9 @@ memstore:
 
 	memcpy(cmem, src, clen);
 
-	kunmap_atomic(cmem, KM_USER1);
+	kunmap_atomic(cmem);
 	if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED)))
-		kunmap_atomic(src, KM_USER0);
+		kunmap_atomic(src);
 
 	/* Update stats */
 	zram_stat64_add(zram, &zram->stats.compr_size, clen);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 27/62] target: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (24 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 26/62] zram: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 28/62] vhost: " Cong Wang
                   ` (36 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Nicholas A. Bellinger, Andy Grover,
	Christoph Hellwig, Kiran Patil, James Bottomley, linux-scsi,
	target-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/target/target_core_transport.c |    4 ++--
 drivers/target/tcm_fc/tfc_io.c         |   10 ++++------
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 3400ae6..b4a59d8 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -2382,7 +2382,7 @@ static void transport_xor_callback(struct se_cmd *cmd)
 
 	offset = 0;
 	for_each_sg(cmd->t_bidi_data_sg, sg, cmd->t_bidi_data_nents, count) {
-		addr = kmap_atomic(sg_page(sg), KM_USER0);
+		addr = kmap_atomic(sg_page(sg));
 		if (!addr)
 			goto out;
 
@@ -2390,7 +2390,7 @@ static void transport_xor_callback(struct se_cmd *cmd)
 			*(addr + sg->offset + i) ^= *(buf + offset + i);
 
 		offset += sg->length;
-		kunmap_atomic(addr, KM_USER0);
+		kunmap_atomic(addr);
 	}
 
 out:
diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c
index 1369b1c..1a2ff72 100644
--- a/drivers/target/tcm_fc/tfc_io.c
+++ b/drivers/target/tcm_fc/tfc_io.c
@@ -149,14 +149,13 @@ int ft_queue_data_in(struct se_cmd *se_cmd)
 					PAGE_SIZE << compound_order(page);
 		} else {
 			BUG_ON(!page);
-			from = kmap_atomic(page + (mem_off >> PAGE_SHIFT),
-					   KM_SOFTIRQ0);
+			from = kmap_atomic(page + (mem_off >> PAGE_SHIFT));
 			page_addr = from;
 			from += mem_off & ~PAGE_MASK;
 			tlen = min(tlen, (size_t)(PAGE_SIZE -
 						(mem_off & ~PAGE_MASK)));
 			memcpy(to, from, tlen);
-			kunmap_atomic(page_addr, KM_SOFTIRQ0);
+			kunmap_atomic(page_addr);
 			to += tlen;
 		}
 
@@ -294,14 +293,13 @@ void ft_recv_write_data(struct ft_cmd *cmd, struct fc_frame *fp)
 
 		tlen = min(mem_len, frame_len);
 
-		to = kmap_atomic(page + (mem_off >> PAGE_SHIFT),
-				 KM_SOFTIRQ0);
+		to = kmap_atomic(page + (mem_off >> PAGE_SHIFT));
 		page_addr = to;
 		to += mem_off & ~PAGE_MASK;
 		tlen = min(tlen, (size_t)(PAGE_SIZE -
 					  (mem_off & ~PAGE_MASK)));
 		memcpy(to, from, tlen);
-		kunmap_atomic(page_addr, KM_SOFTIRQ0);
+		kunmap_atomic(page_addr);
 
 		from += tlen;
 		frame_len -= tlen;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 28/62] vhost: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (25 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 27/62] target: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 29/62] fs: " Cong Wang
                   ` (35 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Michael S. Tsirkin, kvm, virtualization, netdev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/vhost/vhost.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index c14c42b..bdb2d64 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -937,9 +937,9 @@ static int set_bit_to_user(int nr, void __user *addr)
 	if (r < 0)
 		return r;
 	BUG_ON(r != 1);
-	base = kmap_atomic(page, KM_USER0);
+	base = kmap_atomic(page);
 	set_bit(bit, base);
-	kunmap_atomic(base, KM_USER0);
+	kunmap_atomic(base);
 	set_page_dirty_lock(page);
 	put_page(page);
 	return 0;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 29/62] fs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (26 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 28/62] vhost: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28  2:36   ` Benjamin LaHaise
  2011-11-27  5:27 ` [PATCH 30/62] btrfs: " Cong Wang
                   ` (34 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Benjamin LaHaise, Alexander Viro, Jens Axboe,
	Martin K. Petersen, Stephen Rothwell, Tao Ma, linux-aio,
	linux-fsdevel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/aio.c            |   30 +++++++++++++++---------------
 fs/bio-integrity.c  |   10 +++++-----
 fs/exec.c           |    4 ++--
 fs/namei.c          |    4 ++--
 fs/pipe.c           |    8 ++++----
 fs/splice.c         |    7 ++-----
 include/linux/bio.h |    8 ++++----
 7 files changed, 34 insertions(+), 37 deletions(-)

diff --git a/fs/aio.c b/fs/aio.c
index 78c514c..34e0d9f 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -160,7 +160,7 @@ static int aio_setup_ring(struct kioctx *ctx)
 
 	info->nr = nr_events;		/* trusted copy */
 
-	ring = kmap_atomic(info->ring_pages[0], KM_USER0);
+	ring = kmap_atomic(info->ring_pages[0]);
 	ring->nr = nr_events;	/* user copy */
 	ring->id = ctx->user_id;
 	ring->head = ring->tail = 0;
@@ -168,32 +168,32 @@ static int aio_setup_ring(struct kioctx *ctx)
 	ring->compat_features = AIO_RING_COMPAT_FEATURES;
 	ring->incompat_features = AIO_RING_INCOMPAT_FEATURES;
 	ring->header_length = sizeof(struct aio_ring);
-	kunmap_atomic(ring, KM_USER0);
+	kunmap_atomic(ring);
 
 	return 0;
 }
 
 
 /* aio_ring_event: returns a pointer to the event at the given index from
- * kmap_atomic(, km).  Release the pointer with put_aio_ring_event();
+ * kmap_atomic().  Release the pointer with put_aio_ring_event();
  */
 #define AIO_EVENTS_PER_PAGE	(PAGE_SIZE / sizeof(struct io_event))
 #define AIO_EVENTS_FIRST_PAGE	((PAGE_SIZE - sizeof(struct aio_ring)) / sizeof(struct io_event))
 #define AIO_EVENTS_OFFSET	(AIO_EVENTS_PER_PAGE - AIO_EVENTS_FIRST_PAGE)
 
-#define aio_ring_event(info, nr, km) ({					\
+#define aio_ring_event(info, nr) ({					\
 	unsigned pos = (nr) + AIO_EVENTS_OFFSET;			\
 	struct io_event *__event;					\
 	__event = kmap_atomic(						\
-			(info)->ring_pages[pos / AIO_EVENTS_PER_PAGE], km); \
+			(info)->ring_pages[pos / AIO_EVENTS_PER_PAGE]); \
 	__event += pos % AIO_EVENTS_PER_PAGE;				\
 	__event;							\
 })
 
-#define put_aio_ring_event(event, km) do {	\
+#define put_aio_ring_event(event) do {		\
 	struct io_event *__event = (event);	\
 	(void)__event;				\
-	kunmap_atomic((void *)((unsigned long)__event & PAGE_MASK), km); \
+	kunmap_atomic((void *)((unsigned long)__event & PAGE_MASK)); \
 } while(0)
 
 static void ctx_rcu_free(struct rcu_head *head)
@@ -1012,10 +1012,10 @@ int aio_complete(struct kiocb *iocb, long res, long res2)
 	if (kiocbIsCancelled(iocb))
 		goto put_rq;
 
-	ring = kmap_atomic(info->ring_pages[0], KM_IRQ1);
+	ring = kmap_atomic(info->ring_pages[0]);
 
 	tail = info->tail;
-	event = aio_ring_event(info, tail, KM_IRQ0);
+	event = aio_ring_event(info, tail);
 	if (++tail >= info->nr)
 		tail = 0;
 
@@ -1036,8 +1036,8 @@ int aio_complete(struct kiocb *iocb, long res, long res2)
 	info->tail = tail;
 	ring->tail = tail;
 
-	put_aio_ring_event(event, KM_IRQ0);
-	kunmap_atomic(ring, KM_IRQ1);
+	put_aio_ring_event(event);
+	kunmap_atomic(ring);
 
 	pr_debug("added to ring %p at [%lu]\n", iocb, tail);
 
@@ -1082,7 +1082,7 @@ static int aio_read_evt(struct kioctx *ioctx, struct io_event *ent)
 	unsigned long head;
 	int ret = 0;
 
-	ring = kmap_atomic(info->ring_pages[0], KM_USER0);
+	ring = kmap_atomic(info->ring_pages[0]);
 	dprintk("in aio_read_evt h%lu t%lu m%lu\n",
 		 (unsigned long)ring->head, (unsigned long)ring->tail,
 		 (unsigned long)ring->nr);
@@ -1094,18 +1094,18 @@ static int aio_read_evt(struct kioctx *ioctx, struct io_event *ent)
 
 	head = ring->head % info->nr;
 	if (head != ring->tail) {
-		struct io_event *evp = aio_ring_event(info, head, KM_USER1);
+		struct io_event *evp = aio_ring_event(info, head);
 		*ent = *evp;
 		head = (head + 1) % info->nr;
 		smp_mb(); /* finish reading the event before updatng the head */
 		ring->head = head;
 		ret = 1;
-		put_aio_ring_event(evp, KM_USER1);
+		put_aio_ring_event(evp);
 	}
 	spin_unlock(&info->ring_lock);
 
 out:
-	kunmap_atomic(ring, KM_USER0);
+	kunmap_atomic(ring);
 	dprintk("leaving aio_read_evt: %d  h%lu t%lu\n", ret,
 		 (unsigned long)ring->head, (unsigned long)ring->tail);
 	return ret;
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c
index c2183f3..e85c04b 100644
--- a/fs/bio-integrity.c
+++ b/fs/bio-integrity.c
@@ -357,7 +357,7 @@ static void bio_integrity_generate(struct bio *bio)
 	bix.sector_size = bi->sector_size;
 
 	bio_for_each_segment(bv, bio, i) {
-		void *kaddr = kmap_atomic(bv->bv_page, KM_USER0);
+		void *kaddr = kmap_atomic(bv->bv_page);
 		bix.data_buf = kaddr + bv->bv_offset;
 		bix.data_size = bv->bv_len;
 		bix.prot_buf = prot_buf;
@@ -371,7 +371,7 @@ static void bio_integrity_generate(struct bio *bio)
 		total += sectors * bi->tuple_size;
 		BUG_ON(total > bio->bi_integrity->bip_size);
 
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 }
 
@@ -498,7 +498,7 @@ static int bio_integrity_verify(struct bio *bio)
 	bix.sector_size = bi->sector_size;
 
 	bio_for_each_segment(bv, bio, i) {
-		void *kaddr = kmap_atomic(bv->bv_page, KM_USER0);
+		void *kaddr = kmap_atomic(bv->bv_page);
 		bix.data_buf = kaddr + bv->bv_offset;
 		bix.data_size = bv->bv_len;
 		bix.prot_buf = prot_buf;
@@ -507,7 +507,7 @@ static int bio_integrity_verify(struct bio *bio)
 		ret = bi->verify_fn(&bix);
 
 		if (ret) {
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			return ret;
 		}
 
@@ -517,7 +517,7 @@ static int bio_integrity_verify(struct bio *bio)
 		total += sectors * bi->tuple_size;
 		BUG_ON(total > bio->bi_integrity->bip_size);
 
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 
 	return ret;
diff --git a/fs/exec.c b/fs/exec.c
index 3625464..ca141db 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1334,13 +1334,13 @@ int remove_arg_zero(struct linux_binprm *bprm)
 			ret = -EFAULT;
 			goto out;
 		}
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 
 		for (; offset < PAGE_SIZE && kaddr[offset];
 				offset++, bprm->p++)
 			;
 
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		put_arg_page(page);
 
 		if (offset == PAGE_SIZE)
diff --git a/fs/namei.c b/fs/namei.c
index 5008f01..c02b2c6 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3346,9 +3346,9 @@ retry:
 	if (err)
 		goto fail;
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memcpy(kaddr, symname, len-1);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	err = pagecache_write_end(NULL, mapping, 0, len-1, len-1,
 							page, fsdata);
diff --git a/fs/pipe.c b/fs/pipe.c
index 4065f07..2c59dfa 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -230,7 +230,7 @@ void *generic_pipe_buf_map(struct pipe_inode_info *pipe,
 {
 	if (atomic) {
 		buf->flags |= PIPE_BUF_FLAG_ATOMIC;
-		return kmap_atomic(buf->page, KM_USER0);
+		return kmap_atomic(buf->page);
 	}
 
 	return kmap(buf->page);
@@ -251,7 +251,7 @@ void generic_pipe_buf_unmap(struct pipe_inode_info *pipe,
 {
 	if (buf->flags & PIPE_BUF_FLAG_ATOMIC) {
 		buf->flags &= ~PIPE_BUF_FLAG_ATOMIC;
-		kunmap_atomic(map_data, KM_USER0);
+		kunmap_atomic(map_data);
 	} else
 		kunmap(buf->page);
 }
@@ -565,14 +565,14 @@ redo1:
 			iov_fault_in_pages_read(iov, chars);
 redo2:
 			if (atomic)
-				src = kmap_atomic(page, KM_USER0);
+				src = kmap_atomic(page);
 			else
 				src = kmap(page);
 
 			error = pipe_iov_copy_from_user(src, iov, chars,
 							atomic);
 			if (atomic)
-				kunmap_atomic(src, KM_USER0);
+				kunmap_atomic(src);
 			else
 				kunmap(page);
 
diff --git a/fs/splice.c b/fs/splice.c
index fa2defa..da01377 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -738,15 +738,12 @@ int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
 		goto out;
 
 	if (buf->page != page) {
-		/*
-		 * Careful, ->map() uses KM_USER0!
-		 */
 		char *src = buf->ops->map(pipe, buf, 1);
-		char *dst = kmap_atomic(page, KM_USER1);
+		char *dst = kmap_atomic(page);
 
 		memcpy(dst + offset, src + buf->offset, this_len);
 		flush_dcache_page(page);
-		kunmap_atomic(dst, KM_USER1);
+		kunmap_atomic(dst);
 		buf->ops->unmap(pipe, buf, src);
 	}
 	ret = pagecache_write_end(file, mapping, sd->pos, this_len, this_len,
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 847994a..6ed3ba4 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -101,10 +101,10 @@ static inline int bio_has_allocated_vec(struct bio *bio)
  * I/O completely on that queue (see ide-dma for example)
  */
 #define __bio_kmap_atomic(bio, idx, kmtype)				\
-	(kmap_atomic(bio_iovec_idx((bio), (idx))->bv_page, kmtype) +	\
+	(kmap_atomic(bio_iovec_idx((bio), (idx))->bv_page) +	\
 		bio_iovec_idx((bio), (idx))->bv_offset)
 
-#define __bio_kunmap_atomic(addr, kmtype) kunmap_atomic(addr, kmtype)
+#define __bio_kunmap_atomic(addr, kmtype) kunmap_atomic(addr)
 
 /*
  * merge helpers etc
@@ -317,7 +317,7 @@ static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
 	 * balancing is a lot nicer this way
 	 */
 	local_irq_save(*flags);
-	addr = (unsigned long) kmap_atomic(bvec->bv_page, KM_BIO_SRC_IRQ);
+	addr = (unsigned long) kmap_atomic(bvec->bv_page);
 
 	BUG_ON(addr & ~PAGE_MASK);
 
@@ -328,7 +328,7 @@ static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
 {
 	unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
 
-	kunmap_atomic((void *) ptr, KM_BIO_SRC_IRQ);
+	kunmap_atomic((void *) ptr);
 	local_irq_restore(*flags);
 }
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 30/62] btrfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (27 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 29/62] fs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 31/62] ecryptfs: " Cong Wang
                   ` (33 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Chris Mason, linux-btrfs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/btrfs/compression.c |   12 ++++++------
 fs/btrfs/extent_io.c   |   16 ++++++++--------
 fs/btrfs/file-item.c   |    4 ++--
 fs/btrfs/inode.c       |   26 +++++++++++++-------------
 fs/btrfs/lzo.c         |    4 ++--
 fs/btrfs/scrub.c       |    8 ++++----
 fs/btrfs/zlib.c        |    4 ++--
 7 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 14f1c5a..93f4af1 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -120,10 +120,10 @@ static int check_compressed_csum(struct inode *inode,
 		page = cb->compressed_pages[i];
 		csum = ~(u32)0;
 
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		csum = btrfs_csum_data(root, kaddr, csum, PAGE_CACHE_SIZE);
 		btrfs_csum_final(csum, (char *)&csum);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 
 		if (csum != *cb_sum) {
 			printk(KERN_INFO "btrfs csum failed ino %llu "
@@ -521,10 +521,10 @@ static noinline int add_ra_bio_pages(struct inode *inode,
 			if (zero_offset) {
 				int zeros;
 				zeros = PAGE_CACHE_SIZE - zero_offset;
-				userpage = kmap_atomic(page, KM_USER0);
+				userpage = kmap_atomic(page);
 				memset(userpage + zero_offset, 0, zeros);
 				flush_dcache_page(page);
-				kunmap_atomic(userpage, KM_USER0);
+				kunmap_atomic(userpage);
 			}
 		}
 
@@ -991,9 +991,9 @@ int btrfs_decompress_buf2page(char *buf, unsigned long buf_start,
 		bytes = min(PAGE_CACHE_SIZE - *pg_offset,
 			    PAGE_CACHE_SIZE - buf_offset);
 		bytes = min(bytes, working_bytes);
-		kaddr = kmap_atomic(page_out, KM_USER0);
+		kaddr = kmap_atomic(page_out);
 		memcpy(kaddr + *pg_offset, buf + buf_offset, bytes);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		flush_dcache_page(page_out);
 
 		*pg_offset += bytes;
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 9472d3d..64a8a77 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -2513,10 +2513,10 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
 
 		if (zero_offset) {
 			iosize = PAGE_CACHE_SIZE - zero_offset;
-			userpage = kmap_atomic(page, KM_USER0);
+			userpage = kmap_atomic(page);
 			memset(userpage + zero_offset, 0, iosize);
 			flush_dcache_page(page);
-			kunmap_atomic(userpage, KM_USER0);
+			kunmap_atomic(userpage);
 		}
 	}
 	while (cur <= end) {
@@ -2525,10 +2525,10 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
 			struct extent_state *cached = NULL;
 
 			iosize = PAGE_CACHE_SIZE - pg_offset;
-			userpage = kmap_atomic(page, KM_USER0);
+			userpage = kmap_atomic(page);
 			memset(userpage + pg_offset, 0, iosize);
 			flush_dcache_page(page);
-			kunmap_atomic(userpage, KM_USER0);
+			kunmap_atomic(userpage);
 			set_extent_uptodate(tree, cur, cur + iosize - 1,
 					    &cached, GFP_NOFS);
 			unlock_extent_cached(tree, cur, cur + iosize - 1,
@@ -2574,10 +2574,10 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
 			char *userpage;
 			struct extent_state *cached = NULL;
 
-			userpage = kmap_atomic(page, KM_USER0);
+			userpage = kmap_atomic(page);
 			memset(userpage + pg_offset, 0, iosize);
 			flush_dcache_page(page);
-			kunmap_atomic(userpage, KM_USER0);
+			kunmap_atomic(userpage);
 
 			set_extent_uptodate(tree, cur, cur + iosize - 1,
 					    &cached, GFP_NOFS);
@@ -2723,10 +2723,10 @@ static int __extent_writepage(struct page *page, struct writeback_control *wbc,
 	if (page->index == end_index) {
 		char *userpage;
 
-		userpage = kmap_atomic(page, KM_USER0);
+		userpage = kmap_atomic(page);
 		memset(userpage + pg_offset, 0,
 		       PAGE_CACHE_SIZE - pg_offset);
-		kunmap_atomic(userpage, KM_USER0);
+		kunmap_atomic(userpage);
 		flush_dcache_page(page);
 	}
 	pg_offset = 0;
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index c7fb3a4..078b4fd 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -447,13 +447,13 @@ int btrfs_csum_one_bio(struct btrfs_root *root, struct inode *inode,
 			sums->bytenr = ordered->start;
 		}
 
-		data = kmap_atomic(bvec->bv_page, KM_USER0);
+		data = kmap_atomic(bvec->bv_page);
 		sector_sum->sum = ~(u32)0;
 		sector_sum->sum = btrfs_csum_data(root,
 						  data + bvec->bv_offset,
 						  sector_sum->sum,
 						  bvec->bv_len);
-		kunmap_atomic(data, KM_USER0);
+		kunmap_atomic(data);
 		btrfs_csum_final(sector_sum->sum,
 				 (char *)&sector_sum->sum);
 		sector_sum->bytenr = disk_bytenr;
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 526dd51..b26483b 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -172,9 +172,9 @@ static noinline int insert_inline_extent(struct btrfs_trans_handle *trans,
 			cur_size = min_t(unsigned long, compressed_size,
 				       PAGE_CACHE_SIZE);
 
-			kaddr = kmap_atomic(cpage, KM_USER0);
+			kaddr = kmap_atomic(cpage);
 			write_extent_buffer(leaf, kaddr, ptr, cur_size);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 
 			i++;
 			ptr += cur_size;
@@ -186,10 +186,10 @@ static noinline int insert_inline_extent(struct btrfs_trans_handle *trans,
 		page = find_get_page(inode->i_mapping,
 				     start >> PAGE_CACHE_SHIFT);
 		btrfs_set_file_extent_compression(leaf, ei, 0);
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		offset = start & (PAGE_CACHE_SIZE - 1);
 		write_extent_buffer(leaf, kaddr + offset, ptr, size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		page_cache_release(page);
 	}
 	btrfs_mark_buffer_dirty(leaf);
@@ -421,10 +421,10 @@ again:
 			 * sending it down to disk
 			 */
 			if (offset) {
-				kaddr = kmap_atomic(page, KM_USER0);
+				kaddr = kmap_atomic(page);
 				memset(kaddr + offset, 0,
 				       PAGE_CACHE_SIZE - offset);
-				kunmap_atomic(kaddr, KM_USER0);
+				kunmap_atomic(kaddr);
 			}
 			will_compress = 1;
 		}
@@ -1862,7 +1862,7 @@ static int btrfs_readpage_end_io_hook(struct page *page, u64 start, u64 end,
 	} else {
 		ret = get_state_private(io_tree, start, &private);
 	}
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (ret)
 		goto zeroit;
 
@@ -1871,7 +1871,7 @@ static int btrfs_readpage_end_io_hook(struct page *page, u64 start, u64 end,
 	if (csum != private)
 		goto zeroit;
 
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 good:
 	return 0;
 
@@ -1883,7 +1883,7 @@ zeroit:
 		       (unsigned long long)private);
 	memset(kaddr + offset, 1, end - start + 1);
 	flush_dcache_page(page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	if (private == 0)
 		return 0;
 	return -EIO;
@@ -4808,12 +4808,12 @@ static noinline int uncompress_inline(struct btrfs_path *path,
 	ret = btrfs_decompress(compress_type, tmp, page,
 			       extent_offset, inline_size, max_size);
 	if (ret) {
-		char *kaddr = kmap_atomic(page, KM_USER0);
+		char *kaddr = kmap_atomic(page);
 		unsigned long copy_size = min_t(u64,
 				  PAGE_CACHE_SIZE - pg_offset,
 				  max_size - extent_offset);
 		memset(kaddr + pg_offset, 0, copy_size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 	kfree(tmp);
 	return 0;
@@ -5590,11 +5590,11 @@ static void btrfs_endio_direct_read(struct bio *bio, int err)
 			unsigned long flags;
 
 			local_irq_save(flags);
-			kaddr = kmap_atomic(page, KM_IRQ0);
+			kaddr = kmap_atomic(page);
 			csum = btrfs_csum_data(root, kaddr + bvec->bv_offset,
 					       csum, bvec->bv_len);
 			btrfs_csum_final(csum, (char *)&csum);
-			kunmap_atomic(kaddr, KM_IRQ0);
+			kunmap_atomic(kaddr);
 			local_irq_restore(flags);
 
 			flush_dcache_page(bvec->bv_page);
diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c
index a178f5e..743b86f 100644
--- a/fs/btrfs/lzo.c
+++ b/fs/btrfs/lzo.c
@@ -411,9 +411,9 @@ static int lzo_decompress(struct list_head *ws, unsigned char *data_in,
 
 	bytes = min_t(unsigned long, destlen, out_len - start_byte);
 
-	kaddr = kmap_atomic(dest_page, KM_USER0);
+	kaddr = kmap_atomic(dest_page);
 	memcpy(kaddr, workspace->buf + start_byte, bytes);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 out:
 	return ret;
 }
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index fab420d..42e0674 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -584,7 +584,7 @@ static int scrub_fixup_check(struct scrub_bio *sbio, int ix)
 	u64 flags = sbio->spag[ix].flags;
 
 	page = sbio->bio->bi_io_vec[ix].bv_page;
-	buffer = kmap_atomic(page, KM_USER0);
+	buffer = kmap_atomic(page);
 	if (flags & BTRFS_EXTENT_FLAG_DATA) {
 		ret = scrub_checksum_data(sbio->sdev,
 					  sbio->spag + ix, buffer);
@@ -596,7 +596,7 @@ static int scrub_fixup_check(struct scrub_bio *sbio, int ix)
 	} else {
 		WARN_ON(1);
 	}
-	kunmap_atomic(buffer, KM_USER0);
+	kunmap_atomic(buffer);
 
 	return ret;
 }
@@ -785,7 +785,7 @@ static void scrub_checksum(struct btrfs_work *work)
 	}
 	for (i = 0; i < sbio->count; ++i) {
 		page = sbio->bio->bi_io_vec[i].bv_page;
-		buffer = kmap_atomic(page, KM_USER0);
+		buffer = kmap_atomic(page);
 		flags = sbio->spag[i].flags;
 		logical = sbio->logical + i * PAGE_SIZE;
 		ret = 0;
@@ -800,7 +800,7 @@ static void scrub_checksum(struct btrfs_work *work)
 		} else {
 			WARN_ON(1);
 		}
-		kunmap_atomic(buffer, KM_USER0);
+		kunmap_atomic(buffer);
 		if (ret) {
 			ret = scrub_recheck_error(sbio, i);
 			if (!ret) {
diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c
index faccd47..92c2065 100644
--- a/fs/btrfs/zlib.c
+++ b/fs/btrfs/zlib.c
@@ -370,9 +370,9 @@ static int zlib_decompress(struct list_head *ws, unsigned char *data_in,
 			    PAGE_CACHE_SIZE - buf_offset);
 		bytes = min(bytes, bytes_left);
 
-		kaddr = kmap_atomic(dest_page, KM_USER0);
+		kaddr = kmap_atomic(dest_page);
 		memcpy(kaddr + pg_offset, workspace->buf + buf_offset, bytes);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 
 		pg_offset += bytes;
 		bytes_left -= bytes;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 31/62] ecryptfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (28 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 30/62] btrfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 32/62] afs: " Cong Wang
                   ` (32 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Tyler Hicks, Dustin Kirkland, ecryptfs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/ecryptfs/mmap.c       |    4 ++--
 fs/ecryptfs/read_write.c |    8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c
index 6a44148..5e29bf4 100644
--- a/fs/ecryptfs/mmap.c
+++ b/fs/ecryptfs/mmap.c
@@ -146,7 +146,7 @@ ecryptfs_copy_up_encrypted_with_header(struct page *page,
 			/* This is a header extent */
 			char *page_virt;
 
-			page_virt = kmap_atomic(page, KM_USER0);
+			page_virt = kmap_atomic(page);
 			memset(page_virt, 0, PAGE_CACHE_SIZE);
 			/* TODO: Support more than one header extent */
 			if (view_extent_num == 0) {
@@ -159,7 +159,7 @@ ecryptfs_copy_up_encrypted_with_header(struct page *page,
 							       crypt_stat,
 							       &written);
 			}
-			kunmap_atomic(page_virt, KM_USER0);
+			kunmap_atomic(page_virt);
 			flush_dcache_page(page);
 			if (rc) {
 				printk(KERN_ERR "%s: Error reading xattr "
diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
index 3745f7c..102719c8 100644
--- a/fs/ecryptfs/read_write.c
+++ b/fs/ecryptfs/read_write.c
@@ -151,7 +151,7 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
 			       ecryptfs_page_idx, rc);
 			goto out;
 		}
-		ecryptfs_page_virt = kmap_atomic(ecryptfs_page, KM_USER0);
+		ecryptfs_page_virt = kmap_atomic(ecryptfs_page);
 
 		/*
 		 * pos: where we're now writing, offset: where the request was
@@ -174,7 +174,7 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
 			       (data + data_offset), num_bytes);
 			data_offset += num_bytes;
 		}
-		kunmap_atomic(ecryptfs_page_virt, KM_USER0);
+		kunmap_atomic(ecryptfs_page_virt);
 		flush_dcache_page(ecryptfs_page);
 		SetPageUptodate(ecryptfs_page);
 		unlock_page(ecryptfs_page);
@@ -330,11 +330,11 @@ int ecryptfs_read(char *data, loff_t offset, size_t size,
 			       ecryptfs_page_idx, rc);
 			goto out;
 		}
-		ecryptfs_page_virt = kmap_atomic(ecryptfs_page, KM_USER0);
+		ecryptfs_page_virt = kmap_atomic(ecryptfs_page);
 		memcpy((data + data_offset),
 		       ((char *)ecryptfs_page_virt + start_offset_in_page),
 		       num_bytes);
-		kunmap_atomic(ecryptfs_page_virt, KM_USER0);
+		kunmap_atomic(ecryptfs_page_virt);
 		flush_dcache_page(ecryptfs_page);
 		SetPageUptodate(ecryptfs_page);
 		unlock_page(ecryptfs_page);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 32/62] afs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (29 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 31/62] ecryptfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 33/62] exofs: " Cong Wang
                   ` (31 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, David Howells, linux-afs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/afs/fsclient.c |    8 ++++----
 fs/afs/mntpt.c    |    4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index 2f213d1..b960ff0 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -365,10 +365,10 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call,
 		_debug("extract data");
 		if (call->count > 0) {
 			page = call->reply3;
-			buffer = kmap_atomic(page, KM_USER0);
+			buffer = kmap_atomic(page);
 			ret = afs_extract_data(call, skb, last, buffer,
 					       call->count);
-			kunmap_atomic(buffer, KM_USER0);
+			kunmap_atomic(buffer);
 			switch (ret) {
 			case 0:		break;
 			case -EAGAIN:	return 0;
@@ -411,9 +411,9 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call,
 	if (call->count < PAGE_SIZE) {
 		_debug("clear");
 		page = call->reply3;
-		buffer = kmap_atomic(page, KM_USER0);
+		buffer = kmap_atomic(page);
 		memset(buffer + call->count, 0, PAGE_SIZE - call->count);
-		kunmap_atomic(buffer, KM_USER0);
+		kunmap_atomic(buffer);
 	}
 
 	_leave(" = 0 [done]");
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index aa59184..4405561 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -200,9 +200,9 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
 		if (PageError(page))
 			goto error;
 
-		buf = kmap_atomic(page, KM_USER0);
+		buf = kmap_atomic(page);
 		memcpy(devname, buf, size);
-		kunmap_atomic(buf, KM_USER0);
+		kunmap_atomic(buf);
 		page_cache_release(page);
 		page = NULL;
 	}
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 33/62] exofs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (30 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 32/62] afs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 17:35   ` Boaz Harrosh
  2011-11-27  5:27 ` [PATCH 34/62] ext2: " Cong Wang
                   ` (30 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Boaz Harrosh, Benny Halevy, osd-dev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/exofs/dir.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/exofs/dir.c b/fs/exofs/dir.c
index d0941c6..b757a6e 100644
--- a/fs/exofs/dir.c
+++ b/fs/exofs/dir.c
@@ -597,7 +597,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
 		goto fail;
 	}
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	de = (struct exofs_dir_entry *)kaddr;
 	de->name_len = 1;
 	de->rec_len = cpu_to_le16(EXOFS_DIR_REC_LEN(1));
@@ -611,7 +611,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
 	de->inode_no = cpu_to_le64(parent->i_ino);
 	memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR));
 	exofs_set_de_type(de, inode);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	err = exofs_commit_chunk(page, 0, chunk_size);
 fail:
 	page_cache_release(page);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 34/62] ext2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (31 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 33/62] exofs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 14:15   ` Jan Kara
  2011-11-27  5:27 ` [PATCH 35/62] fuse: " Cong Wang
                   ` (29 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Jan Kara, linux-ext4


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/ext2/dir.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c
index 47cda41..378bf28 100644
--- a/fs/ext2/dir.c
+++ b/fs/ext2/dir.c
@@ -645,7 +645,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
 		unlock_page(page);
 		goto fail;
 	}
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memset(kaddr, 0, chunk_size);
 	de = (struct ext2_dir_entry_2 *)kaddr;
 	de->name_len = 1;
@@ -660,7 +660,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
 	de->inode = cpu_to_le32(parent->i_ino);
 	memcpy (de->name, "..\0", 4);
 	ext2_set_de_type (de, inode);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	err = ext2_commit_chunk(page, 0, chunk_size);
 fail:
 	page_cache_release(page);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 35/62] fuse: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (32 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 34/62] ext2: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 36/62] gfs2: " Cong Wang
                   ` (28 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Miklos Szeredi, fuse-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/fuse/dev.c  |    4 ++--
 fs/fuse/file.c |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 5cb8614..1d8a4cf 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -838,10 +838,10 @@ static int fuse_copy_page(struct fuse_copy_state *cs, struct page **pagep,
 			}
 		}
 		if (page) {
-			void *mapaddr = kmap_atomic(page, KM_USER0);
+			void *mapaddr = kmap_atomic(page);
 			void *buf = mapaddr + offset;
 			offset += fuse_copy_do(cs, &buf, &count);
-			kunmap_atomic(mapaddr, KM_USER0);
+			kunmap_atomic(mapaddr);
 		} else
 			offset += fuse_copy_do(cs, NULL, &count);
 	}
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 594f07a..a8aabde 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -1915,11 +1915,11 @@ long fuse_do_ioctl(struct file *file, unsigned int cmd, unsigned long arg,
 		    in_iovs + out_iovs > FUSE_IOCTL_MAX_IOV)
 			goto out;
 
-		vaddr = kmap_atomic(pages[0], KM_USER0);
+		vaddr = kmap_atomic(pages[0]);
 		err = fuse_copy_ioctl_iovec(fc, iov_page, vaddr,
 					    transferred, in_iovs + out_iovs,
 					    (flags & FUSE_IOCTL_COMPAT) != 0);
-		kunmap_atomic(vaddr, KM_USER0);
+		kunmap_atomic(vaddr);
 		if (err)
 			goto out;
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 36/62] gfs2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (33 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 35/62] fuse: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 37/62] jbd: " Cong Wang
                   ` (27 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Steven Whitehouse, cluster-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/gfs2/aops.c  |   12 ++++++------
 fs/gfs2/lops.c  |    8 ++++----
 fs/gfs2/quota.c |    4 ++--
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index 4858e1f..6cd6761 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -434,12 +434,12 @@ static int stuffed_readpage(struct gfs2_inode *ip, struct page *page)
 	if (error)
 		return error;
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (dsize > (dibh->b_size - sizeof(struct gfs2_dinode)))
 		dsize = (dibh->b_size - sizeof(struct gfs2_dinode));
 	memcpy(kaddr, dibh->b_data + sizeof(struct gfs2_dinode), dsize);
 	memset(kaddr + dsize, 0, PAGE_CACHE_SIZE - dsize);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	flush_dcache_page(page);
 	brelse(dibh);
 	SetPageUptodate(page);
@@ -542,9 +542,9 @@ int gfs2_internal_read(struct gfs2_inode *ip, struct file_ra_state *ra_state,
 		page = read_cache_page(mapping, index, __gfs2_readpage, NULL);
 		if (IS_ERR(page))
 			return PTR_ERR(page);
-		p = kmap_atomic(page, KM_USER0);
+		p = kmap_atomic(page);
 		memcpy(buf + copied, p + offset, amt);
-		kunmap_atomic(p, KM_USER0);
+		kunmap_atomic(p);
 		mark_page_accessed(page);
 		page_cache_release(page);
 		copied += amt;
@@ -789,11 +789,11 @@ static int gfs2_stuffed_write_end(struct inode *inode, struct buffer_head *dibh,
 	unsigned char *buf = dibh->b_data + sizeof(struct gfs2_dinode);
 
 	BUG_ON((pos + len) > (dibh->b_size - sizeof(struct gfs2_dinode)));
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memcpy(buf + pos, kaddr + pos, copied);
 	memset(kaddr + pos + copied, 0, len - copied);
 	flush_dcache_page(page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (!PageUptodate(page))
 		SetPageUptodate(page);
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 0301be6..df7c6e8 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -553,11 +553,11 @@ static void gfs2_check_magic(struct buffer_head *bh)
 	__be32 *ptr;
 
 	clear_buffer_escaped(bh);
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	ptr = kaddr + bh_offset(bh);
 	if (*ptr == cpu_to_be32(GFS2_MAGIC))
 		set_buffer_escaped(bh);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 static void gfs2_write_blocks(struct gfs2_sbd *sdp, struct buffer_head *bh,
@@ -594,10 +594,10 @@ static void gfs2_write_blocks(struct gfs2_sbd *sdp, struct buffer_head *bh,
 		if (buffer_escaped(bd->bd_bh)) {
 			void *kaddr;
 			bh1 = gfs2_log_get_buf(sdp);
-			kaddr = kmap_atomic(bd->bd_bh->b_page, KM_USER0);
+			kaddr = kmap_atomic(bd->bd_bh->b_page);
 			memcpy(bh1->b_data, kaddr + bh_offset(bd->bd_bh),
 			       bh1->b_size);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			*(__be32 *)bh1->b_data = 0;
 			clear_buffer_escaped(bd->bd_bh);
 			unlock_buffer(bd->bd_bh);
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
index 7e528dc..762c1dd 100644
--- a/fs/gfs2/quota.c
+++ b/fs/gfs2/quota.c
@@ -720,12 +720,12 @@ get_a_page:
 
 	gfs2_trans_add_bh(ip->i_gl, bh, 0);
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (offset + sizeof(struct gfs2_quota) > PAGE_CACHE_SIZE)
 		nbytes = PAGE_CACHE_SIZE - offset;
 	memcpy(kaddr + offset, ptr, nbytes);
 	flush_dcache_page(page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	unlock_page(page);
 	page_cache_release(page);
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 37/62] jbd: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (34 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 36/62] gfs2: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 14:15   ` Jan Kara
  2011-11-27  5:27 ` [PATCH 38/62] jbd2: " Cong Wang
                   ` (26 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Jan Kara, linux-ext4


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/jbd/journal.c     |   12 ++++++------
 fs/jbd/transaction.c |    4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index fea8dd6..de8ae3e 100644
--- a/fs/jbd/journal.c
+++ b/fs/jbd/journal.c
@@ -328,7 +328,7 @@ repeat:
 		new_offset = offset_in_page(jh2bh(jh_in)->b_data);
 	}
 
-	mapped_data = kmap_atomic(new_page, KM_USER0);
+	mapped_data = kmap_atomic(new_page);
 	/*
 	 * Check for escaping
 	 */
@@ -337,7 +337,7 @@ repeat:
 		need_copy_out = 1;
 		do_escape = 1;
 	}
-	kunmap_atomic(mapped_data, KM_USER0);
+	kunmap_atomic(mapped_data);
 
 	/*
 	 * Do we need to do a data copy?
@@ -354,9 +354,9 @@ repeat:
 		}
 
 		jh_in->b_frozen_data = tmp;
-		mapped_data = kmap_atomic(new_page, KM_USER0);
+		mapped_data = kmap_atomic(new_page);
 		memcpy(tmp, mapped_data + new_offset, jh2bh(jh_in)->b_size);
-		kunmap_atomic(mapped_data, KM_USER0);
+		kunmap_atomic(mapped_data);
 
 		new_page = virt_to_page(tmp);
 		new_offset = offset_in_page(tmp);
@@ -368,9 +368,9 @@ repeat:
 	 * copying, we can finally do so.
 	 */
 	if (do_escape) {
-		mapped_data = kmap_atomic(new_page, KM_USER0);
+		mapped_data = kmap_atomic(new_page);
 		*((unsigned int *)(mapped_data + new_offset)) = 0;
-		kunmap_atomic(mapped_data, KM_USER0);
+		kunmap_atomic(mapped_data);
 	}
 
 	set_bh_page(new_bh, new_page, new_offset);
diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c
index 7e59c6e..e59a112 100644
--- a/fs/jbd/transaction.c
+++ b/fs/jbd/transaction.c
@@ -712,9 +712,9 @@ done:
 			    "Possible IO failure.\n");
 		page = jh2bh(jh)->b_page;
 		offset = offset_in_page(jh2bh(jh)->b_data);
-		source = kmap_atomic(page, KM_USER0);
+		source = kmap_atomic(page);
 		memcpy(jh->b_frozen_data, source+offset, jh2bh(jh)->b_size);
-		kunmap_atomic(source, KM_USER0);
+		kunmap_atomic(source);
 	}
 	jbd_unlock_bh_state(bh);
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 38/62] jbd2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (35 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 37/62] jbd: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 39/62] logfs: " Cong Wang
                   ` (25 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Theodore Ts'o, linux-ext4


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/jbd2/commit.c      |    4 ++--
 fs/jbd2/journal.c     |   12 ++++++------
 fs/jbd2/transaction.c |    4 ++--
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 68d704d..5b272bc 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -286,10 +286,10 @@ static __u32 jbd2_checksum_data(__u32 crc32_sum, struct buffer_head *bh)
 	char *addr;
 	__u32 checksum;
 
-	addr = kmap_atomic(page, KM_USER0);
+	addr = kmap_atomic(page);
 	checksum = crc32_be(crc32_sum,
 		(void *)(addr + offset_in_page(bh->b_data)), bh->b_size);
-	kunmap_atomic(addr, KM_USER0);
+	kunmap_atomic(addr);
 
 	return checksum;
 }
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 0fa0123..f251d6a 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -345,7 +345,7 @@ repeat:
 		new_offset = offset_in_page(jh2bh(jh_in)->b_data);
 	}
 
-	mapped_data = kmap_atomic(new_page, KM_USER0);
+	mapped_data = kmap_atomic(new_page);
 	/*
 	 * Fire data frozen trigger if data already wasn't frozen.  Do this
 	 * before checking for escaping, as the trigger may modify the magic
@@ -364,7 +364,7 @@ repeat:
 		need_copy_out = 1;
 		do_escape = 1;
 	}
-	kunmap_atomic(mapped_data, KM_USER0);
+	kunmap_atomic(mapped_data);
 
 	/*
 	 * Do we need to do a data copy?
@@ -385,9 +385,9 @@ repeat:
 		}
 
 		jh_in->b_frozen_data = tmp;
-		mapped_data = kmap_atomic(new_page, KM_USER0);
+		mapped_data = kmap_atomic(new_page);
 		memcpy(tmp, mapped_data + new_offset, jh2bh(jh_in)->b_size);
-		kunmap_atomic(mapped_data, KM_USER0);
+		kunmap_atomic(mapped_data);
 
 		new_page = virt_to_page(tmp);
 		new_offset = offset_in_page(tmp);
@@ -406,9 +406,9 @@ repeat:
 	 * copying, we can finally do so.
 	 */
 	if (do_escape) {
-		mapped_data = kmap_atomic(new_page, KM_USER0);
+		mapped_data = kmap_atomic(new_page);
 		*((unsigned int *)(mapped_data + new_offset)) = 0;
-		kunmap_atomic(mapped_data, KM_USER0);
+		kunmap_atomic(mapped_data);
 	}
 
 	set_bh_page(new_bh, new_page, new_offset);
diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index a0e41a4..5d8de98 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -782,12 +782,12 @@ done:
 			    "Possible IO failure.\n");
 		page = jh2bh(jh)->b_page;
 		offset = offset_in_page(jh2bh(jh)->b_data);
-		source = kmap_atomic(page, KM_USER0);
+		source = kmap_atomic(page);
 		/* Fire data frozen trigger just before we copy the data */
 		jbd2_buffer_frozen_trigger(jh, source + offset,
 					   jh->b_triggers);
 		memcpy(jh->b_frozen_data, source+offset, jh2bh(jh)->b_size);
-		kunmap_atomic(source, KM_USER0);
+		kunmap_atomic(source);
 
 		/*
 		 * Now that the frozen data is saved off, we need to store
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 39/62] logfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (36 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 38/62] jbd2: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 40/62] minix: " Cong Wang
                   ` (24 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Joern Engel, logfs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/logfs/dir.c       |   18 +++++++++---------
 fs/logfs/readwrite.c |   38 +++++++++++++++++++-------------------
 fs/logfs/segment.c   |    4 ++--
 3 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/fs/logfs/dir.c b/fs/logfs/dir.c
index b7d7f67..7c27519 100644
--- a/fs/logfs/dir.c
+++ b/fs/logfs/dir.c
@@ -177,17 +177,17 @@ static struct page *logfs_get_dd_page(struct inode *dir, struct dentry *dentry)
 				(filler_t *)logfs_readpage, NULL);
 		if (IS_ERR(page))
 			return page;
-		dd = kmap_atomic(page, KM_USER0);
+		dd = kmap_atomic(page);
 		BUG_ON(dd->namelen == 0);
 
 		if (name->len != be16_to_cpu(dd->namelen) ||
 				memcmp(name->name, dd->name, name->len)) {
-			kunmap_atomic(dd, KM_USER0);
+			kunmap_atomic(dd);
 			page_cache_release(page);
 			continue;
 		}
 
-		kunmap_atomic(dd, KM_USER0);
+		kunmap_atomic(dd);
 		return page;
 	}
 	return NULL;
@@ -365,9 +365,9 @@ static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry,
 		return NULL;
 	}
 	index = page->index;
-	dd = kmap_atomic(page, KM_USER0);
+	dd = kmap_atomic(page);
 	ino = be64_to_cpu(dd->ino);
-	kunmap_atomic(dd, KM_USER0);
+	kunmap_atomic(dd);
 	page_cache_release(page);
 
 	inode = logfs_iget(dir->i_sb, ino);
@@ -402,12 +402,12 @@ static int logfs_write_dir(struct inode *dir, struct dentry *dentry,
 		if (!page)
 			return -ENOMEM;
 
-		dd = kmap_atomic(page, KM_USER0);
+		dd = kmap_atomic(page);
 		memset(dd, 0, sizeof(*dd));
 		dd->ino = cpu_to_be64(inode->i_ino);
 		dd->type = logfs_type(inode);
 		logfs_set_name(dd, &dentry->d_name);
-		kunmap_atomic(dd, KM_USER0);
+		kunmap_atomic(dd);
 
 		err = logfs_write_buf(dir, page, WF_LOCK);
 		unlock_page(page);
@@ -579,9 +579,9 @@ static int logfs_get_dd(struct inode *dir, struct dentry *dentry,
 	if (IS_ERR(page))
 		return PTR_ERR(page);
 	*pos = page->index;
-	map = kmap_atomic(page, KM_USER0);
+	map = kmap_atomic(page);
 	memcpy(dd, map, sizeof(*dd));
-	kunmap_atomic(map, KM_USER0);
+	kunmap_atomic(map);
 	page_cache_release(page);
 	return 0;
 }
diff --git a/fs/logfs/readwrite.c b/fs/logfs/readwrite.c
index 2ac4217..6d4029d 100644
--- a/fs/logfs/readwrite.c
+++ b/fs/logfs/readwrite.c
@@ -519,9 +519,9 @@ static int indirect_write_alias(struct super_block *sb,
 
 		ino = page->mapping->host->i_ino;
 		logfs_unpack_index(page->index, &bix, &level);
-		child = kmap_atomic(page, KM_USER0);
+		child = kmap_atomic(page);
 		val = child[pos];
-		kunmap_atomic(child, KM_USER0);
+		kunmap_atomic(child);
 		err = write_one_alias(sb, ino, bix, level, pos, val);
 		if (err)
 			return err;
@@ -667,9 +667,9 @@ static void alloc_indirect_block(struct inode *inode, struct page *page,
 	alloc_data_block(inode, page);
 
 	block = logfs_block(page);
-	array = kmap_atomic(page, KM_USER0);
+	array = kmap_atomic(page);
 	initialize_block_counters(page, block, array, page_is_empty);
-	kunmap_atomic(array, KM_USER0);
+	kunmap_atomic(array);
 }
 
 static void block_set_pointer(struct page *page, int index, u64 ptr)
@@ -679,10 +679,10 @@ static void block_set_pointer(struct page *page, int index, u64 ptr)
 	u64 oldptr;
 
 	BUG_ON(!block);
-	array = kmap_atomic(page, KM_USER0);
+	array = kmap_atomic(page);
 	oldptr = be64_to_cpu(array[index]);
 	array[index] = cpu_to_be64(ptr);
-	kunmap_atomic(array, KM_USER0);
+	kunmap_atomic(array);
 	SetPageUptodate(page);
 
 	block->full += !!(ptr & LOGFS_FULLY_POPULATED)
@@ -695,9 +695,9 @@ static u64 block_get_pointer(struct page *page, int index)
 	__be64 *block;
 	u64 ptr;
 
-	block = kmap_atomic(page, KM_USER0);
+	block = kmap_atomic(page);
 	ptr = be64_to_cpu(block[index]);
-	kunmap_atomic(block, KM_USER0);
+	kunmap_atomic(block);
 	return ptr;
 }
 
@@ -844,7 +844,7 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
 		}
 
 		slot = get_bits(bix, SUBLEVEL(level));
-		rblock = kmap_atomic(page, KM_USER0);
+		rblock = kmap_atomic(page);
 		while (slot < LOGFS_BLOCK_FACTOR) {
 			if (data && (rblock[slot] != 0))
 				break;
@@ -855,12 +855,12 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
 			bix &= ~(increment - 1);
 		}
 		if (slot >= LOGFS_BLOCK_FACTOR) {
-			kunmap_atomic(rblock, KM_USER0);
+			kunmap_atomic(rblock);
 			logfs_put_read_page(page);
 			return bix;
 		}
 		bofs = be64_to_cpu(rblock[slot]);
-		kunmap_atomic(rblock, KM_USER0);
+		kunmap_atomic(rblock);
 		logfs_put_read_page(page);
 		if (!bofs) {
 			BUG_ON(data);
@@ -1944,9 +1944,9 @@ int logfs_read_inode(struct inode *inode)
 	if (IS_ERR(page))
 		return PTR_ERR(page);
 
-	di = kmap_atomic(page, KM_USER0);
+	di = kmap_atomic(page);
 	logfs_disk_to_inode(di, inode);
-	kunmap_atomic(di, KM_USER0);
+	kunmap_atomic(di);
 	move_page_to_inode(inode, page);
 	page_cache_release(page);
 	return 0;
@@ -1965,9 +1965,9 @@ static struct page *inode_to_page(struct inode *inode)
 	if (!page)
 		return NULL;
 
-	di = kmap_atomic(page, KM_USER0);
+	di = kmap_atomic(page);
 	logfs_inode_to_disk(inode, di);
-	kunmap_atomic(di, KM_USER0);
+	kunmap_atomic(di);
 	move_inode_to_page(page, inode);
 	return page;
 }
@@ -2024,13 +2024,13 @@ static void logfs_mod_segment_entry(struct super_block *sb, u32 segno,
 
 	if (write)
 		alloc_indirect_block(inode, page, 0);
-	se = kmap_atomic(page, KM_USER0);
+	se = kmap_atomic(page);
 	change_se(se + child_no, arg);
 	if (write) {
 		logfs_set_alias(sb, logfs_block(page), child_no);
 		BUG_ON((int)be32_to_cpu(se[child_no].valid) > super->s_segsize);
 	}
-	kunmap_atomic(se, KM_USER0);
+	kunmap_atomic(se);
 
 	logfs_put_write_page(page);
 }
@@ -2228,10 +2228,10 @@ int logfs_inode_write(struct inode *inode, const void *buf, size_t count,
 	if (!page)
 		return -ENOMEM;
 
-	pagebuf = kmap_atomic(page, KM_USER0);
+	pagebuf = kmap_atomic(page);
 	memcpy(pagebuf, buf, count);
 	flush_dcache_page(page);
-	kunmap_atomic(pagebuf, KM_USER0);
+	kunmap_atomic(pagebuf);
 
 	if (i_size_read(inode) < pos + LOGFS_BLOCKSIZE)
 		i_size_write(inode, pos + LOGFS_BLOCKSIZE);
diff --git a/fs/logfs/segment.c b/fs/logfs/segment.c
index 9d51873..e4bc46c 100644
--- a/fs/logfs/segment.c
+++ b/fs/logfs/segment.c
@@ -529,9 +529,9 @@ void move_page_to_btree(struct page *page)
 		BUG_ON(!item); /* mempool empty */
 		memset(item, 0, sizeof(*item));
 
-		child = kmap_atomic(page, KM_USER0);
+		child = kmap_atomic(page);
 		item->val = child[pos];
-		kunmap_atomic(child, KM_USER0);
+		kunmap_atomic(child);
 		item->child_no = pos;
 		list_add(&item->list, &block->item_list);
 	}
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 40/62] minix: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (37 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 39/62] logfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 41/62] nfs: " Cong Wang
                   ` (23 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/minix/dir.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/minix/dir.c b/fs/minix/dir.c
index 085a926..685b2d9 100644
--- a/fs/minix/dir.c
+++ b/fs/minix/dir.c
@@ -335,7 +335,7 @@ int minix_make_empty(struct inode *inode, struct inode *dir)
 		goto fail;
 	}
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memset(kaddr, 0, PAGE_CACHE_SIZE);
 
 	if (sbi->s_version == MINIX_V3) {
@@ -355,7 +355,7 @@ int minix_make_empty(struct inode *inode, struct inode *dir)
 		de->inode = dir->i_ino;
 		strcpy(de->name, "..");
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	err = dir_commit_chunk(page, 0, 2 * sbi->s_dirsize);
 fail:
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 41/62] nfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (38 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 40/62] minix: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 42/62] nilfs2: " Cong Wang
                   ` (22 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Trond Myklebust, linux-nfs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/nfs/dir.c      |    8 ++++----
 fs/nfs/nfs4proc.c |    4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index ac28990..ce07968 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -260,10 +260,10 @@ void nfs_readdir_clear_array(struct page *page)
 	struct nfs_cache_array *array;
 	int i;
 
-	array = kmap_atomic(page, KM_USER0);
+	array = kmap_atomic(page);
 	for (i = 0; i < array->size; i++)
 		kfree(array->array[i].string.name);
-	kunmap_atomic(array, KM_USER0);
+	kunmap_atomic(array);
 }
 
 /*
@@ -1881,11 +1881,11 @@ static int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *sym
 	if (!page)
 		return -ENOMEM;
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memcpy(kaddr, symname, pathlen);
 	if (pathlen < PAGE_SIZE)
 		memset(kaddr + pathlen, 0, PAGE_SIZE - pathlen);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	error = NFS_PROTO(dir)->symlink(dir, dentry, page, pathlen, &attr);
 	if (error != 0) {
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index be2bbac..ebc122b 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -189,7 +189,7 @@ static void nfs4_setup_readdir(u64 cookie, __be32 *verifier, struct dentry *dent
 	 * when talking to the server, we always send cookie 0
 	 * instead of 1 or 2.
 	 */
-	start = p = kmap_atomic(*readdir->pages, KM_USER0);
+	start = p = kmap_atomic(*readdir->pages);
 	
 	if (cookie == 0) {
 		*p++ = xdr_one;                                  /* next */
@@ -217,7 +217,7 @@ static void nfs4_setup_readdir(u64 cookie, __be32 *verifier, struct dentry *dent
 
 	readdir->pgbase = (char *)p - (char *)start;
 	readdir->count -= readdir->pgbase;
-	kunmap_atomic(start, KM_USER0);
+	kunmap_atomic(start);
 }
 
 static int nfs4_wait_clnt_recover(struct nfs_client *clp)
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 42/62] nilfs2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (39 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 41/62] nfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 16:14   ` Ryusuke Konishi
  2011-11-27  5:27 ` [PATCH 43/62] ntfs: " Cong Wang
                   ` (21 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, KONISHI Ryusuke, linux-nilfs


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/nilfs2/cpfile.c   |   94 +++++++++++++++++++++++++-------------------------
 fs/nilfs2/dat.c      |   38 ++++++++++----------
 fs/nilfs2/dir.c      |    4 +-
 fs/nilfs2/ifile.c    |    4 +-
 fs/nilfs2/mdt.c      |    4 +-
 fs/nilfs2/page.c     |    8 ++--
 fs/nilfs2/recovery.c |    4 +-
 fs/nilfs2/segbuf.c   |    4 +-
 fs/nilfs2/sufile.c   |   68 ++++++++++++++++++------------------
 9 files changed, 114 insertions(+), 114 deletions(-)

diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
index c9b342c..dab5c4c 100644
--- a/fs/nilfs2/cpfile.c
+++ b/fs/nilfs2/cpfile.c
@@ -218,11 +218,11 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
 								 kaddr, 1);
 		mark_buffer_dirty(cp_bh);
 
-		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(header_bh->b_page);
 		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
 						       kaddr);
 		le64_add_cpu(&header->ch_ncheckpoints, 1);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		mark_buffer_dirty(header_bh);
 		nilfs_mdt_mark_dirty(cpfile);
 	}
@@ -313,7 +313,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
 			continue;
 		}
 
-		kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(cp_bh->b_page);
 		cp = nilfs_cpfile_block_get_checkpoint(
 			cpfile, cno, cp_bh, kaddr);
 		nicps = 0;
@@ -334,7 +334,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
 						cpfile, cp_bh, kaddr, nicps);
 				if (count == 0) {
 					/* make hole */
-					kunmap_atomic(kaddr, KM_USER0);
+					kunmap_atomic(kaddr);
 					brelse(cp_bh);
 					ret =
 					  nilfs_cpfile_delete_checkpoint_block(
@@ -349,18 +349,18 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
 			}
 		}
 
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(cp_bh);
 	}
 
 	if (tnicps > 0) {
-		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(header_bh->b_page);
 		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
 						       kaddr);
 		le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
 		mark_buffer_dirty(header_bh);
 		nilfs_mdt_mark_dirty(cpfile);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 
 	brelse(header_bh);
@@ -408,7 +408,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
 			continue; /* skip hole */
 		}
 
-		kaddr = kmap_atomic(bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(bh->b_page);
 		cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
 		for (i = 0; i < ncps && n < nci; i++, cp = (void *)cp + cpsz) {
 			if (!nilfs_checkpoint_invalid(cp)) {
@@ -418,7 +418,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
 				n++;
 			}
 		}
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(bh);
 	}
 
@@ -451,10 +451,10 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
 		ret = nilfs_cpfile_get_header_block(cpfile, &bh);
 		if (ret < 0)
 			goto out;
-		kaddr = kmap_atomic(bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(bh->b_page);
 		header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
 		curr = le64_to_cpu(header->ch_snapshot_list.ssl_next);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(bh);
 		if (curr == 0) {
 			ret = 0;
@@ -472,7 +472,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
 			ret = 0; /* No snapshots (started from a hole block) */
 		goto out;
 	}
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	while (n < nci) {
 		cp = nilfs_cpfile_block_get_checkpoint(cpfile, curr, bh, kaddr);
 		curr = ~(__u64)0; /* Terminator */
@@ -488,7 +488,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
 
 		next_blkoff = nilfs_cpfile_get_blkoff(cpfile, next);
 		if (curr_blkoff != next_blkoff) {
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			brelse(bh);
 			ret = nilfs_cpfile_get_checkpoint_block(cpfile, next,
 								0, &bh);
@@ -496,12 +496,12 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
 				WARN_ON(ret == -ENOENT);
 				goto out;
 			}
-			kaddr = kmap_atomic(bh->b_page, KM_USER0);
+			kaddr = kmap_atomic(bh->b_page);
 		}
 		curr = next;
 		curr_blkoff = next_blkoff;
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(bh);
 	*cnop = curr;
 	ret = n;
@@ -592,24 +592,24 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
 	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
 	if (ret < 0)
 		goto out_sem;
-	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(cp_bh->b_page);
 	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
 	if (nilfs_checkpoint_invalid(cp)) {
 		ret = -ENOENT;
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		goto out_cp;
 	}
 	if (nilfs_checkpoint_snapshot(cp)) {
 		ret = 0;
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		goto out_cp;
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
 	if (ret < 0)
 		goto out_cp;
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
 	list = &header->ch_snapshot_list;
 	curr_bh = header_bh;
@@ -621,13 +621,13 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
 		prev_blkoff = nilfs_cpfile_get_blkoff(cpfile, prev);
 		curr = prev;
 		if (curr_blkoff != prev_blkoff) {
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			brelse(curr_bh);
 			ret = nilfs_cpfile_get_checkpoint_block(cpfile, curr,
 								0, &curr_bh);
 			if (ret < 0)
 				goto out_header;
-			kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
+			kaddr = kmap_atomic(curr_bh->b_page);
 		}
 		curr_blkoff = prev_blkoff;
 		cp = nilfs_cpfile_block_get_checkpoint(
@@ -635,7 +635,7 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
 		list = &cp->cp_snapshot_list;
 		prev = le64_to_cpu(list->ssl_prev);
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (prev != 0) {
 		ret = nilfs_cpfile_get_checkpoint_block(cpfile, prev, 0,
@@ -647,29 +647,29 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
 		get_bh(prev_bh);
 	}
 
-	kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(curr_bh->b_page);
 	list = nilfs_cpfile_block_get_snapshot_list(
 		cpfile, curr, curr_bh, kaddr);
 	list->ssl_prev = cpu_to_le64(cno);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(cp_bh->b_page);
 	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
 	cp->cp_snapshot_list.ssl_next = cpu_to_le64(curr);
 	cp->cp_snapshot_list.ssl_prev = cpu_to_le64(prev);
 	nilfs_checkpoint_set_snapshot(cp);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(prev_bh->b_page);
 	list = nilfs_cpfile_block_get_snapshot_list(
 		cpfile, prev, prev_bh, kaddr);
 	list->ssl_next = cpu_to_le64(cno);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
 	le64_add_cpu(&header->ch_nsnapshots, 1);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(prev_bh);
 	mark_buffer_dirty(curr_bh);
@@ -710,23 +710,23 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
 	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
 	if (ret < 0)
 		goto out_sem;
-	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(cp_bh->b_page);
 	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
 	if (nilfs_checkpoint_invalid(cp)) {
 		ret = -ENOENT;
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		goto out_cp;
 	}
 	if (!nilfs_checkpoint_snapshot(cp)) {
 		ret = 0;
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		goto out_cp;
 	}
 
 	list = &cp->cp_snapshot_list;
 	next = le64_to_cpu(list->ssl_next);
 	prev = le64_to_cpu(list->ssl_prev);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
 	if (ret < 0)
@@ -750,29 +750,29 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
 		get_bh(prev_bh);
 	}
 
-	kaddr = kmap_atomic(next_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(next_bh->b_page);
 	list = nilfs_cpfile_block_get_snapshot_list(
 		cpfile, next, next_bh, kaddr);
 	list->ssl_prev = cpu_to_le64(prev);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(prev_bh->b_page);
 	list = nilfs_cpfile_block_get_snapshot_list(
 		cpfile, prev, prev_bh, kaddr);
 	list->ssl_next = cpu_to_le64(next);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(cp_bh->b_page);
 	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
 	cp->cp_snapshot_list.ssl_next = cpu_to_le64(0);
 	cp->cp_snapshot_list.ssl_prev = cpu_to_le64(0);
 	nilfs_checkpoint_clear_snapshot(cp);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
 	le64_add_cpu(&header->ch_nsnapshots, -1);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(next_bh);
 	mark_buffer_dirty(prev_bh);
@@ -829,13 +829,13 @@ int nilfs_cpfile_is_snapshot(struct inode *cpfile, __u64 cno)
 	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &bh);
 	if (ret < 0)
 		goto out;
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
 	if (nilfs_checkpoint_invalid(cp))
 		ret = -ENOENT;
 	else
 		ret = nilfs_checkpoint_snapshot(cp);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(bh);
 
  out:
@@ -912,12 +912,12 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat)
 	ret = nilfs_cpfile_get_header_block(cpfile, &bh);
 	if (ret < 0)
 		goto out_sem;
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
 	cpstat->cs_cno = nilfs_mdt_cno(cpfile);
 	cpstat->cs_ncps = le64_to_cpu(header->ch_ncheckpoints);
 	cpstat->cs_nsss = le64_to_cpu(header->ch_nsnapshots);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(bh);
 
  out_sem:
diff --git a/fs/nilfs2/dat.c b/fs/nilfs2/dat.c
index fcc2f86..b5c13f3 100644
--- a/fs/nilfs2/dat.c
+++ b/fs/nilfs2/dat.c
@@ -85,13 +85,13 @@ void nilfs_dat_commit_alloc(struct inode *dat, struct nilfs_palloc_req *req)
 	struct nilfs_dat_entry *entry;
 	void *kaddr;
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	entry->de_start = cpu_to_le64(NILFS_CNO_MIN);
 	entry->de_end = cpu_to_le64(NILFS_CNO_MAX);
 	entry->de_blocknr = cpu_to_le64(0);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nilfs_palloc_commit_alloc_entry(dat, req);
 	nilfs_dat_commit_entry(dat, req);
@@ -109,13 +109,13 @@ static void nilfs_dat_commit_free(struct inode *dat,
 	struct nilfs_dat_entry *entry;
 	void *kaddr;
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	entry->de_start = cpu_to_le64(NILFS_CNO_MIN);
 	entry->de_end = cpu_to_le64(NILFS_CNO_MIN);
 	entry->de_blocknr = cpu_to_le64(0);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nilfs_dat_commit_entry(dat, req);
 	nilfs_palloc_commit_free_entry(dat, req);
@@ -136,12 +136,12 @@ void nilfs_dat_commit_start(struct inode *dat, struct nilfs_palloc_req *req,
 	struct nilfs_dat_entry *entry;
 	void *kaddr;
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	entry->de_start = cpu_to_le64(nilfs_mdt_cno(dat));
 	entry->de_blocknr = cpu_to_le64(blocknr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nilfs_dat_commit_entry(dat, req);
 }
@@ -160,12 +160,12 @@ int nilfs_dat_prepare_end(struct inode *dat, struct nilfs_palloc_req *req)
 		return ret;
 	}
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	start = le64_to_cpu(entry->de_start);
 	blocknr = le64_to_cpu(entry->de_blocknr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (blocknr == 0) {
 		ret = nilfs_palloc_prepare_free_entry(dat, req);
@@ -186,7 +186,7 @@ void nilfs_dat_commit_end(struct inode *dat, struct nilfs_palloc_req *req,
 	sector_t blocknr;
 	void *kaddr;
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	end = start = le64_to_cpu(entry->de_start);
@@ -196,7 +196,7 @@ void nilfs_dat_commit_end(struct inode *dat, struct nilfs_palloc_req *req,
 	}
 	entry->de_end = cpu_to_le64(end);
 	blocknr = le64_to_cpu(entry->de_blocknr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (blocknr == 0)
 		nilfs_dat_commit_free(dat, req);
@@ -211,12 +211,12 @@ void nilfs_dat_abort_end(struct inode *dat, struct nilfs_palloc_req *req)
 	sector_t blocknr;
 	void *kaddr;
 
-	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
 					     req->pr_entry_bh, kaddr);
 	start = le64_to_cpu(entry->de_start);
 	blocknr = le64_to_cpu(entry->de_blocknr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (start == nilfs_mdt_cno(dat) && blocknr == 0)
 		nilfs_palloc_abort_free_entry(dat, req);
@@ -346,20 +346,20 @@ int nilfs_dat_move(struct inode *dat, __u64 vblocknr, sector_t blocknr)
 		}
 	}
 
-	kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, vblocknr, entry_bh, kaddr);
 	if (unlikely(entry->de_blocknr == cpu_to_le64(0))) {
 		printk(KERN_CRIT "%s: vbn = %llu, [%llu, %llu)\n", __func__,
 		       (unsigned long long)vblocknr,
 		       (unsigned long long)le64_to_cpu(entry->de_start),
 		       (unsigned long long)le64_to_cpu(entry->de_end));
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(entry_bh);
 		return -EINVAL;
 	}
 	WARN_ON(blocknr == 0);
 	entry->de_blocknr = cpu_to_le64(blocknr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(entry_bh);
 	nilfs_mdt_mark_dirty(dat);
@@ -409,7 +409,7 @@ int nilfs_dat_translate(struct inode *dat, __u64 vblocknr, sector_t *blocknrp)
 		}
 	}
 
-	kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(entry_bh->b_page);
 	entry = nilfs_palloc_block_get_entry(dat, vblocknr, entry_bh, kaddr);
 	blocknr = le64_to_cpu(entry->de_blocknr);
 	if (blocknr == 0) {
@@ -419,7 +419,7 @@ int nilfs_dat_translate(struct inode *dat, __u64 vblocknr, sector_t *blocknrp)
 	*blocknrp = blocknr;
 
  out:
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(entry_bh);
 	return ret;
 }
@@ -440,7 +440,7 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
 						   0, &entry_bh);
 		if (ret < 0)
 			return ret;
-		kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(entry_bh->b_page);
 		/* last virtual block number in this block */
 		first = vinfo->vi_vblocknr;
 		do_div(first, entries_per_block);
@@ -456,7 +456,7 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
 			vinfo->vi_end = le64_to_cpu(entry->de_end);
 			vinfo->vi_blocknr = le64_to_cpu(entry->de_blocknr);
 		}
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(entry_bh);
 	}
 
diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
index 3a19239..53ed93a 100644
--- a/fs/nilfs2/dir.c
+++ b/fs/nilfs2/dir.c
@@ -602,7 +602,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent)
 		unlock_page(page);
 		goto fail;
 	}
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memset(kaddr, 0, chunk_size);
 	de = (struct nilfs_dir_entry *)kaddr;
 	de->name_len = 1;
@@ -617,7 +617,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent)
 	de->inode = cpu_to_le64(parent->i_ino);
 	memcpy(de->name, "..\0", 4);
 	nilfs_set_de_type(de, inode);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	nilfs_commit_chunk(page, mapping, 0, chunk_size);
 fail:
 	page_cache_release(page);
diff --git a/fs/nilfs2/ifile.c b/fs/nilfs2/ifile.c
index 684d763..5a48df7 100644
--- a/fs/nilfs2/ifile.c
+++ b/fs/nilfs2/ifile.c
@@ -122,11 +122,11 @@ int nilfs_ifile_delete_inode(struct inode *ifile, ino_t ino)
 		return ret;
 	}
 
-	kaddr = kmap_atomic(req.pr_entry_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(req.pr_entry_bh->b_page);
 	raw_inode = nilfs_palloc_block_get_entry(ifile, req.pr_entry_nr,
 						 req.pr_entry_bh, kaddr);
 	raw_inode->i_flags = 0;
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(req.pr_entry_bh);
 	brelse(req.pr_entry_bh);
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
index 800e8d7..f9897d0 100644
--- a/fs/nilfs2/mdt.c
+++ b/fs/nilfs2/mdt.c
@@ -58,12 +58,12 @@ nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block,
 
 	set_buffer_mapped(bh);
 
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	memset(kaddr + bh_offset(bh), 0, 1 << inode->i_blkbits);
 	if (init_block)
 		init_block(inode, bh, kaddr);
 	flush_dcache_page(bh->b_page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	set_buffer_uptodate(bh);
 	mark_buffer_dirty(bh);
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 65221a0..3e7b2a0 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -119,11 +119,11 @@ void nilfs_copy_buffer(struct buffer_head *dbh, struct buffer_head *sbh)
 	struct page *spage = sbh->b_page, *dpage = dbh->b_page;
 	struct buffer_head *bh;
 
-	kaddr0 = kmap_atomic(spage, KM_USER0);
-	kaddr1 = kmap_atomic(dpage, KM_USER1);
+	kaddr0 = kmap_atomic(spage);
+	kaddr1 = kmap_atomic(dpage);
 	memcpy(kaddr1 + bh_offset(dbh), kaddr0 + bh_offset(sbh), sbh->b_size);
-	kunmap_atomic(kaddr1, KM_USER1);
-	kunmap_atomic(kaddr0, KM_USER0);
+	kunmap_atomic(kaddr1);
+	kunmap_atomic(kaddr0);
 
 	dbh->b_state = sbh->b_state & NILFS_BUFFER_INHERENT_BITS;
 	dbh->b_blocknr = sbh->b_blocknr;
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
index a604ac0..f1626f5 100644
--- a/fs/nilfs2/recovery.c
+++ b/fs/nilfs2/recovery.c
@@ -493,9 +493,9 @@ static int nilfs_recovery_copy_block(struct the_nilfs *nilfs,
 	if (unlikely(!bh_org))
 		return -EIO;
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memcpy(kaddr + bh_offset(bh_org), bh_org->b_data, bh_org->b_size);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(bh_org);
 	return 0;
 }
diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c
index 850a7c0..dc9a913 100644
--- a/fs/nilfs2/segbuf.c
+++ b/fs/nilfs2/segbuf.c
@@ -227,9 +227,9 @@ static void nilfs_segbuf_fill_in_data_crc(struct nilfs_segment_buffer *segbuf,
 		crc = crc32_le(crc, bh->b_data, bh->b_size);
 	}
 	list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) {
-		kaddr = kmap_atomic(bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(bh->b_page);
 		crc = crc32_le(crc, kaddr + bh_offset(bh), bh->b_size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 	raw_sum->ss_datasum = cpu_to_le32(crc);
 }
diff --git a/fs/nilfs2/sufile.c b/fs/nilfs2/sufile.c
index 0a0aba6..c5b7653 100644
--- a/fs/nilfs2/sufile.c
+++ b/fs/nilfs2/sufile.c
@@ -111,11 +111,11 @@ static void nilfs_sufile_mod_counter(struct buffer_head *header_bh,
 	struct nilfs_sufile_header *header;
 	void *kaddr;
 
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = kaddr + bh_offset(header_bh);
 	le64_add_cpu(&header->sh_ncleansegs, ncleanadd);
 	le64_add_cpu(&header->sh_ndirtysegs, ndirtyadd);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(header_bh);
 }
@@ -319,11 +319,11 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
 	ret = nilfs_sufile_get_header_block(sufile, &header_bh);
 	if (ret < 0)
 		goto out_sem;
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = kaddr + bh_offset(header_bh);
 	ncleansegs = le64_to_cpu(header->sh_ncleansegs);
 	last_alloc = le64_to_cpu(header->sh_last_alloc);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nsegments = nilfs_sufile_get_nsegments(sufile);
 	maxsegnum = sui->allocmax;
@@ -356,7 +356,7 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
 							   &su_bh);
 		if (ret < 0)
 			goto out_header;
-		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(su_bh->b_page);
 		su = nilfs_sufile_block_get_segment_usage(
 			sufile, segnum, su_bh, kaddr);
 
@@ -367,14 +367,14 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
 				continue;
 			/* found a clean segment */
 			nilfs_segment_usage_set_dirty(su);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 
-			kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+			kaddr = kmap_atomic(header_bh->b_page);
 			header = kaddr + bh_offset(header_bh);
 			le64_add_cpu(&header->sh_ncleansegs, -1);
 			le64_add_cpu(&header->sh_ndirtysegs, 1);
 			header->sh_last_alloc = cpu_to_le64(segnum);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 
 			sui->ncleansegs--;
 			mark_buffer_dirty(header_bh);
@@ -385,7 +385,7 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
 			goto out_header;
 		}
 
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(su_bh);
 	}
 
@@ -407,16 +407,16 @@ void nilfs_sufile_do_cancel_free(struct inode *sufile, __u64 segnum,
 	struct nilfs_segment_usage *su;
 	void *kaddr;
 
-	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(su_bh->b_page);
 	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
 	if (unlikely(!nilfs_segment_usage_clean(su))) {
 		printk(KERN_WARNING "%s: segment %llu must be clean\n",
 		       __func__, (unsigned long long)segnum);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		return;
 	}
 	nilfs_segment_usage_set_dirty(su);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nilfs_sufile_mod_counter(header_bh, -1, 1);
 	NILFS_SUI(sufile)->ncleansegs--;
@@ -433,11 +433,11 @@ void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
 	void *kaddr;
 	int clean, dirty;
 
-	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(su_bh->b_page);
 	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
 	if (su->su_flags == cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY) &&
 	    su->su_nblocks == cpu_to_le32(0)) {
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		return;
 	}
 	clean = nilfs_segment_usage_clean(su);
@@ -447,7 +447,7 @@ void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
 	su->su_lastmod = cpu_to_le64(0);
 	su->su_nblocks = cpu_to_le32(0);
 	su->su_flags = cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	nilfs_sufile_mod_counter(header_bh, clean ? (u64)-1 : 0, dirty ? 0 : 1);
 	NILFS_SUI(sufile)->ncleansegs -= clean;
@@ -464,12 +464,12 @@ void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
 	void *kaddr;
 	int sudirty;
 
-	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(su_bh->b_page);
 	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
 	if (nilfs_segment_usage_clean(su)) {
 		printk(KERN_WARNING "%s: segment %llu is already clean\n",
 		       __func__, (unsigned long long)segnum);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		return;
 	}
 	WARN_ON(nilfs_segment_usage_error(su));
@@ -477,7 +477,7 @@ void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
 
 	sudirty = nilfs_segment_usage_dirty(su);
 	nilfs_segment_usage_set_clean(su);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	mark_buffer_dirty(su_bh);
 
 	nilfs_sufile_mod_counter(header_bh, 1, sudirty ? (u64)-1 : 0);
@@ -525,13 +525,13 @@ int nilfs_sufile_set_segment_usage(struct inode *sufile, __u64 segnum,
 	if (ret < 0)
 		goto out_sem;
 
-	kaddr = kmap_atomic(bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(bh->b_page);
 	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr);
 	WARN_ON(nilfs_segment_usage_error(su));
 	if (modtime)
 		su->su_lastmod = cpu_to_le64(modtime);
 	su->su_nblocks = cpu_to_le32(nblocks);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(bh);
 	nilfs_mdt_mark_dirty(sufile);
@@ -572,7 +572,7 @@ int nilfs_sufile_get_stat(struct inode *sufile, struct nilfs_sustat *sustat)
 	if (ret < 0)
 		goto out_sem;
 
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = kaddr + bh_offset(header_bh);
 	sustat->ss_nsegs = nilfs_sufile_get_nsegments(sufile);
 	sustat->ss_ncleansegs = le64_to_cpu(header->sh_ncleansegs);
@@ -582,7 +582,7 @@ int nilfs_sufile_get_stat(struct inode *sufile, struct nilfs_sustat *sustat)
 	spin_lock(&nilfs->ns_last_segment_lock);
 	sustat->ss_prot_seq = nilfs->ns_prot_seq;
 	spin_unlock(&nilfs->ns_last_segment_lock);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(header_bh);
 
  out_sem:
@@ -598,15 +598,15 @@ void nilfs_sufile_do_set_error(struct inode *sufile, __u64 segnum,
 	void *kaddr;
 	int suclean;
 
-	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(su_bh->b_page);
 	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
 	if (nilfs_segment_usage_error(su)) {
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		return;
 	}
 	suclean = nilfs_segment_usage_clean(su);
 	nilfs_segment_usage_set_error(su);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (suclean) {
 		nilfs_sufile_mod_counter(header_bh, -1, 0);
@@ -675,7 +675,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
 			/* hole */
 			continue;
 		}
-		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(su_bh->b_page);
 		su = nilfs_sufile_block_get_segment_usage(
 			sufile, segnum, su_bh, kaddr);
 		su2 = su;
@@ -684,7 +684,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
 			     ~(1UL << NILFS_SEGMENT_USAGE_ERROR)) ||
 			    nilfs_segment_is_active(nilfs, segnum + j)) {
 				ret = -EBUSY;
-				kunmap_atomic(kaddr, KM_USER0);
+				kunmap_atomic(kaddr);
 				brelse(su_bh);
 				goto out_header;
 			}
@@ -696,7 +696,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
 				nc++;
 			}
 		}
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		if (nc > 0) {
 			mark_buffer_dirty(su_bh);
 			ncleaned += nc;
@@ -772,10 +772,10 @@ int nilfs_sufile_resize(struct inode *sufile, __u64 newnsegs)
 		sui->ncleansegs -= nsegs - newnsegs;
 	}
 
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = kaddr + bh_offset(header_bh);
 	header->sh_ncleansegs = cpu_to_le64(sui->ncleansegs);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	mark_buffer_dirty(header_bh);
 	nilfs_mdt_mark_dirty(sufile);
@@ -840,7 +840,7 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
 			continue;
 		}
 
-		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
+		kaddr = kmap_atomic(su_bh->b_page);
 		su = nilfs_sufile_block_get_segment_usage(
 			sufile, segnum, su_bh, kaddr);
 		for (j = 0; j < n;
@@ -853,7 +853,7 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
 				si->sui_flags |=
 					(1UL << NILFS_SEGMENT_USAGE_ACTIVE);
 		}
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		brelse(su_bh);
 	}
 	ret = nsegs;
@@ -902,10 +902,10 @@ int nilfs_sufile_read(struct super_block *sb, size_t susize,
 		goto failed;
 
 	sui = NILFS_SUI(sufile);
-	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
+	kaddr = kmap_atomic(header_bh->b_page);
 	header = kaddr + bh_offset(header_bh);
 	sui->ncleansegs = le64_to_cpu(header->sh_ncleansegs);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	brelse(header_bh);
 
 	sui->allocmax = nilfs_sufile_get_nsegments(sufile) - 1;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 43/62] ntfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (40 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 42/62] nilfs2: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 44/62] ocfs2: " Cong Wang
                   ` (20 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Anton Altaparmakov, linux-ntfs-dev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/ntfs/aops.c   |   20 ++++++++++----------
 fs/ntfs/attrib.c |   20 ++++++++++----------
 fs/ntfs/file.c   |   16 ++++++++--------
 fs/ntfs/super.c  |    8 ++++----
 4 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/fs/ntfs/aops.c b/fs/ntfs/aops.c
index 0b1e885b..fa9c05f 100644
--- a/fs/ntfs/aops.c
+++ b/fs/ntfs/aops.c
@@ -94,11 +94,11 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate)
 			if (file_ofs < init_size)
 				ofs = init_size - file_ofs;
 			local_irq_save(flags);
-			kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
+			kaddr = kmap_atomic(page);
 			memset(kaddr + bh_offset(bh) + ofs, 0,
 					bh->b_size - ofs);
 			flush_dcache_page(page);
-			kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
+			kunmap_atomic(kaddr);
 			local_irq_restore(flags);
 		}
 	} else {
@@ -147,11 +147,11 @@ static void ntfs_end_buffer_async_read(struct buffer_head *bh, int uptodate)
 		/* Should have been verified before we got here... */
 		BUG_ON(!recs);
 		local_irq_save(flags);
-		kaddr = kmap_atomic(page, KM_BIO_SRC_IRQ);
+		kaddr = kmap_atomic(page);
 		for (i = 0; i < recs; i++)
 			post_read_mst_fixup((NTFS_RECORD*)(kaddr +
 					i * rec_size), rec_size);
-		kunmap_atomic(kaddr, KM_BIO_SRC_IRQ);
+		kunmap_atomic(kaddr);
 		local_irq_restore(flags);
 		flush_dcache_page(page);
 		if (likely(page_uptodate && !PageError(page)))
@@ -504,7 +504,7 @@ retry_readpage:
 		/* Race with shrinking truncate. */
 		attr_len = i_size;
 	}
-	addr = kmap_atomic(page, KM_USER0);
+	addr = kmap_atomic(page);
 	/* Copy the data to the page. */
 	memcpy(addr, (u8*)ctx->attr +
 			le16_to_cpu(ctx->attr->data.resident.value_offset),
@@ -512,7 +512,7 @@ retry_readpage:
 	/* Zero the remainder of the page. */
 	memset(addr + attr_len, 0, PAGE_CACHE_SIZE - attr_len);
 	flush_dcache_page(page);
-	kunmap_atomic(addr, KM_USER0);
+	kunmap_atomic(addr);
 put_unm_err_out:
 	ntfs_attr_put_search_ctx(ctx);
 unm_err_out:
@@ -746,14 +746,14 @@ lock_retry_remap:
 			unsigned long *bpos, *bend;
 
 			/* Check if the buffer is zero. */
-			kaddr = kmap_atomic(page, KM_USER0);
+			kaddr = kmap_atomic(page);
 			bpos = (unsigned long *)(kaddr + bh_offset(bh));
 			bend = (unsigned long *)((u8*)bpos + blocksize);
 			do {
 				if (unlikely(*bpos))
 					break;
 			} while (likely(++bpos < bend));
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			if (bpos == bend) {
 				/*
 				 * Buffer is zero and sparse, no need to write
@@ -1495,14 +1495,14 @@ retry_writepage:
 		/* Shrinking cannot fail. */
 		BUG_ON(err);
 	}
-	addr = kmap_atomic(page, KM_USER0);
+	addr = kmap_atomic(page);
 	/* Copy the data from the page to the mft record. */
 	memcpy((u8*)ctx->attr +
 			le16_to_cpu(ctx->attr->data.resident.value_offset),
 			addr, attr_len);
 	/* Zero out of bounds area in the page cache page. */
 	memset(addr + attr_len, 0, PAGE_CACHE_SIZE - attr_len);
-	kunmap_atomic(addr, KM_USER0);
+	kunmap_atomic(addr);
 	flush_dcache_page(page);
 	flush_dcache_mft_record_page(ctx->ntfs_ino);
 	/* We are done with the page. */
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c
index f14fde2..08c9bcd 100644
--- a/fs/ntfs/attrib.c
+++ b/fs/ntfs/attrib.c
@@ -1656,12 +1656,12 @@ int ntfs_attr_make_non_resident(ntfs_inode *ni, const u32 data_size)
 	attr_size = le32_to_cpu(a->data.resident.value_length);
 	BUG_ON(attr_size != data_size);
 	if (page && !PageUptodate(page)) {
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memcpy(kaddr, (u8*)a +
 				le16_to_cpu(a->data.resident.value_offset),
 				attr_size);
 		memset(kaddr + attr_size, 0, PAGE_CACHE_SIZE - attr_size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		flush_dcache_page(page);
 		SetPageUptodate(page);
 	}
@@ -1806,9 +1806,9 @@ undo_err_out:
 			sizeof(a->data.resident.reserved));
 	/* Copy the data from the page back to the attribute value. */
 	if (page) {
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memcpy((u8*)a + mp_ofs, kaddr, attr_size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 	/* Setup the allocated size in the ntfs inode in case it changed. */
 	write_lock_irqsave(&ni->size_lock, flags);
@@ -2540,10 +2540,10 @@ int ntfs_attr_set(ntfs_inode *ni, const s64 ofs, const s64 cnt, const u8 val)
 		size = PAGE_CACHE_SIZE;
 		if (idx == end)
 			size = end_ofs;
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memset(kaddr + start_ofs, val, size - start_ofs);
 		flush_dcache_page(page);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		set_page_dirty(page);
 		page_cache_release(page);
 		balance_dirty_pages_ratelimited(mapping);
@@ -2561,10 +2561,10 @@ int ntfs_attr_set(ntfs_inode *ni, const s64 ofs, const s64 cnt, const u8 val)
 					"page (index 0x%lx).", idx);
 			return -ENOMEM;
 		}
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memset(kaddr, val, PAGE_CACHE_SIZE);
 		flush_dcache_page(page);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		/*
 		 * If the page has buffers, mark them uptodate since buffer
 		 * state and not page state is definitive in 2.6 kernels.
@@ -2598,10 +2598,10 @@ int ntfs_attr_set(ntfs_inode *ni, const s64 ofs, const s64 cnt, const u8 val)
 					"(error, index 0x%lx).", idx);
 			return PTR_ERR(page);
 		}
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memset(kaddr, val, end_ofs);
 		flush_dcache_page(page);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		set_page_dirty(page);
 		page_cache_release(page);
 		balance_dirty_pages_ratelimited(mapping);
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index c587e2d..8639169 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -704,7 +704,7 @@ map_buffer_cached:
 				u8 *kaddr;
 				unsigned pofs;
 					
-				kaddr = kmap_atomic(page, KM_USER0);
+				kaddr = kmap_atomic(page);
 				if (bh_pos < pos) {
 					pofs = bh_pos & ~PAGE_CACHE_MASK;
 					memset(kaddr + pofs, 0, pos - bh_pos);
@@ -713,7 +713,7 @@ map_buffer_cached:
 					pofs = end & ~PAGE_CACHE_MASK;
 					memset(kaddr + pofs, 0, bh_end - end);
 				}
-				kunmap_atomic(kaddr, KM_USER0);
+				kunmap_atomic(kaddr);
 				flush_dcache_page(page);
 			}
 			continue;
@@ -1287,9 +1287,9 @@ static inline size_t ntfs_copy_from_user(struct page **pages,
 		len = PAGE_CACHE_SIZE - ofs;
 		if (len > bytes)
 			len = bytes;
-		addr = kmap_atomic(*pages, KM_USER0);
+		addr = kmap_atomic(*pages);
 		left = __copy_from_user_inatomic(addr + ofs, buf, len);
-		kunmap_atomic(addr, KM_USER0);
+		kunmap_atomic(addr);
 		if (unlikely(left)) {
 			/* Do it the slow way. */
 			addr = kmap(*pages);
@@ -1401,10 +1401,10 @@ static inline size_t ntfs_copy_from_user_iovec(struct page **pages,
 		len = PAGE_CACHE_SIZE - ofs;
 		if (len > bytes)
 			len = bytes;
-		addr = kmap_atomic(*pages, KM_USER0);
+		addr = kmap_atomic(*pages);
 		copied = __ntfs_copy_from_user_iovec_inatomic(addr + ofs,
 				*iov, *iov_ofs, len);
-		kunmap_atomic(addr, KM_USER0);
+		kunmap_atomic(addr);
 		if (unlikely(copied != len)) {
 			/* Do it the slow way. */
 			addr = kmap(*pages);
@@ -1691,7 +1691,7 @@ static int ntfs_commit_pages_after_write(struct page **pages,
 	BUG_ON(end > le32_to_cpu(a->length) -
 			le16_to_cpu(a->data.resident.value_offset));
 	kattr = (u8*)a + le16_to_cpu(a->data.resident.value_offset);
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	/* Copy the received data from the page to the mft record. */
 	memcpy(kattr + pos, kaddr + pos, bytes);
 	/* Update the attribute length if necessary. */
@@ -1713,7 +1713,7 @@ static int ntfs_commit_pages_after_write(struct page **pages,
 		flush_dcache_page(page);
 		SetPageUptodate(page);
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	/* Update initialized_size/i_size if necessary. */
 	read_lock_irqsave(&ni->size_lock, flags);
 	initialized_size = ni->initialized_size;
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index b52706d..2978cd3 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -2475,7 +2475,7 @@ static s64 get_nr_free_clusters(ntfs_volume *vol)
 			nr_free -= PAGE_CACHE_SIZE * 8;
 			continue;
 		}
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		/*
 		 * Subtract the number of set bits. If this
 		 * is the last page and it is partial we don't really care as
@@ -2485,7 +2485,7 @@ static s64 get_nr_free_clusters(ntfs_volume *vol)
 		 */
 		nr_free -= bitmap_weight(kaddr,
 					PAGE_CACHE_SIZE * BITS_PER_BYTE);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		page_cache_release(page);
 	}
 	ntfs_debug("Finished reading $Bitmap, last index = 0x%lx.", index - 1);
@@ -2546,7 +2546,7 @@ static unsigned long __get_nr_free_mft_records(ntfs_volume *vol,
 			nr_free -= PAGE_CACHE_SIZE * 8;
 			continue;
 		}
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		/*
 		 * Subtract the number of set bits. If this
 		 * is the last page and it is partial we don't really care as
@@ -2556,7 +2556,7 @@ static unsigned long __get_nr_free_mft_records(ntfs_volume *vol,
 		 */
 		nr_free -= bitmap_weight(kaddr,
 					PAGE_CACHE_SIZE * BITS_PER_BYTE);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		page_cache_release(page);
 	}
 	ntfs_debug("Finished reading $MFT/$BITMAP, last index = 0x%lx.",
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 44/62] ocfs2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (41 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 43/62] ntfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-12-01 20:18   ` Joel Becker
  2011-11-27  5:27 ` [PATCH 45/62] reiserfs: " Cong Wang
                   ` (19 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Mark Fasheh, Joel Becker, ocfs2-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/ocfs2/aops.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index c1efe93..61f93a5 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -102,7 +102,7 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock,
 		 * copy, the data is still good. */
 		if (buffer_jbd(buffer_cache_bh)
 		    && ocfs2_inode_is_new(inode)) {
-			kaddr = kmap_atomic(bh_result->b_page, KM_USER0);
+			kaddr = kmap_atomic(bh_result->b_page);
 			if (!kaddr) {
 				mlog(ML_ERROR, "couldn't kmap!\n");
 				goto bail;
@@ -110,7 +110,7 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock,
 			memcpy(kaddr + (bh_result->b_size * iblock),
 			       buffer_cache_bh->b_data,
 			       bh_result->b_size);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			set_buffer_uptodate(bh_result);
 		}
 		brelse(buffer_cache_bh);
@@ -236,13 +236,13 @@ int ocfs2_read_inline_data(struct inode *inode, struct page *page,
 		return -EROFS;
 	}
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (size)
 		memcpy(kaddr, di->id2.i_data.id_data, size);
 	/* Clear the remaining part of the page */
 	memset(kaddr + size, 0, PAGE_CACHE_SIZE - size);
 	flush_dcache_page(page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	SetPageUptodate(page);
 
@@ -671,7 +671,7 @@ static void ocfs2_clear_page_regions(struct page *page,
 
 	ocfs2_figure_cluster_boundaries(osb, cpos, &cluster_start, &cluster_end);
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 
 	if (from || to) {
 		if (from > cluster_start)
@@ -682,7 +682,7 @@ static void ocfs2_clear_page_regions(struct page *page,
 		memset(kaddr + cluster_start, 0, cluster_end - cluster_start);
 	}
 
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 
 /*
@@ -1928,9 +1928,9 @@ static void ocfs2_write_end_inline(struct inode *inode, loff_t pos,
 		}
 	}
 
-	kaddr = kmap_atomic(wc->w_target_page, KM_USER0);
+	kaddr = kmap_atomic(wc->w_target_page);
 	memcpy(di->id2.i_data.id_data + pos, kaddr + pos, *copied);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	trace_ocfs2_write_end_inline(
 	     (unsigned long long)OCFS2_I(inode)->ip_blkno,
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 45/62] reiserfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (42 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 44/62] ocfs2: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 46/62] squashfs: " Cong Wang
                   ` (18 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, reiserfs-devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/reiserfs/stree.c           |    4 ++--
 fs/reiserfs/tail_conversion.c |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/reiserfs/stree.c b/fs/reiserfs/stree.c
index 313d39d..77df82f 100644
--- a/fs/reiserfs/stree.c
+++ b/fs/reiserfs/stree.c
@@ -1284,12 +1284,12 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th,
 		 ** -clm
 		 */
 
-		data = kmap_atomic(un_bh->b_page, KM_USER0);
+		data = kmap_atomic(un_bh->b_page);
 		off = ((le_ih_k_offset(&s_ih) - 1) & (PAGE_CACHE_SIZE - 1));
 		memcpy(data + off,
 		       B_I_PITEM(PATH_PLAST_BUFFER(path), &s_ih),
 		       ret_value);
-		kunmap_atomic(data, KM_USER0);
+		kunmap_atomic(data);
 	}
 	/* Perform balancing after all resources have been collected at once. */
 	do_balance(&s_del_balance, NULL, NULL, M_DELETE);
diff --git a/fs/reiserfs/tail_conversion.c b/fs/reiserfs/tail_conversion.c
index d7f6e51..8f546bd 100644
--- a/fs/reiserfs/tail_conversion.c
+++ b/fs/reiserfs/tail_conversion.c
@@ -128,9 +128,9 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode,
 	if (up_to_date_bh) {
 		unsigned pgoff =
 		    (tail_offset + total_tail - 1) & (PAGE_CACHE_SIZE - 1);
-		char *kaddr = kmap_atomic(up_to_date_bh->b_page, KM_USER0);
+		char *kaddr = kmap_atomic(up_to_date_bh->b_page);
 		memset(kaddr + pgoff, 0, blk_size - total_tail);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 
 	REISERFS_I(inode)->i_first_direct_byte = U32_MAX;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 46/62] squashfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (43 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 45/62] reiserfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 47/62] ubifs: " Cong Wang
                   ` (17 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Phillip Lougher


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/squashfs/file.c    |    8 ++++----
 fs/squashfs/symlink.c |    4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c
index 38bb1c6..8ca62c2 100644
--- a/fs/squashfs/file.c
+++ b/fs/squashfs/file.c
@@ -464,10 +464,10 @@ static int squashfs_readpage(struct file *file, struct page *page)
 		if (PageUptodate(push_page))
 			goto skip_page;
 
-		pageaddr = kmap_atomic(push_page, KM_USER0);
+		pageaddr = kmap_atomic(push_page);
 		squashfs_copy_data(pageaddr, buffer, offset, avail);
 		memset(pageaddr + avail, 0, PAGE_CACHE_SIZE - avail);
-		kunmap_atomic(pageaddr, KM_USER0);
+		kunmap_atomic(pageaddr);
 		flush_dcache_page(push_page);
 		SetPageUptodate(push_page);
 skip_page:
@@ -484,9 +484,9 @@ skip_page:
 error_out:
 	SetPageError(page);
 out:
-	pageaddr = kmap_atomic(page, KM_USER0);
+	pageaddr = kmap_atomic(page);
 	memset(pageaddr, 0, PAGE_CACHE_SIZE);
-	kunmap_atomic(pageaddr, KM_USER0);
+	kunmap_atomic(pageaddr);
 	flush_dcache_page(page);
 	if (!PageError(page))
 		SetPageUptodate(page);
diff --git a/fs/squashfs/symlink.c b/fs/squashfs/symlink.c
index 1191817..12806df 100644
--- a/fs/squashfs/symlink.c
+++ b/fs/squashfs/symlink.c
@@ -90,14 +90,14 @@ static int squashfs_symlink_readpage(struct file *file, struct page *page)
 			goto error_out;
 		}
 
-		pageaddr = kmap_atomic(page, KM_USER0);
+		pageaddr = kmap_atomic(page);
 		copied = squashfs_copy_data(pageaddr + bytes, entry, offset,
 								length - bytes);
 		if (copied == length - bytes)
 			memset(pageaddr + length, 0, PAGE_CACHE_SIZE - length);
 		else
 			block = entry->next_index;
-		kunmap_atomic(pageaddr, KM_USER0);
+		kunmap_atomic(pageaddr);
 		squashfs_cache_put(entry);
 	}
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 47/62] ubifs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (44 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 46/62] squashfs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 48/62] udf: " Cong Wang
                   ` (16 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Artem Bityutskiy, Adrian Hunter, linux-mtd


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/ubifs/file.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index f9c234b..5c8f6dc 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -1042,10 +1042,10 @@ static int ubifs_writepage(struct page *page, struct writeback_control *wbc)
 	 * the page size, the remaining memory is zeroed when mapped, and
 	 * writes to that region are not written out to the file."
 	 */
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memset(kaddr + len, 0, PAGE_CACHE_SIZE - len);
 	flush_dcache_page(page);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	if (i_size > synced_i_size) {
 		err = inode->i_sb->s_op->write_inode(inode, NULL);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 48/62] udf: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (45 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 47/62] ubifs: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 14:16   ` Jan Kara
  2011-11-27  5:27 ` [PATCH 49/62] kdb: " Cong Wang
                   ` (15 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Jan Kara


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 fs/udf/file.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/udf/file.c b/fs/udf/file.c
index d8ffa7c..95b8d91 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -87,10 +87,10 @@ static int udf_adinicb_write_end(struct file *file,
 	char *kaddr;
 	struct udf_inode_info *iinfo = UDF_I(inode);
 
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr + offset,
 		kaddr + offset, copied);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	return simple_write_end(file, mapping, pos, len, copied, page, fsdata);
 }
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 49/62] kdb: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (46 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 48/62] udf: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 50/62] power: " Cong Wang
                   ` (14 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Jason Wessel, Lucas De Marchi, kgdb-bugreport


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 kernel/debug/kdb/kdb_support.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
index 5532dd3..e593fd7 100644
--- a/kernel/debug/kdb/kdb_support.c
+++ b/kernel/debug/kdb/kdb_support.c
@@ -384,9 +384,9 @@ static int kdb_getphys(void *res, unsigned long addr, size_t size)
 	if (!pfn_valid(pfn))
 		return 1;
 	page = pfn_to_page(pfn);
-	vaddr = kmap_atomic(page, KM_KDB);
+	vaddr = kmap_atomic(page);
 	memcpy(res, vaddr + (addr & (PAGE_SIZE - 1)), size);
-	kunmap_atomic(vaddr, KM_KDB);
+	kunmap_atomic(vaddr);
 
 	return 0;
 }
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 50/62] power: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (47 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 49/62] kdb: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27 11:38   ` Rafael J. Wysocki
  2011-11-27  5:27 ` [PATCH 51/62] lib: " Cong Wang
                   ` (13 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Pavel Machek, Rafael J. Wysocki, Len Brown, linux-pm


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 kernel/power/snapshot.c |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
index cbe2c14..8018450 100644
--- a/kernel/power/snapshot.c
+++ b/kernel/power/snapshot.c
@@ -993,20 +993,20 @@ static void copy_data_page(unsigned long dst_pfn, unsigned long src_pfn)
 	s_page = pfn_to_page(src_pfn);
 	d_page = pfn_to_page(dst_pfn);
 	if (PageHighMem(s_page)) {
-		src = kmap_atomic(s_page, KM_USER0);
-		dst = kmap_atomic(d_page, KM_USER1);
+		src = kmap_atomic(s_page);
+		dst = kmap_atomic(d_page);
 		do_copy_page(dst, src);
-		kunmap_atomic(dst, KM_USER1);
-		kunmap_atomic(src, KM_USER0);
+		kunmap_atomic(dst);
+		kunmap_atomic(src);
 	} else {
 		if (PageHighMem(d_page)) {
 			/* Page pointed to by src may contain some kernel
 			 * data modified by kmap_atomic()
 			 */
 			safe_copy_page(buffer, s_page);
-			dst = kmap_atomic(d_page, KM_USER0);
+			dst = kmap_atomic(d_page);
 			copy_page(dst, buffer);
-			kunmap_atomic(dst, KM_USER0);
+			kunmap_atomic(dst);
 		} else {
 			safe_copy_page(page_address(d_page), s_page);
 		}
@@ -1721,9 +1721,9 @@ int snapshot_read_next(struct snapshot_handle *handle)
 			 */
 			void *kaddr;
 
-			kaddr = kmap_atomic(page, KM_USER0);
+			kaddr = kmap_atomic(page);
 			copy_page(buffer, kaddr);
-			kunmap_atomic(kaddr, KM_USER0);
+			kunmap_atomic(kaddr);
 			handle->buffer = buffer;
 		} else {
 			handle->buffer = page_address(page);
@@ -2007,9 +2007,9 @@ static void copy_last_highmem_page(void)
 	if (last_highmem_page) {
 		void *dst;
 
-		dst = kmap_atomic(last_highmem_page, KM_USER0);
+		dst = kmap_atomic(last_highmem_page);
 		copy_page(dst, buffer);
-		kunmap_atomic(dst, KM_USER0);
+		kunmap_atomic(dst);
 		last_highmem_page = NULL;
 	}
 }
@@ -2302,13 +2302,13 @@ swap_two_pages_data(struct page *p1, struct page *p2, void *buf)
 {
 	void *kaddr1, *kaddr2;
 
-	kaddr1 = kmap_atomic(p1, KM_USER0);
-	kaddr2 = kmap_atomic(p2, KM_USER1);
+	kaddr1 = kmap_atomic(p1);
+	kaddr2 = kmap_atomic(p2);
 	copy_page(buf, kaddr1);
 	copy_page(kaddr1, kaddr2);
 	copy_page(kaddr2, buf);
-	kunmap_atomic(kaddr2, KM_USER1);
-	kunmap_atomic(kaddr1, KM_USER0);
+	kunmap_atomic(kaddr2);
+	kunmap_atomic(kaddr1);
 }
 
 /**
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 51/62] lib: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (48 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 50/62] power: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 52/62] mm: " Cong Wang
                   ` (12 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, FUJITA Tomonori, Konrad Rzeszutek Wilk


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 lib/scatterlist.c |    4 ++--
 lib/swiotlb.c     |    5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 4ceb05d..33b2cbb 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -390,7 +390,7 @@ bool sg_miter_next(struct sg_mapping_iter *miter)
 	miter->consumed = miter->length;
 
 	if (miter->__flags & SG_MITER_ATOMIC)
-		miter->addr = kmap_atomic(miter->page, KM_BIO_SRC_IRQ) + off;
+		miter->addr = kmap_atomic(miter->page) + off;
 	else
 		miter->addr = kmap(miter->page) + off;
 
@@ -424,7 +424,7 @@ void sg_miter_stop(struct sg_mapping_iter *miter)
 
 		if (miter->__flags & SG_MITER_ATOMIC) {
 			WARN_ON(!irqs_disabled());
-			kunmap_atomic(miter->addr, KM_BIO_SRC_IRQ);
+			kunmap_atomic(miter->addr);
 		} else
 			kunmap(miter->page);
 
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index 99093b3..78361bc 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -348,13 +348,12 @@ void swiotlb_bounce(phys_addr_t phys, char *dma_addr, size_t size,
 			sz = min_t(size_t, PAGE_SIZE - offset, size);
 
 			local_irq_save(flags);
-			buffer = kmap_atomic(pfn_to_page(pfn),
-					     KM_BOUNCE_READ);
+			buffer = kmap_atomic(pfn_to_page(pfn));
 			if (dir == DMA_TO_DEVICE)
 				memcpy(dma_addr, buffer + offset, sz);
 			else
 				memcpy(buffer + offset, dma_addr, sz);
-			kunmap_atomic(buffer, KM_BOUNCE_READ);
+			kunmap_atomic(buffer);
 			local_irq_restore(flags);
 
 			size -= sz;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 52/62] mm: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (49 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 51/62] lib: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 53/62] net: " Cong Wang
                   ` (11 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Hugh Dickins, Paul Gortmaker, David Vrabel,
	Jens Axboe, Minchan Kim, KAMEZAWA Hiroyuki, Al Viro,
	Andrea Arcangeli, Mel Gorman, David Rientjes, Michel Lespinasse,
	Cesar Eduardo Barros, Eric B Munson, Pekka Enberg, Joe Perches,
	Paul E. McKenney, linux-mm


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 mm/bounce.c   |    4 ++--
 mm/filemap.c  |    8 ++++----
 mm/ksm.c      |   12 ++++++------
 mm/memory.c   |    4 ++--
 mm/shmem.c    |    4 ++--
 mm/swapfile.c |   30 +++++++++++++++---------------
 mm/vmalloc.c  |    8 ++++----
 7 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/mm/bounce.c b/mm/bounce.c
index 4e9ae72..d1be02c 100644
--- a/mm/bounce.c
+++ b/mm/bounce.c
@@ -50,9 +50,9 @@ static void bounce_copy_vec(struct bio_vec *to, unsigned char *vfrom)
 	unsigned char *vto;
 
 	local_irq_save(flags);
-	vto = kmap_atomic(to->bv_page, KM_BOUNCE_READ);
+	vto = kmap_atomic(to->bv_page);
 	memcpy(vto + to->bv_offset, vfrom, to->bv_len);
-	kunmap_atomic(vto, KM_BOUNCE_READ);
+	kunmap_atomic(vto);
 	local_irq_restore(flags);
 }
 
diff --git a/mm/filemap.c b/mm/filemap.c
index c0018f2..1c5f8f7 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -1332,10 +1332,10 @@ int file_read_actor(read_descriptor_t *desc, struct page *page,
 	 * taking the kmap.
 	 */
 	if (!fault_in_pages_writeable(desc->arg.buf, size)) {
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		left = __copy_to_user_inatomic(desc->arg.buf,
 						kaddr + offset, size);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		if (left == 0)
 			goto success;
 	}
@@ -2062,7 +2062,7 @@ size_t iov_iter_copy_from_user_atomic(struct page *page,
 	size_t copied;
 
 	BUG_ON(!in_atomic());
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (likely(i->nr_segs == 1)) {
 		int left;
 		char __user *buf = i->iov->iov_base + i->iov_offset;
@@ -2072,7 +2072,7 @@ size_t iov_iter_copy_from_user_atomic(struct page *page,
 		copied = __iovec_copy_from_user_inatomic(kaddr + offset,
 						i->iov, i->iov_offset, bytes);
 	}
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 
 	return copied;
 }
diff --git a/mm/ksm.c b/mm/ksm.c
index 310544a..a6d3fb7 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -672,9 +672,9 @@ error:
 static u32 calc_checksum(struct page *page)
 {
 	u32 checksum;
-	void *addr = kmap_atomic(page, KM_USER0);
+	void *addr = kmap_atomic(page);
 	checksum = jhash2(addr, PAGE_SIZE / 4, 17);
-	kunmap_atomic(addr, KM_USER0);
+	kunmap_atomic(addr);
 	return checksum;
 }
 
@@ -683,11 +683,11 @@ static int memcmp_pages(struct page *page1, struct page *page2)
 	char *addr1, *addr2;
 	int ret;
 
-	addr1 = kmap_atomic(page1, KM_USER0);
-	addr2 = kmap_atomic(page2, KM_USER1);
+	addr1 = kmap_atomic(page1);
+	addr2 = kmap_atomic(page2);
 	ret = memcmp(addr1, addr2, PAGE_SIZE);
-	kunmap_atomic(addr2, KM_USER1);
-	kunmap_atomic(addr1, KM_USER0);
+	kunmap_atomic(addr2);
+	kunmap_atomic(addr1);
 	return ret;
 }
 
diff --git a/mm/memory.c b/mm/memory.c
index 829d437..07ace87 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -2428,7 +2428,7 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
 	 * fails, we just zero-fill it. Live with it.
 	 */
 	if (unlikely(!src)) {
-		void *kaddr = kmap_atomic(dst, KM_USER0);
+		void *kaddr = kmap_atomic(dst);
 		void __user *uaddr = (void __user *)(va & PAGE_MASK);
 
 		/*
@@ -2439,7 +2439,7 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
 		 */
 		if (__copy_from_user_inatomic(kaddr, uaddr, PAGE_SIZE))
 			clear_page(kaddr);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		flush_dcache_page(dst);
 	} else
 		copy_user_highpage(dst, src, va, vma);
diff --git a/mm/shmem.c b/mm/shmem.c
index d672250..5bc679d 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1631,9 +1631,9 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s
 		}
 		inode->i_mapping->a_ops = &shmem_aops;
 		inode->i_op = &shmem_symlink_inode_operations;
-		kaddr = kmap_atomic(page, KM_USER0);
+		kaddr = kmap_atomic(page);
 		memcpy(kaddr, symname, len);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 		set_page_dirty(page);
 		unlock_page(page);
 		page_cache_release(page);
diff --git a/mm/swapfile.c b/mm/swapfile.c
index b1cd120..94d8a62 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -2426,9 +2426,9 @@ int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
 		if (!(count & COUNT_CONTINUED))
 			goto out;
 
-		map = kmap_atomic(list_page, KM_USER0) + offset;
+		map = kmap_atomic(list_page) + offset;
 		count = *map;
-		kunmap_atomic(map, KM_USER0);
+		kunmap_atomic(map);
 
 		/*
 		 * If this continuation count now has some space in it,
@@ -2471,7 +2471,7 @@ static bool swap_count_continued(struct swap_info_struct *si,
 
 	offset &= ~PAGE_MASK;
 	page = list_entry(head->lru.next, struct page, lru);
-	map = kmap_atomic(page, KM_USER0) + offset;
+	map = kmap_atomic(page) + offset;
 
 	if (count == SWAP_MAP_MAX)	/* initial increment from swap_map */
 		goto init_map;		/* jump over SWAP_CONT_MAX checks */
@@ -2481,26 +2481,26 @@ static bool swap_count_continued(struct swap_info_struct *si,
 		 * Think of how you add 1 to 999
 		 */
 		while (*map == (SWAP_CONT_MAX | COUNT_CONTINUED)) {
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 			page = list_entry(page->lru.next, struct page, lru);
 			BUG_ON(page == head);
-			map = kmap_atomic(page, KM_USER0) + offset;
+			map = kmap_atomic(page) + offset;
 		}
 		if (*map == SWAP_CONT_MAX) {
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 			page = list_entry(page->lru.next, struct page, lru);
 			if (page == head)
 				return false;	/* add count continuation */
-			map = kmap_atomic(page, KM_USER0) + offset;
+			map = kmap_atomic(page) + offset;
 init_map:		*map = 0;		/* we didn't zero the page */
 		}
 		*map += 1;
-		kunmap_atomic(map, KM_USER0);
+		kunmap_atomic(map);
 		page = list_entry(page->lru.prev, struct page, lru);
 		while (page != head) {
-			map = kmap_atomic(page, KM_USER0) + offset;
+			map = kmap_atomic(page) + offset;
 			*map = COUNT_CONTINUED;
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 			page = list_entry(page->lru.prev, struct page, lru);
 		}
 		return true;			/* incremented */
@@ -2511,22 +2511,22 @@ init_map:		*map = 0;		/* we didn't zero the page */
 		 */
 		BUG_ON(count != COUNT_CONTINUED);
 		while (*map == COUNT_CONTINUED) {
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 			page = list_entry(page->lru.next, struct page, lru);
 			BUG_ON(page == head);
-			map = kmap_atomic(page, KM_USER0) + offset;
+			map = kmap_atomic(page) + offset;
 		}
 		BUG_ON(*map == 0);
 		*map -= 1;
 		if (*map == 0)
 			count = 0;
-		kunmap_atomic(map, KM_USER0);
+		kunmap_atomic(map);
 		page = list_entry(page->lru.prev, struct page, lru);
 		while (page != head) {
-			map = kmap_atomic(page, KM_USER0) + offset;
+			map = kmap_atomic(page) + offset;
 			*map = SWAP_CONT_MAX | count;
 			count = COUNT_CONTINUED;
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 			page = list_entry(page->lru.prev, struct page, lru);
 		}
 		return count == COUNT_CONTINUED;
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 3231bf3..1a39dca 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1879,9 +1879,9 @@ static int aligned_vread(char *buf, char *addr, unsigned long count)
 			 * we can expect USER0 is not used (see vread/vwrite's
 			 * function description)
 			 */
-			void *map = kmap_atomic(p, KM_USER0);
+			void *map = kmap_atomic(p);
 			memcpy(buf, map + offset, length);
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 		} else
 			memset(buf, 0, length);
 
@@ -1918,9 +1918,9 @@ static int aligned_vwrite(char *buf, char *addr, unsigned long count)
 			 * we can expect USER0 is not used (see vread/vwrite's
 			 * function description)
 			 */
-			void *map = kmap_atomic(p, KM_USER0);
+			void *map = kmap_atomic(p);
 			memcpy(map + offset, buf, length);
-			kunmap_atomic(map, KM_USER0);
+			kunmap_atomic(map);
 		}
 		addr += length;
 		buf += length;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 53/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (50 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 52/62] mm: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  6:12   ` David Miller
  2011-11-27  5:27 ` [PATCH 54/62] rds: " Cong Wang
                   ` (10 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, David S. Miller, Ian Campbell, netdev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 net/core/kmap_skb.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/core/kmap_skb.h b/net/core/kmap_skb.h
index 81e1ed7..52d0a44 100644
--- a/net/core/kmap_skb.h
+++ b/net/core/kmap_skb.h
@@ -7,12 +7,12 @@ static inline void *kmap_skb_frag(const skb_frag_t *frag)
 
 	local_bh_disable();
 #endif
-	return kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ);
+	return kmap_atomic(skb_frag_page(frag));
 }
 
 static inline void kunmap_skb_frag(void *vaddr)
 {
-	kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
+	kunmap_atomic(vaddr);
 #ifdef CONFIG_HIGHMEM
 	local_bh_enable();
 #endif
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 54/62] rds: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (51 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 53/62] net: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  6:13   ` David Miller
  2011-11-27  5:27 ` [PATCH 55/62] sunrpc: " Cong Wang
                   ` (9 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Venkat Venkatsubra, David S. Miller, rds-devel, netdev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 net/rds/ib_recv.c  |    7 +++----
 net/rds/info.c     |    6 +++---
 net/rds/iw_recv.c  |    7 +++----
 net/rds/loop.c     |    2 +-
 net/rds/rds.h      |    2 +-
 net/rds/recv.c     |    2 +-
 net/rds/tcp_recv.c |   11 ++++-------
 7 files changed, 16 insertions(+), 21 deletions(-)

diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
index e29e0ca..744a00d 100644
--- a/net/rds/ib_recv.c
+++ b/net/rds/ib_recv.c
@@ -763,7 +763,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
 		to_copy = min(RDS_FRAG_SIZE - frag_off, PAGE_SIZE - map_off);
 		BUG_ON(to_copy & 7); /* Must be 64bit aligned. */
 
-		addr = kmap_atomic(sg_page(&frag->f_sg), KM_SOFTIRQ0);
+		addr = kmap_atomic(sg_page(&frag->f_sg));
 
 		src = addr + frag_off;
 		dst = (void *)map->m_page_addrs[map_page] + map_off;
@@ -773,7 +773,7 @@ static void rds_ib_cong_recv(struct rds_connection *conn,
 			uncongested |= ~(*src) & *dst;
 			*dst++ = *src++;
 		}
-		kunmap_atomic(addr, KM_SOFTIRQ0);
+		kunmap_atomic(addr);
 
 		copied += to_copy;
 
@@ -919,8 +919,7 @@ static void rds_ib_process_recv(struct rds_connection *conn,
 			rds_ib_cong_recv(conn, ibinc);
 		else {
 			rds_recv_incoming(conn, conn->c_faddr, conn->c_laddr,
-					  &ibinc->ii_inc, GFP_ATOMIC,
-					  KM_SOFTIRQ0);
+					  &ibinc->ii_inc, GFP_ATOMIC);
 			state->ack_next = be64_to_cpu(hdr->h_sequence);
 			state->ack_next_valid = 1;
 		}
diff --git a/net/rds/info.c b/net/rds/info.c
index f1c016c..9a6b4f6 100644
--- a/net/rds/info.c
+++ b/net/rds/info.c
@@ -104,7 +104,7 @@ EXPORT_SYMBOL_GPL(rds_info_deregister_func);
 void rds_info_iter_unmap(struct rds_info_iterator *iter)
 {
 	if (iter->addr) {
-		kunmap_atomic(iter->addr, KM_USER0);
+		kunmap_atomic(iter->addr);
 		iter->addr = NULL;
 	}
 }
@@ -119,7 +119,7 @@ void rds_info_copy(struct rds_info_iterator *iter, void *data,
 
 	while (bytes) {
 		if (!iter->addr)
-			iter->addr = kmap_atomic(*iter->pages, KM_USER0);
+			iter->addr = kmap_atomic(*iter->pages);
 
 		this = min(bytes, PAGE_SIZE - iter->offset);
 
@@ -134,7 +134,7 @@ void rds_info_copy(struct rds_info_iterator *iter, void *data,
 		iter->offset += this;
 
 		if (iter->offset == PAGE_SIZE) {
-			kunmap_atomic(iter->addr, KM_USER0);
+			kunmap_atomic(iter->addr);
 			iter->addr = NULL;
 			iter->offset = 0;
 			iter->pages++;
diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
index 5e57347..0bd9b5e 100644
--- a/net/rds/iw_recv.c
+++ b/net/rds/iw_recv.c
@@ -598,7 +598,7 @@ static void rds_iw_cong_recv(struct rds_connection *conn,
 		to_copy = min(RDS_FRAG_SIZE - frag_off, PAGE_SIZE - map_off);
 		BUG_ON(to_copy & 7); /* Must be 64bit aligned. */
 
-		addr = kmap_atomic(frag->f_page, KM_SOFTIRQ0);
+		addr = kmap_atomic(frag->f_page);
 
 		src = addr + frag_off;
 		dst = (void *)map->m_page_addrs[map_page] + map_off;
@@ -608,7 +608,7 @@ static void rds_iw_cong_recv(struct rds_connection *conn,
 			uncongested |= ~(*src) & *dst;
 			*dst++ = *src++;
 		}
-		kunmap_atomic(addr, KM_SOFTIRQ0);
+		kunmap_atomic(addr);
 
 		copied += to_copy;
 
@@ -754,8 +754,7 @@ static void rds_iw_process_recv(struct rds_connection *conn,
 			rds_iw_cong_recv(conn, iwinc);
 		else {
 			rds_recv_incoming(conn, conn->c_faddr, conn->c_laddr,
-					  &iwinc->ii_inc, GFP_ATOMIC,
-					  KM_SOFTIRQ0);
+					  &iwinc->ii_inc, GFP_ATOMIC);
 			state->ack_next = be64_to_cpu(hdr->h_sequence);
 			state->ack_next_valid = 1;
 		}
diff --git a/net/rds/loop.c b/net/rds/loop.c
index bca6761..87ff2a8 100644
--- a/net/rds/loop.c
+++ b/net/rds/loop.c
@@ -79,7 +79,7 @@ static int rds_loop_xmit(struct rds_connection *conn, struct rds_message *rm,
 	rds_message_addref(rm);
 
 	rds_recv_incoming(conn, conn->c_laddr, conn->c_faddr, &rm->m_inc,
-			  GFP_KERNEL, KM_USER0);
+			  GFP_KERNEL);
 
 	rds_send_drop_acked(conn, be64_to_cpu(rm->m_inc.i_hdr.h_sequence),
 			    NULL);
diff --git a/net/rds/rds.h b/net/rds/rds.h
index 7eaba18..ec1d731 100644
--- a/net/rds/rds.h
+++ b/net/rds/rds.h
@@ -704,7 +704,7 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
 		  __be32 saddr);
 void rds_inc_put(struct rds_incoming *inc);
 void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr,
-		       struct rds_incoming *inc, gfp_t gfp, enum km_type km);
+		       struct rds_incoming *inc, gfp_t gfp);
 int rds_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
 		size_t size, int msg_flags);
 void rds_clear_recv_queue(struct rds_sock *rs);
diff --git a/net/rds/recv.c b/net/rds/recv.c
index bc3f8cd..5c6e9f1 100644
--- a/net/rds/recv.c
+++ b/net/rds/recv.c
@@ -155,7 +155,7 @@ static void rds_recv_incoming_exthdrs(struct rds_incoming *inc, struct rds_sock
  * tell us which roles the addrs in the conn are playing for this message.
  */
 void rds_recv_incoming(struct rds_connection *conn, __be32 saddr, __be32 daddr,
-		       struct rds_incoming *inc, gfp_t gfp, enum km_type km)
+		       struct rds_incoming *inc, gfp_t gfp)
 {
 	struct rds_sock *rs = NULL;
 	struct sock *sk;
diff --git a/net/rds/tcp_recv.c b/net/rds/tcp_recv.c
index 78205e2..6243258 100644
--- a/net/rds/tcp_recv.c
+++ b/net/rds/tcp_recv.c
@@ -169,7 +169,6 @@ static void rds_tcp_cong_recv(struct rds_connection *conn,
 struct rds_tcp_desc_arg {
 	struct rds_connection *conn;
 	gfp_t gfp;
-	enum km_type km;
 };
 
 static int rds_tcp_data_recv(read_descriptor_t *desc, struct sk_buff *skb,
@@ -255,7 +254,7 @@ static int rds_tcp_data_recv(read_descriptor_t *desc, struct sk_buff *skb,
 			else
 				rds_recv_incoming(conn, conn->c_faddr,
 						  conn->c_laddr, &tinc->ti_inc,
-						  arg->gfp, arg->km);
+						  arg->gfp);
 
 			tc->t_tinc_hdr_rem = sizeof(struct rds_header);
 			tc->t_tinc_data_rem = 0;
@@ -272,8 +271,7 @@ out:
 }
 
 /* the caller has to hold the sock lock */
-static int rds_tcp_read_sock(struct rds_connection *conn, gfp_t gfp,
-			     enum km_type km)
+static int rds_tcp_read_sock(struct rds_connection *conn, gfp_t gfp)
 {
 	struct rds_tcp_connection *tc = conn->c_transport_data;
 	struct socket *sock = tc->t_sock;
@@ -283,7 +281,6 @@ static int rds_tcp_read_sock(struct rds_connection *conn, gfp_t gfp,
 	/* It's like glib in the kernel! */
 	arg.conn = conn;
 	arg.gfp = gfp;
-	arg.km = km;
 	desc.arg.data = &arg;
 	desc.error = 0;
 	desc.count = 1; /* give more than one skb per call */
@@ -311,7 +308,7 @@ int rds_tcp_recv(struct rds_connection *conn)
 	rdsdebug("recv worker conn %p tc %p sock %p\n", conn, tc, sock);
 
 	lock_sock(sock->sk);
-	ret = rds_tcp_read_sock(conn, GFP_KERNEL, KM_USER0);
+	ret = rds_tcp_read_sock(conn, GFP_KERNEL);
 	release_sock(sock->sk);
 
 	return ret;
@@ -336,7 +333,7 @@ void rds_tcp_data_ready(struct sock *sk, int bytes)
 	ready = tc->t_orig_data_ready;
 	rds_tcp_stats_inc(s_tcp_data_ready_calls);
 
-	if (rds_tcp_read_sock(conn, GFP_ATOMIC, KM_SOFTIRQ0) == -ENOMEM)
+	if (rds_tcp_read_sock(conn, GFP_ATOMIC) == -ENOMEM)
 		queue_delayed_work(rds_wq, &conn->c_recv_w, 0);
 out:
 	read_unlock_bh(&sk->sk_callback_lock);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 55/62] sunrpc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (52 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 54/62] rds: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 56/62] tomoyo: " Cong Wang
                   ` (8 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, J. Bruce Fields, Neil Brown, Trond Myklebust,
	David S. Miller, Tom Tucker, linux-nfs, netdev


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 net/sunrpc/auth_gss/gss_krb5_wrap.c |    4 ++--
 net/sunrpc/socklib.c                |    4 ++--
 net/sunrpc/xdr.c                    |   20 ++++++++++----------
 net/sunrpc/xprtrdma/rpc_rdma.c      |    8 ++++----
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/net/sunrpc/auth_gss/gss_krb5_wrap.c b/net/sunrpc/auth_gss/gss_krb5_wrap.c
index 2763e3e..38f388c 100644
--- a/net/sunrpc/auth_gss/gss_krb5_wrap.c
+++ b/net/sunrpc/auth_gss/gss_krb5_wrap.c
@@ -82,9 +82,9 @@ gss_krb5_remove_padding(struct xdr_buf *buf, int blocksize)
 					>>PAGE_CACHE_SHIFT;
 		unsigned int offset = (buf->page_base + len - 1)
 					& (PAGE_CACHE_SIZE - 1);
-		ptr = kmap_atomic(buf->pages[last], KM_USER0);
+		ptr = kmap_atomic(buf->pages[last]);
 		pad = *(ptr + offset);
-		kunmap_atomic(ptr, KM_USER0);
+		kunmap_atomic(ptr);
 		goto out;
 	} else
 		len -= buf->page_len;
diff --git a/net/sunrpc/socklib.c b/net/sunrpc/socklib.c
index 145e6784..0a648c5 100644
--- a/net/sunrpc/socklib.c
+++ b/net/sunrpc/socklib.c
@@ -114,7 +114,7 @@ ssize_t xdr_partial_copy_from_skb(struct xdr_buf *xdr, unsigned int base, struct
 		}
 
 		len = PAGE_CACHE_SIZE;
-		kaddr = kmap_atomic(*ppage, KM_SKB_SUNRPC_DATA);
+		kaddr = kmap_atomic(*ppage);
 		if (base) {
 			len -= base;
 			if (pglen < len)
@@ -127,7 +127,7 @@ ssize_t xdr_partial_copy_from_skb(struct xdr_buf *xdr, unsigned int base, struct
 			ret = copy_actor(desc, kaddr, len);
 		}
 		flush_dcache_page(*ppage);
-		kunmap_atomic(kaddr, KM_SKB_SUNRPC_DATA);
+		kunmap_atomic(kaddr);
 		copied += ret;
 		if (ret != len || !desc->count)
 			goto out;
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
index 277ebd4..c04aff8 100644
--- a/net/sunrpc/xdr.c
+++ b/net/sunrpc/xdr.c
@@ -122,9 +122,9 @@ xdr_terminate_string(struct xdr_buf *buf, const u32 len)
 {
 	char *kaddr;
 
-	kaddr = kmap_atomic(buf->pages[0], KM_USER0);
+	kaddr = kmap_atomic(buf->pages[0]);
 	kaddr[buf->page_base + len] = '\0';
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 }
 EXPORT_SYMBOL_GPL(xdr_terminate_string);
 
@@ -232,12 +232,12 @@ _shift_data_right_pages(struct page **pages, size_t pgto_base,
 		pgto_base -= copy;
 		pgfrom_base -= copy;
 
-		vto = kmap_atomic(*pgto, KM_USER0);
-		vfrom = kmap_atomic(*pgfrom, KM_USER1);
+		vto = kmap_atomic(*pgto);
+		vfrom = kmap_atomic(*pgfrom);
 		memmove(vto + pgto_base, vfrom + pgfrom_base, copy);
 		flush_dcache_page(*pgto);
-		kunmap_atomic(vfrom, KM_USER1);
-		kunmap_atomic(vto, KM_USER0);
+		kunmap_atomic(vfrom);
+		kunmap_atomic(vto);
 
 	} while ((len -= copy) != 0);
 }
@@ -267,9 +267,9 @@ _copy_to_pages(struct page **pages, size_t pgbase, const char *p, size_t len)
 		if (copy > len)
 			copy = len;
 
-		vto = kmap_atomic(*pgto, KM_USER0);
+		vto = kmap_atomic(*pgto);
 		memcpy(vto + pgbase, p, copy);
-		kunmap_atomic(vto, KM_USER0);
+		kunmap_atomic(vto);
 
 		len -= copy;
 		if (len == 0)
@@ -311,9 +311,9 @@ _copy_from_pages(char *p, struct page **pages, size_t pgbase, size_t len)
 		if (copy > len)
 			copy = len;
 
-		vfrom = kmap_atomic(*pgfrom, KM_USER0);
+		vfrom = kmap_atomic(*pgfrom);
 		memcpy(p, vfrom + pgbase, copy);
-		kunmap_atomic(vfrom, KM_USER0);
+		kunmap_atomic(vfrom);
 
 		pgbase += copy;
 		if (pgbase == PAGE_CACHE_SIZE) {
diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c
index 554d081..1776e57 100644
--- a/net/sunrpc/xprtrdma/rpc_rdma.c
+++ b/net/sunrpc/xprtrdma/rpc_rdma.c
@@ -338,9 +338,9 @@ rpcrdma_inline_pullup(struct rpc_rqst *rqst, int pad)
 			curlen = copy_len;
 		dprintk("RPC:       %s: page %d destp 0x%p len %d curlen %d\n",
 			__func__, i, destp, copy_len, curlen);
-		srcp = kmap_atomic(ppages[i], KM_SKB_SUNRPC_DATA);
+		srcp = kmap_atomic(ppages[i]);
 		memcpy(destp, srcp+page_base, curlen);
-		kunmap_atomic(srcp, KM_SKB_SUNRPC_DATA);
+		kunmap_atomic(srcp);
 		rqst->rq_svec[0].iov_len += curlen;
 		destp += curlen;
 		copy_len -= curlen;
@@ -639,10 +639,10 @@ rpcrdma_inline_fixup(struct rpc_rqst *rqst, char *srcp, int copy_len, int pad)
 			dprintk("RPC:       %s: page %d"
 				" srcp 0x%p len %d curlen %d\n",
 				__func__, i, srcp, copy_len, curlen);
-			destp = kmap_atomic(ppages[i], KM_SKB_SUNRPC_DATA);
+			destp = kmap_atomic(ppages[i]);
 			memcpy(destp + page_base, srcp, curlen);
 			flush_dcache_page(ppages[i]);
-			kunmap_atomic(destp, KM_SKB_SUNRPC_DATA);
+			kunmap_atomic(destp);
 			srcp += curlen;
 			copy_len -= curlen;
 			if (copy_len == 0)
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 56/62] tomoyo: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (53 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 55/62] sunrpc: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 57/62] md: " Cong Wang
                   ` (7 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Kentaro Takeda, Tetsuo Handa, James Morris,
	linux-security-module


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 security/tomoyo/domain.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/security/tomoyo/domain.c b/security/tomoyo/domain.c
index 9027ac1..3865145 100644
--- a/security/tomoyo/domain.c
+++ b/security/tomoyo/domain.c
@@ -886,12 +886,12 @@ bool tomoyo_dump_page(struct linux_binprm *bprm, unsigned long pos,
 		 * But remove_arg_zero() uses kmap_atomic()/kunmap_atomic().
 		 * So do I.
 		 */
-		char *kaddr = kmap_atomic(page, KM_USER0);
+		char *kaddr = kmap_atomic(page);
 
 		dump->page = page;
 		memcpy(dump->data + offset, kaddr + offset,
 		       PAGE_SIZE - offset);
-		kunmap_atomic(kaddr, KM_USER0);
+		kunmap_atomic(kaddr);
 	}
 	/* Same with put_arg_page(page) in fs/exec.c */
 #ifdef CONFIG_MMU
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 57/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (54 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 56/62] tomoyo: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28  7:50   ` [UPDATED PATCH 57/62] dm: " Cong Wang
  2011-11-27  5:27 ` [PATCH 58/62] gma500: " Cong Wang
                   ` (6 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Neil Brown, linux-raid


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/md/bitmap.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 8659515..4062823 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -525,7 +525,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	}
 	bitmap->sb_page->index = 0;
 
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 
 	sb->magic = cpu_to_le32(BITMAP_MAGIC);
 	sb->version = cpu_to_le32(BITMAP_MAJOR_HI);
@@ -533,7 +533,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	chunksize = bitmap->mddev->bitmap_info.chunksize;
 	BUG_ON(!chunksize);
 	if (!is_power_of_2(chunksize)) {
-		kunmap_atomic(sb, KM_USER0);
+		kunmap_atomic(sb);
 		printk(KERN_ERR "bitmap chunksize not a power of 2\n");
 		return -EINVAL;
 	}
@@ -571,7 +571,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	bitmap->flags |= BITMAP_HOSTENDIAN;
 	sb->version = cpu_to_le32(BITMAP_MAJOR_HOSTENDIAN);
 
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 
 	return 0;
 }
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 58/62] gma500: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (55 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 57/62] md: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-28 11:33   ` Alan Cox
  2011-11-27  5:27 ` [PATCH 59/62] zcache: " Cong Wang
                   ` (5 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Greg Kroah-Hartman, Alan Cox, devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/gma500/mmu.c |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/gma500/mmu.c b/drivers/staging/gma500/mmu.c
index c904d73..e80ee82 100644
--- a/drivers/staging/gma500/mmu.c
+++ b/drivers/staging/gma500/mmu.c
@@ -125,14 +125,14 @@ static void psb_page_clflush(struct psb_mmu_driver *driver, struct page* page)
 	int i;
 	uint8_t *clf;
 
-	clf = kmap_atomic(page, KM_USER0);
+	clf = kmap_atomic(page);
 	mb();
 	for (i = 0; i < clflush_count; ++i) {
 		psb_clflush(clf);
 		clf += clflush_add;
 	}
 	mb();
-	kunmap_atomic(clf, KM_USER0);
+	kunmap_atomic(clf);
 }
 
 static void psb_pages_clflush(struct psb_mmu_driver *driver,
@@ -325,7 +325,7 @@ static struct psb_mmu_pt *psb_mmu_alloc_pt(struct psb_mmu_pd *pd)
 
 	spin_lock(lock);
 
-	v = kmap_atomic(pt->p, KM_USER0);
+	v = kmap_atomic(pt->p);
 	clf = (uint8_t *) v;
 	ptes = (uint32_t *) v;
 	for (i = 0; i < (PAGE_SIZE / sizeof(uint32_t)); ++i)
@@ -341,7 +341,7 @@ static struct psb_mmu_pt *psb_mmu_alloc_pt(struct psb_mmu_pd *pd)
 		mb();
 	}
 
-	kunmap_atomic(v, KM_USER0);
+	kunmap_atomic(v);
 	spin_unlock(lock);
 
 	pt->count = 0;
@@ -376,18 +376,18 @@ struct psb_mmu_pt *psb_mmu_pt_alloc_map_lock(struct psb_mmu_pd *pd,
 			continue;
 		}
 
-		v = kmap_atomic(pd->p, KM_USER0);
+		v = kmap_atomic(pd->p);
 		pd->tables[index] = pt;
 		v[index] = (page_to_pfn(pt->p) << 12) | pd->pd_mask;
 		pt->index = index;
-		kunmap_atomic((void *) v, KM_USER0);
+		kunmap_atomic((void *) v);
 
 		if (pd->hw_context != -1) {
 			psb_mmu_clflush(pd->driver, (void *) &v[index]);
 			atomic_set(&pd->driver->needs_tlbflush, 1);
 		}
 	}
-	pt->v = kmap_atomic(pt->p, KM_USER0);
+	pt->v = kmap_atomic(pt->p);
 	return pt;
 }
 
@@ -404,7 +404,7 @@ static struct psb_mmu_pt *psb_mmu_pt_map_lock(struct psb_mmu_pd *pd,
 		spin_unlock(lock);
 		return NULL;
 	}
-	pt->v = kmap_atomic(pt->p, KM_USER0);
+	pt->v = kmap_atomic(pt->p);
 	return pt;
 }
 
@@ -413,9 +413,9 @@ static void psb_mmu_pt_unmap_unlock(struct psb_mmu_pt *pt)
 	struct psb_mmu_pd *pd = pt->pd;
 	uint32_t *v;
 
-	kunmap_atomic(pt->v, KM_USER0);
+	kunmap_atomic(pt->v);
 	if (pt->count == 0) {
-		v = kmap_atomic(pd->p, KM_USER0);
+		v = kmap_atomic(pd->p);
 		v[pt->index] = pd->invalid_pde;
 		pd->tables[pt->index] = NULL;
 
@@ -424,7 +424,7 @@ static void psb_mmu_pt_unmap_unlock(struct psb_mmu_pt *pt)
 					(void *) &v[pt->index]);
 			atomic_set(&pd->driver->needs_tlbflush, 1);
 		}
-		kunmap_atomic(pt->v, KM_USER0);
+		kunmap_atomic(pt->v);
 		spin_unlock(&pd->driver->lock);
 		psb_mmu_free_pt(pt);
 		return;
@@ -457,7 +457,7 @@ void psb_mmu_mirror_gtt(struct psb_mmu_pd *pd,
 	down_read(&driver->sem);
 	spin_lock(&driver->lock);
 
-	v = kmap_atomic(pd->p, KM_USER0);
+	v = kmap_atomic(pd->p);
 	v += start;
 
 	while (gtt_pages--) {
@@ -467,7 +467,7 @@ void psb_mmu_mirror_gtt(struct psb_mmu_pd *pd,
 
 	/*ttm_tt_cache_flush(&pd->p, num_pages);*/
 	psb_pages_clflush(pd->driver, &pd->p, num_pages);
-	kunmap_atomic(v, KM_USER0);
+	kunmap_atomic(v);
 	spin_unlock(&driver->lock);
 
 	if (pd->hw_context != -1)
@@ -830,9 +830,9 @@ int psb_mmu_virtual_to_pfn(struct psb_mmu_pd *pd, uint32_t virtual,
 		uint32_t *v;
 
 		spin_lock(lock);
-		v = kmap_atomic(pd->p, KM_USER0);
+		v = kmap_atomic(pd->p);
 		tmp = v[psb_mmu_pd_index(virtual)];
-		kunmap_atomic(v, KM_USER0);
+		kunmap_atomic(v);
 		spin_unlock(lock);
 
 		if (tmp != pd->invalid_pde || !(tmp & PSB_PTE_VALID) ||
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 59/62] zcache: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (56 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 58/62] gma500: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  9:34   ` Greg KH
  2011-11-27  5:27 ` [PATCH 60/62] drbd: " Cong Wang
                   ` (4 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Greg Kroah-Hartman, Seth Jennings,
	Dan Magenheimer, Thadeu Lima de Souza Cascardo, Dave Hansen,
	devel


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/staging/zcache/zcache-main.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
index 56c1f9c..487c4f3 100644
--- a/drivers/staging/zcache/zcache-main.c
+++ b/drivers/staging/zcache/zcache-main.c
@@ -422,13 +422,13 @@ static int zbud_decompress(struct page *page, struct zbud_hdr *zh)
 	}
 	ASSERT_SENTINEL(zh, ZBH);
 	BUG_ON(zh->size == 0 || zh->size > zbud_max_buddy_size());
-	to_va = kmap_atomic(page, KM_USER0);
+	to_va = kmap_atomic(page);
 	size = zh->size;
 	from_va = zbud_data(zh, size);
 	ret = lzo1x_decompress_safe(from_va, size, to_va, &out_len);
 	BUG_ON(ret != LZO_E_OK);
 	BUG_ON(out_len != PAGE_SIZE);
-	kunmap_atomic(to_va, KM_USER0);
+	kunmap_atomic(to_va);
 out:
 	spin_unlock(&zbpg->lock);
 	return ret;
@@ -677,13 +677,13 @@ static struct zv_hdr *zv_create(struct xv_pool *xvpool, uint32_t pool_id,
 		goto out;
 	zv_curr_dist_counts[chunks]++;
 	zv_cumul_dist_counts[chunks]++;
-	zv = kmap_atomic(page, KM_USER0) + offset;
+	zv = kmap_atomic(page) + offset;
 	zv->index = index;
 	zv->oid = *oid;
 	zv->pool_id = pool_id;
 	SET_SENTINEL(zv, ZVH);
 	memcpy((char *)zv + sizeof(struct zv_hdr), cdata, clen);
-	kunmap_atomic(zv, KM_USER0);
+	kunmap_atomic(zv);
 out:
 	return zv;
 }
@@ -719,10 +719,10 @@ static void zv_decompress(struct page *page, struct zv_hdr *zv)
 	ASSERT_SENTINEL(zv, ZVH);
 	size = xv_get_object_size(zv) - sizeof(*zv);
 	BUG_ON(size == 0);
-	to_va = kmap_atomic(page, KM_USER0);
+	to_va = kmap_atomic(page);
 	ret = lzo1x_decompress_safe((char *)zv + sizeof(*zv),
 					size, to_va, &clen);
-	kunmap_atomic(to_va, KM_USER0);
+	kunmap_atomic(to_va);
 	BUG_ON(ret != LZO_E_OK);
 	BUG_ON(clen != PAGE_SIZE);
 }
@@ -1301,12 +1301,12 @@ static int zcache_compress(struct page *from, void **out_va, size_t *out_len)
 	BUG_ON(!irqs_disabled());
 	if (unlikely(dmem == NULL || wmem == NULL))
 		goto out;  /* no buffer, so can't compress */
-	from_va = kmap_atomic(from, KM_USER0);
+	from_va = kmap_atomic(from);
 	mb();
 	ret = lzo1x_1_compress(from_va, PAGE_SIZE, dmem, out_len, wmem);
 	BUG_ON(ret != LZO_E_OK);
 	*out_va = dmem;
-	kunmap_atomic(from_va, KM_USER0);
+	kunmap_atomic(from_va);
 	ret = 1;
 out:
 	return ret;
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 60/62] drbd: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (57 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 59/62] zcache: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27  5:27 ` [PATCH 61/62] highmem: kill all __kmap_atomic() Cong Wang
                   ` (3 subsequent siblings)
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Lars Ellenberg, drbd-user


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/block/drbd/drbd_bitmap.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
index 39de9ff..3030201 100644
--- a/drivers/block/drbd/drbd_bitmap.c
+++ b/drivers/block/drbd/drbd_bitmap.c
@@ -289,7 +289,7 @@ static unsigned int bm_bit_to_page_idx(struct drbd_bitmap *b, u64 bitnr)
 	return page_nr;
 }
 
-static unsigned long *__bm_map_pidx(struct drbd_bitmap *b, unsigned int idx, const enum km_type km)
+static unsigned long *__bm_map_pidx(struct drbd_bitmap *b, unsigned int idx)
 {
 	struct page *page = b->bm_pages[idx];
 	return (unsigned long *) kmap_atomic(page);
@@ -551,7 +551,7 @@ static unsigned long bm_count_bits(struct drbd_bitmap *b)
 	}
 	/* last (or only) page */
 	last_word = ((b->bm_bits - 1) & BITS_PER_PAGE_MASK) >> LN2_BPL;
-	p_addr = __bm_map_pidx(b, idx, KM_USER0);
+	p_addr = __bm_map_pidx(b, idx);
 	for (i = 0; i < last_word; i++)
 		bits += hweight_long(p_addr[i]);
 	p_addr[last_word] &= cpu_to_lel(mask);
@@ -559,7 +559,7 @@ static unsigned long bm_count_bits(struct drbd_bitmap *b)
 	/* 32bit arch, may have an unused padding long */
 	if (BITS_PER_LONG == 32 && (last_word & 1) == 0)
 		p_addr[last_word+1] = 0;
-	__bm_unmap(p_addr, KM_USER0);
+	__bm_unmap(p_addr);
 	return bits;
 }
 
@@ -970,11 +970,11 @@ static void bm_page_io_async(struct bm_aio_ctx *ctx, int page_nr, int rw) __must
 		 * to use pre-allocated page pool */
 		void *src, *dest;
 		page = alloc_page(__GFP_HIGHMEM|__GFP_WAIT);
-		dest = kmap_atomic(page, KM_USER0);
-		src = kmap_atomic(b->bm_pages[page_nr], KM_USER1);
+		dest = kmap_atomic(page);
+		src = kmap_atomic(b->bm_pages[page_nr]);
 		memcpy(dest, src, PAGE_SIZE);
-		kunmap_atomic(src, KM_USER1);
-		kunmap_atomic(dest, KM_USER0);
+		kunmap_atomic(src);
+		kunmap_atomic(dest);
 		bm_store_page_idx(page, page_nr);
 	} else
 		page = b->bm_pages[page_nr];
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 61/62] highmem: kill all __kmap_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (58 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 60/62] drbd: " Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-12-09 16:07   ` Ralf Baechle
  2011-11-27  5:27 ` [PATCH 62/62] feature-removal-schedule.txt: add the deprecated form of kmap_atomic() Cong Wang
                   ` (2 subsequent siblings)
  62 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Russell King, David Howells, Ralf Baechle,
	Koichi Yasutake, Kyle McMartin, Helge Deller,
	James E.J. Bottomley, Benjamin Herrenschmidt, Paul Mackerras,
	David S. Miller, Chris Metcalf, Thomas Gleixner, Ingo Molnar,
	H. Peter Anvin, x86, Nicolas Pitre, James Bottomley,
	Paul Gortmaker, Christoph Lameter, Tejun Heo, linux-arm-kernel,
	linux-mips, linux-am33-list, linux-parisc, linuxppc-dev,
	sparclinux


Signed-off-by: Cong Wang <amwang@redhat.com>
---
 arch/arm/mm/highmem.c                |    4 ++--
 arch/frv/include/asm/highmem.h       |    2 +-
 arch/frv/mm/highmem.c                |    4 ++--
 arch/mips/include/asm/highmem.h      |    2 +-
 arch/mips/mm/highmem.c               |    4 ++--
 arch/mn10300/include/asm/highmem.h   |    2 +-
 arch/parisc/include/asm/cacheflush.h |    2 +-
 arch/powerpc/include/asm/highmem.h   |    2 +-
 arch/sparc/include/asm/highmem.h     |    2 +-
 arch/sparc/mm/highmem.c              |    4 ++--
 arch/tile/include/asm/highmem.h      |    2 +-
 arch/tile/mm/highmem.c               |    4 ++--
 arch/x86/include/asm/highmem.h       |    2 +-
 arch/x86/mm/highmem_32.c             |    4 ++--
 include/linux/highmem.h              |   11 +++--------
 15 files changed, 23 insertions(+), 28 deletions(-)

diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
index 807c057..5a21505 100644
--- a/arch/arm/mm/highmem.c
+++ b/arch/arm/mm/highmem.c
@@ -36,7 +36,7 @@ void kunmap(struct page *page)
 }
 EXPORT_SYMBOL(kunmap);
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	unsigned int idx;
 	unsigned long vaddr;
@@ -81,7 +81,7 @@ void *__kmap_atomic(struct page *page)
 
 	return (void *)vaddr;
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 void __kunmap_atomic(void *kvaddr)
 {
diff --git a/arch/frv/include/asm/highmem.h b/arch/frv/include/asm/highmem.h
index a8d6565..716956a 100644
--- a/arch/frv/include/asm/highmem.h
+++ b/arch/frv/include/asm/highmem.h
@@ -157,7 +157,7 @@ static inline void kunmap_atomic_primary(void *kvaddr, enum km_type type)
 	pagefault_enable();
 }
 
-void *__kmap_atomic(struct page *page);
+void *kmap_atomic(struct page *page);
 void __kunmap_atomic(void *kvaddr);
 
 #endif /* !__ASSEMBLY__ */
diff --git a/arch/frv/mm/highmem.c b/arch/frv/mm/highmem.c
index fd7fcd4..31902c9 100644
--- a/arch/frv/mm/highmem.c
+++ b/arch/frv/mm/highmem.c
@@ -37,7 +37,7 @@ struct page *kmap_atomic_to_page(void *ptr)
 	return virt_to_page(ptr);
 }
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	unsigned long paddr;
 	int type;
@@ -64,7 +64,7 @@ void *__kmap_atomic(struct page *page)
 		return NULL;
 	}
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 void __kunmap_atomic(void *kvaddr)
 {
diff --git a/arch/mips/include/asm/highmem.h b/arch/mips/include/asm/highmem.h
index 77e6440..2d91888 100644
--- a/arch/mips/include/asm/highmem.h
+++ b/arch/mips/include/asm/highmem.h
@@ -47,7 +47,7 @@ extern void kunmap_high(struct page *page);
 
 extern void *kmap(struct page *page);
 extern void kunmap(struct page *page);
-extern void *__kmap_atomic(struct page *page);
+extern void *kmap_atomic(struct page *page);
 extern void __kunmap_atomic(void *kvaddr);
 extern void *kmap_atomic_pfn(unsigned long pfn);
 extern struct page *kmap_atomic_to_page(void *ptr);
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index 3634c7e..aff5705 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -41,7 +41,7 @@ EXPORT_SYMBOL(kunmap);
  * kmaps are appropriate for short, tight code paths only.
  */
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	unsigned long vaddr;
 	int idx, type;
@@ -62,7 +62,7 @@ void *__kmap_atomic(struct page *page)
 
 	return (void*) vaddr;
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 void __kunmap_atomic(void *kvaddr)
 {
diff --git a/arch/mn10300/include/asm/highmem.h b/arch/mn10300/include/asm/highmem.h
index bfe2d88..7c137cd 100644
--- a/arch/mn10300/include/asm/highmem.h
+++ b/arch/mn10300/include/asm/highmem.h
@@ -70,7 +70,7 @@ static inline void kunmap(struct page *page)
  * be used in IRQ contexts, so in some (very limited) cases we need
  * it.
  */
-static inline unsigned long __kmap_atomic(struct page *page)
+static inline unsigned long kmap_atomic(struct page *page)
 {
 	unsigned long vaddr;
 	int idx, type;
diff --git a/arch/parisc/include/asm/cacheflush.h b/arch/parisc/include/asm/cacheflush.h
index da601dd..9f21ab0 100644
--- a/arch/parisc/include/asm/cacheflush.h
+++ b/arch/parisc/include/asm/cacheflush.h
@@ -140,7 +140,7 @@ static inline void *kmap(struct page *page)
 
 #define kunmap(page)			kunmap_parisc(page_address(page))
 
-static inline void *__kmap_atomic(struct page *page)
+static inline void *kmap_atomic(struct page *page)
 {
 	pagefault_disable();
 	return page_address(page);
diff --git a/arch/powerpc/include/asm/highmem.h b/arch/powerpc/include/asm/highmem.h
index dbc2640..caaf6e0 100644
--- a/arch/powerpc/include/asm/highmem.h
+++ b/arch/powerpc/include/asm/highmem.h
@@ -79,7 +79,7 @@ static inline void kunmap(struct page *page)
 	kunmap_high(page);
 }
 
-static inline void *__kmap_atomic(struct page *page)
+static inline void *kmap_atomic(struct page *page)
 {
 	return kmap_atomic_prot(page, kmap_prot);
 }
diff --git a/arch/sparc/include/asm/highmem.h b/arch/sparc/include/asm/highmem.h
index 3d7afbb..3b6e00d 100644
--- a/arch/sparc/include/asm/highmem.h
+++ b/arch/sparc/include/asm/highmem.h
@@ -70,7 +70,7 @@ static inline void kunmap(struct page *page)
 	kunmap_high(page);
 }
 
-extern void *__kmap_atomic(struct page *page);
+extern void *kmap_atomic(struct page *page);
 extern void __kunmap_atomic(void *kvaddr);
 extern struct page *kmap_atomic_to_page(void *vaddr);
 
diff --git a/arch/sparc/mm/highmem.c b/arch/sparc/mm/highmem.c
index 77140a0..055c66c 100644
--- a/arch/sparc/mm/highmem.c
+++ b/arch/sparc/mm/highmem.c
@@ -30,7 +30,7 @@
 #include <asm/tlbflush.h>
 #include <asm/fixmap.h>
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	unsigned long vaddr;
 	long idx, type;
@@ -64,7 +64,7 @@ void *__kmap_atomic(struct page *page)
 
 	return (void*) vaddr;
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 void __kunmap_atomic(void *kvaddr)
 {
diff --git a/arch/tile/include/asm/highmem.h b/arch/tile/include/asm/highmem.h
index b2a6c5d..fc8429a 100644
--- a/arch/tile/include/asm/highmem.h
+++ b/arch/tile/include/asm/highmem.h
@@ -59,7 +59,7 @@ void *kmap_fix_kpte(struct page *page, int finished);
 /* This macro is used only in map_new_virtual() to map "page". */
 #define kmap_prot page_to_kpgprot(page)
 
-void *__kmap_atomic(struct page *page);
+void *kmap_atomic(struct page *page);
 void __kunmap_atomic(void *kvaddr);
 void *kmap_atomic_pfn(unsigned long pfn);
 void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
diff --git a/arch/tile/mm/highmem.c b/arch/tile/mm/highmem.c
index 31dbbd9..ef8e5a6 100644
--- a/arch/tile/mm/highmem.c
+++ b/arch/tile/mm/highmem.c
@@ -224,12 +224,12 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
 }
 EXPORT_SYMBOL(kmap_atomic_prot);
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	/* PAGE_NONE is a magic value that tells us to check immutability. */
 	return kmap_atomic_prot(page, PAGE_NONE);
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 void __kunmap_atomic(void *kvaddr)
 {
diff --git a/arch/x86/include/asm/highmem.h b/arch/x86/include/asm/highmem.h
index 3bd0402..302a323 100644
--- a/arch/x86/include/asm/highmem.h
+++ b/arch/x86/include/asm/highmem.h
@@ -61,7 +61,7 @@ void *kmap(struct page *page);
 void kunmap(struct page *page);
 
 void *kmap_atomic_prot(struct page *page, pgprot_t prot);
-void *__kmap_atomic(struct page *page);
+void *kmap_atomic(struct page *page);
 void __kunmap_atomic(void *kvaddr);
 void *kmap_atomic_pfn(unsigned long pfn);
 void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot);
diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
index b499626..9f85499 100644
--- a/arch/x86/mm/highmem_32.c
+++ b/arch/x86/mm/highmem_32.c
@@ -50,11 +50,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
 }
 EXPORT_SYMBOL(kmap_atomic_prot);
 
-void *__kmap_atomic(struct page *page)
+void *kmap_atomic(struct page *page)
 {
 	return kmap_atomic_prot(page, kmap_prot);
 }
-EXPORT_SYMBOL(__kmap_atomic);
+EXPORT_SYMBOL(kmap_atomic);
 
 /*
  * This is the same as kmap_atomic() but can map memory that doesn't
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 42ac049..9c1b442 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -55,12 +55,12 @@ static inline void kunmap(struct page *page)
 {
 }
 
-static inline void *__kmap_atomic(struct page *page)
+static inline void *kmap_atomic(struct page *page)
 {
 	pagefault_disable();
 	return page_address(page);
 }
-#define kmap_atomic_prot(page, prot)	__kmap_atomic(page)
+#define kmap_atomic_prot(page, prot)	kmap_atomic(page)
 
 static inline void __kunmap_atomic(void *addr)
 {
@@ -121,15 +121,10 @@ static inline void kmap_atomic_idx_pop(void)
 #define NARG_(_2, _1, n, ...) n
 #define NARG(...) NARG_(__VA_ARGS__, 2, 1, :)
 
-static inline void *kmap_atomic(struct page *page)
-{
-	return __kmap_atomic(page);
-}
-
 static inline void __deprecated *kmap_atomic_deprecated(struct page *page,
 							enum km_type km)
 {
-	return __kmap_atomic(page);
+	return kmap_atomic(page);
 }
 
 #define kmap_atomic1(...) kmap_atomic(__VA_ARGS__)
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [PATCH 62/62] feature-removal-schedule.txt: add the deprecated form of kmap_atomic()
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (59 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 61/62] highmem: kill all __kmap_atomic() Cong Wang
@ 2011-11-27  5:27 ` Cong Wang
  2011-11-27 22:21 ` [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Benjamin Herrenschmidt
  2011-11-29  3:36 ` Cong Wang
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-27  5:27 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Randy Dunlap, linux-doc

Schedule the final removal to 3.5.

Signed-off-by: Cong Wang <amwang@redhat.com>
---
 Documentation/feature-removal-schedule.txt |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 3d84912..65aef30 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -551,3 +551,11 @@ When:	3.5
 Why:	The iwlagn module has been renamed iwlwifi.  The alias will be around
 	for backward compatibility for several cycles and then dropped.
 Who:	Don Fry <donald.h.fry@intel.com>
+
+----------------------------
+
+What:	kmap_atomic(page, km_type)
+When:	3.5
+Why:	The old kmap_atomic() with two arguments is deprecated, we only
+	keep it for backward compatibility for few cycles and then drop it.
+Who:	Cong Wang <amwang@redhat.com>
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* Re: [PATCH 17/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 17/62] md: " Cong Wang
@ 2011-11-27  6:00   ` NeilBrown
  2011-11-27 10:27     ` [dm-devel] " Milan Broz
  2011-11-28  7:47     ` [UPDATED PATCH " Cong Wang
  0 siblings, 2 replies; 121+ messages in thread
From: NeilBrown @ 2011-11-27  6:00 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, linux-raid, dm-devel

[-- Attachment #1: Type: text/plain, Size: 7447 bytes --]

On Sun, 27 Nov 2011 13:26:57 +0800 Cong Wang <amwang@redhat.com> wrote:

> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

This and patch 57/62

 Acked-by: NeilBrown <neilb@suse.de>

thanks.

Not sure why there are two separate patches to md/bitmap.c though...

... and I cannot offically 'ack' the dm-crypt.c parts of this as I'm not the
    maintainer.  'md' and 'dm' are separate systems in the same directory -
    confusing, isn't it :-(

NeilBrown


> ---
>  drivers/md/bitmap.c   |   36 ++++++++++++++++++------------------
>  drivers/md/dm-crypt.c |    8 ++++----
>  2 files changed, 22 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
> index 7878712..8659515 100644
> --- a/drivers/md/bitmap.c
> +++ b/drivers/md/bitmap.c
> @@ -457,7 +457,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
>  		return;
>  	}
>  	spin_unlock_irqrestore(&bitmap->lock, flags);
> -	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
> +	sb = kmap_atomic(bitmap->sb_page);
>  	sb->events = cpu_to_le64(bitmap->mddev->events);
>  	if (bitmap->mddev->events < bitmap->events_cleared)
>  		/* rocking back to read-only */
> @@ -467,7 +467,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
>  	/* Just in case these have been changed via sysfs: */
>  	sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ);
>  	sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind);
> -	kunmap_atomic(sb, KM_USER0);
> +	kunmap_atomic(sb);
>  	write_page(bitmap, bitmap->sb_page, 1);
>  }
>  
> @@ -478,7 +478,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
>  
>  	if (!bitmap || !bitmap->sb_page)
>  		return;
> -	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
> +	sb = kmap_atomic(bitmap->sb_page);
>  	printk(KERN_DEBUG "%s: bitmap file superblock:\n", bmname(bitmap));
>  	printk(KERN_DEBUG "         magic: %08x\n", le32_to_cpu(sb->magic));
>  	printk(KERN_DEBUG "       version: %d\n", le32_to_cpu(sb->version));
> @@ -497,7 +497,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
>  	printk(KERN_DEBUG "     sync size: %llu KB\n",
>  			(unsigned long long)le64_to_cpu(sb->sync_size)/2);
>  	printk(KERN_DEBUG "max write behind: %d\n", le32_to_cpu(sb->write_behind));
> -	kunmap_atomic(sb, KM_USER0);
> +	kunmap_atomic(sb);
>  }
>  
>  /*
> @@ -603,7 +603,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
>  		return err;
>  	}
>  
> -	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
> +	sb = kmap_atomic(bitmap->sb_page);
>  
>  	chunksize = le32_to_cpu(sb->chunksize);
>  	daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ;
> @@ -664,7 +664,7 @@ success:
>  		bitmap->events_cleared = bitmap->mddev->events;
>  	err = 0;
>  out:
> -	kunmap_atomic(sb, KM_USER0);
> +	kunmap_atomic(sb);
>  	if (err)
>  		bitmap_print_sb(bitmap);
>  	return err;
> @@ -689,7 +689,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
>  		return 0;
>  	}
>  	spin_unlock_irqrestore(&bitmap->lock, flags);
> -	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
> +	sb = kmap_atomic(bitmap->sb_page);
>  	old = le32_to_cpu(sb->state) & bits;
>  	switch (op) {
>  	case MASK_SET:
> @@ -703,7 +703,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
>  	default:
>  		BUG();
>  	}
> -	kunmap_atomic(sb, KM_USER0);
> +	kunmap_atomic(sb);
>  	return old;
>  }
>  
> @@ -881,12 +881,12 @@ static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block)
>  	bit = file_page_offset(bitmap, chunk);
>  
>  	/* set the bit */
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	if (bitmap->flags & BITMAP_HOSTENDIAN)
>  		set_bit(bit, kaddr);
>  	else
>  		__set_bit_le(bit, kaddr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	pr_debug("set file bit %lu page %lu\n", bit, page->index);
>  	/* record page number so it gets flushed to disk when unplug occurs */
>  	set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY);
> @@ -1050,10 +1050,10 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
>  				 * if bitmap is out of date, dirty the
>  				 * whole page and write it out
>  				 */
> -				paddr = kmap_atomic(page, KM_USER0);
> +				paddr = kmap_atomic(page);
>  				memset(paddr + offset, 0xff,
>  				       PAGE_SIZE - offset);
> -				kunmap_atomic(paddr, KM_USER0);
> +				kunmap_atomic(paddr);
>  				write_page(bitmap, page, 1);
>  
>  				ret = -EIO;
> @@ -1061,12 +1061,12 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
>  					goto err;
>  			}
>  		}
> -		paddr = kmap_atomic(page, KM_USER0);
> +		paddr = kmap_atomic(page);
>  		if (bitmap->flags & BITMAP_HOSTENDIAN)
>  			b = test_bit(bit, paddr);
>  		else
>  			b = test_bit_le(bit, paddr);
> -		kunmap_atomic(paddr, KM_USER0);
> +		kunmap_atomic(paddr);
>  		if (b) {
>  			/* if the disk bit is set, set the memory bit */
>  			int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap))
> @@ -1207,10 +1207,10 @@ void bitmap_daemon_work(struct mddev *mddev)
>  			    bitmap->mddev->bitmap_info.external == 0) {
>  				bitmap_super_t *sb;
>  				bitmap->need_sync = 0;
> -				sb = kmap_atomic(bitmap->sb_page, KM_USER0);
> +				sb = kmap_atomic(bitmap->sb_page);
>  				sb->events_cleared =
>  					cpu_to_le64(bitmap->events_cleared);
> -				kunmap_atomic(sb, KM_USER0);
> +				kunmap_atomic(sb);
>  				write_page(bitmap, bitmap->sb_page, 1);
>  			}
>  			spin_lock_irqsave(&bitmap->lock, flags);
> @@ -1233,7 +1233,7 @@ void bitmap_daemon_work(struct mddev *mddev)
>  						  -1);
>  
>  				/* clear the bit */
> -				paddr = kmap_atomic(page, KM_USER0);
> +				paddr = kmap_atomic(page);
>  				if (bitmap->flags & BITMAP_HOSTENDIAN)
>  					clear_bit(file_page_offset(bitmap, j),
>  						  paddr);
> @@ -1242,7 +1242,7 @@ void bitmap_daemon_work(struct mddev *mddev)
>  						file_page_offset(bitmap,
>  								 j),
>  						paddr);
> -				kunmap_atomic(paddr, KM_USER0);
> +				kunmap_atomic(paddr);
>  			} else if (*bmc <= 2) {
>  				*bmc = 1; /* maybe clear the bit next time */
>  				set_page_attr(bitmap, page, BITMAP_PAGE_PENDING);
> diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
> index 8c2a000..db6b516 100644
> --- a/drivers/md/dm-crypt.c
> +++ b/drivers/md/dm-crypt.c
> @@ -590,9 +590,9 @@ static int crypt_iv_lmk_gen(struct crypt_config *cc, u8 *iv,
>  	int r = 0;
>  
>  	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE) {
> -		src = kmap_atomic(sg_page(&dmreq->sg_in), KM_USER0);
> +		src = kmap_atomic(sg_page(&dmreq->sg_in));
>  		r = crypt_iv_lmk_one(cc, iv, dmreq, src + dmreq->sg_in.offset);
> -		kunmap_atomic(src, KM_USER0);
> +		kunmap_atomic(src);
>  	} else
>  		memset(iv, 0, cc->iv_size);
>  
> @@ -608,14 +608,14 @@ static int crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
>  	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE)
>  		return 0;
>  
> -	dst = kmap_atomic(sg_page(&dmreq->sg_out), KM_USER0);
> +	dst = kmap_atomic(sg_page(&dmreq->sg_out));
>  	r = crypt_iv_lmk_one(cc, iv, dmreq, dst + dmreq->sg_out.offset);
>  
>  	/* Tweak the first block of plaintext sector */
>  	if (!r)
>  		crypto_xor(dst + dmreq->sg_out.offset, iv, cc->iv_size);
>  
> -	kunmap_atomic(dst, KM_USER0);
> +	kunmap_atomic(dst);
>  	return r;
>  }
>  


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 15/62] ide: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 15/62] ide: " Cong Wang
@ 2011-11-27  6:12   ` David Miller
  0 siblings, 0 replies; 121+ messages in thread
From: David Miller @ 2011-11-27  6:12 UTC (permalink / raw)
  To: amwang; +Cc: linux-kernel, akpm, linux-ide

From: Cong Wang <amwang@redhat.com>
Date: Sun, 27 Nov 2011 13:26:55 +0800

> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
@ 2011-11-27  6:12   ` David Miller
  2011-11-27  8:07   ` Eric Dumazet
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 121+ messages in thread
From: David Miller @ 2011-11-27  6:12 UTC (permalink / raw)
  To: amwang
  Cc: linux-kernel, akpm, jeffrey.t.kirsher, jesse.brandeburg,
	bruce.w.allan, carolyn.wyborny, donald.c.skidmore,
	gregory.v.rose, peter.p.waskiewicz.jr, alexander.h.duyck,
	john.ronciak, dnelson, eric.dumazet, ian.campbell, jpirko,
	e1000-devel, netdev

From: Cong Wang <amwang@redhat.com>
Date: Sun, 27 Nov 2011 13:27:01 +0800

> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 53/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 53/62] net: " Cong Wang
@ 2011-11-27  6:12   ` David Miller
  0 siblings, 0 replies; 121+ messages in thread
From: David Miller @ 2011-11-27  6:12 UTC (permalink / raw)
  To: amwang; +Cc: linux-kernel, akpm, ian.campbell, netdev

From: Cong Wang <amwang@redhat.com>
Date: Sun, 27 Nov 2011 13:27:33 +0800

> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 54/62] rds: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 54/62] rds: " Cong Wang
@ 2011-11-27  6:13   ` David Miller
  0 siblings, 0 replies; 121+ messages in thread
From: David Miller @ 2011-11-27  6:13 UTC (permalink / raw)
  To: amwang; +Cc: linux-kernel, akpm, venkat.x.venkatsubra, rds-devel, netdev

From: Cong Wang <amwang@redhat.com>
Date: Sun, 27 Nov 2011 13:27:34 +0800

> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
  2011-11-27  6:12   ` David Miller
@ 2011-11-27  8:07   ` Eric Dumazet
  2011-11-28 18:06     ` Alexander Duyck
  2011-11-28  7:39   ` Cong Wang
  2011-11-28  7:48   ` [UPDATED PATCH " Cong Wang
  3 siblings, 1 reply; 121+ messages in thread
From: Eric Dumazet @ 2011-11-27  8:07 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Jeff Kirsher, Jesse Brandeburg, Bruce Allan,
	Carolyn Wyborny, Don Skidmore, Greg Rose, Peter P Waskiewicz Jr,
	Alex Duyck, John Ronciak, David S. Miller, Dean Nelson,
	Ian Campbell, Jiri Pirko, e1000-devel, netdev

Le dimanche 27 novembre 2011 à 13:27 +0800, Cong Wang a écrit :
> Signed-off-by: Cong Wang <amwang@redhat.com>
> ---

> diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
> index cf480b5..b194beb 100644
> --- a/drivers/net/ethernet/intel/e1000/e1000_main.c
> +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
> @@ -3878,11 +3878,9 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
>  				if (length <= copybreak &&
>  				    skb_tailroom(skb) >= length) {
>  					u8 *vaddr;
> -					vaddr = kmap_atomic(buffer_info->page,
> -					                    KM_SKB_DATA_SOFTIRQ);
> +					vaddr = kmap_atomic(buffer_info->page);
>  					memcpy(skb_tail_pointer(skb), vaddr, length);
> -					kunmap_atomic(vaddr,
> -					              KM_SKB_DATA_SOFTIRQ);
> +					kunmap_atomic(vaddr);
>  					/* re-use the page, so don't erase
>  					 * buffer_info->page */
>  					skb_put(skb, length);
> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
> index a855db1..8603c87 100644
> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
> @@ -1272,9 +1272,9 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
>  			 */
>  			dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
>  						PAGE_SIZE, DMA_FROM_DEVICE);
> -			vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
> +			vaddr = kmap_atomic(ps_page->page);
>  			memcpy(skb_tail_pointer(skb), vaddr, l1);
> -			kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
> +			kunmap_atomic(vaddr);
>  			dma_sync_single_for_device(&pdev->dev, ps_page->dma,
>  						   PAGE_SIZE, DMA_FROM_DEVICE);
>  
> @@ -1465,12 +1465,10 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
>  				if (length <= copybreak &&
>  				    skb_tailroom(skb) >= length) {
>  					u8 *vaddr;
> -					vaddr = kmap_atomic(buffer_info->page,
> -					                   KM_SKB_DATA_SOFTIRQ);
> +					vaddr = kmap_atomic(buffer_info->page);
>  					memcpy(skb_tail_pointer(skb), vaddr,
>  					       length);
> -					kunmap_atomic(vaddr,
> -					              KM_SKB_DATA_SOFTIRQ);
> +					kunmap_atomic(vaddr);
>  					/* re-use the page, so don't erase
>  					 * buffer_info->page */
>  					skb_put(skb, length);

But why are these drivers using kmap_atomic() in first place, since
their fragments are allocated in regular zone (GFP_ATOMIC or
GFP_KERNEL) ?





^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 23/62] hv: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 23/62] hv: " Cong Wang
@ 2011-11-27  9:34   ` Greg KH
  0 siblings, 0 replies; 121+ messages in thread
From: Greg KH @ 2011-11-27  9:34 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Hank Janssen, Haiyang Zhang,
	K. Y. Srinivasan, Abhishek Kane, devel

On Sun, Nov 27, 2011 at 01:27:03PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 25/62] rtl8192u: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 25/62] rtl8192u: " Cong Wang
@ 2011-11-27  9:34   ` Greg KH
  0 siblings, 0 replies; 121+ messages in thread
From: Greg KH @ 2011-11-27  9:34 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Ilia Mirkin, Lucas De Marchi, devel

On Sun, Nov 27, 2011 at 01:27:05PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 26/62] zram: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 26/62] zram: " Cong Wang
@ 2011-11-27  9:34   ` Greg KH
  0 siblings, 0 replies; 121+ messages in thread
From: Greg KH @ 2011-11-27  9:34 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Robert Jennings, Pekka Enberg, Nitin Gupta,
	Peter Huewe, Jerome Marchand, Jeff Moyer, devel

On Sun, Nov 27, 2011 at 01:27:06PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 24/62] pohmelfs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 24/62] pohmelfs: " Cong Wang
@ 2011-11-27  9:34   ` Greg KH
  2011-11-28  0:58     ` Evgeniy Polyakov
  0 siblings, 1 reply; 121+ messages in thread
From: Greg KH @ 2011-11-27  9:34 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Evgeniy Polyakov, Josef Bacik, Jan Kara,
	Al Viro, devel

On Sun, Nov 27, 2011 at 01:27:04PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 59/62] zcache: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 59/62] zcache: " Cong Wang
@ 2011-11-27  9:34   ` Greg KH
  0 siblings, 0 replies; 121+ messages in thread
From: Greg KH @ 2011-11-27  9:34 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Seth Jennings, Dan Magenheimer,
	Thadeu Lima de Souza Cascardo, Dave Hansen, devel

On Sun, Nov 27, 2011 at 01:27:39PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Greg Kroah-Hartman <gregkh@suse.de>

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [dm-devel] [PATCH 17/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27  6:00   ` NeilBrown
@ 2011-11-27 10:27     ` Milan Broz
  2011-11-28  5:10       ` Cong Wang
  2011-11-28  7:47     ` [UPDATED PATCH " Cong Wang
  1 sibling, 1 reply; 121+ messages in thread
From: Milan Broz @ 2011-11-27 10:27 UTC (permalink / raw)
  To: device-mapper development
  Cc: NeilBrown, Cong Wang, linux-raid, akpm, linux-kernel

On 11/27/2011 07:00 AM, NeilBrown wrote:
> On Sun, 27 Nov 2011 13:26:57 +0800 Cong Wang <amwang@redhat.com> wrote:
> 
>>
>> Signed-off-by: Cong Wang <amwang@redhat.com>
> 
> This and patch 57/62
> 
>  Acked-by: NeilBrown <neilb@suse.de>
> 
> thanks.
> 
> Not sure why there are two separate patches to md/bitmap.c though...
> 
> ... and I cannot offically 'ack' the dm-crypt.c parts of this as I'm not the
>     maintainer.  'md' and 'dm' are separate systems in the same directory -
>     confusing, isn't it :-(

These little walled gardens ... :)

I hope I can ack that dm-crypt code, I added that chunk
as part of loop-aes compatibility code.
(Anyway Alasdair as dm maintainer should ack it too.)

Acked-by: Milan Broz <mbroz@redhat.com>


>> diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
>> index 8c2a000..db6b516 100644
>> --- a/drivers/md/dm-crypt.c
>> +++ b/drivers/md/dm-crypt.c
>> @@ -590,9 +590,9 @@ static int crypt_iv_lmk_gen(struct crypt_config *cc, u8 *iv,
>>  	int r = 0;
>>  
>>  	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE) {
>> -		src = kmap_atomic(sg_page(&dmreq->sg_in), KM_USER0);
>> +		src = kmap_atomic(sg_page(&dmreq->sg_in));
>>  		r = crypt_iv_lmk_one(cc, iv, dmreq, src + dmreq->sg_in.offset);
>> -		kunmap_atomic(src, KM_USER0);
>> +		kunmap_atomic(src);
>>  	} else
>>  		memset(iv, 0, cc->iv_size);
>>  
>> @@ -608,14 +608,14 @@ static int crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
>>  	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE)
>>  		return 0;
>>  
>> -	dst = kmap_atomic(sg_page(&dmreq->sg_out), KM_USER0);
>> +	dst = kmap_atomic(sg_page(&dmreq->sg_out));
>>  	r = crypt_iv_lmk_one(cc, iv, dmreq, dst + dmreq->sg_out.offset);
>>  
>>  	/* Tweak the first block of plaintext sector */
>>  	if (!r)
>>  		crypto_xor(dst + dmreq->sg_out.offset, iv, cc->iv_size);
>>  
>> -	kunmap_atomic(dst, KM_USER0);
>> +	kunmap_atomic(dst);
>>  	return r;
>>  }
>>  

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 50/62] power: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 50/62] power: " Cong Wang
@ 2011-11-27 11:38   ` Rafael J. Wysocki
  0 siblings, 0 replies; 121+ messages in thread
From: Rafael J. Wysocki @ 2011-11-27 11:38 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Pavel Machek, Len Brown, linux-pm

On Sunday, November 27, 2011, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Rafael J. Wysocki <rjw@sisk.pl>

> ---
>  kernel/power/snapshot.c |   28 ++++++++++++++--------------
>  1 files changed, 14 insertions(+), 14 deletions(-)
> 
> diff --git a/kernel/power/snapshot.c b/kernel/power/snapshot.c
> index cbe2c14..8018450 100644
> --- a/kernel/power/snapshot.c
> +++ b/kernel/power/snapshot.c
> @@ -993,20 +993,20 @@ static void copy_data_page(unsigned long dst_pfn, unsigned long src_pfn)
>  	s_page = pfn_to_page(src_pfn);
>  	d_page = pfn_to_page(dst_pfn);
>  	if (PageHighMem(s_page)) {
> -		src = kmap_atomic(s_page, KM_USER0);
> -		dst = kmap_atomic(d_page, KM_USER1);
> +		src = kmap_atomic(s_page);
> +		dst = kmap_atomic(d_page);
>  		do_copy_page(dst, src);
> -		kunmap_atomic(dst, KM_USER1);
> -		kunmap_atomic(src, KM_USER0);
> +		kunmap_atomic(dst);
> +		kunmap_atomic(src);
>  	} else {
>  		if (PageHighMem(d_page)) {
>  			/* Page pointed to by src may contain some kernel
>  			 * data modified by kmap_atomic()
>  			 */
>  			safe_copy_page(buffer, s_page);
> -			dst = kmap_atomic(d_page, KM_USER0);
> +			dst = kmap_atomic(d_page);
>  			copy_page(dst, buffer);
> -			kunmap_atomic(dst, KM_USER0);
> +			kunmap_atomic(dst);
>  		} else {
>  			safe_copy_page(page_address(d_page), s_page);
>  		}
> @@ -1721,9 +1721,9 @@ int snapshot_read_next(struct snapshot_handle *handle)
>  			 */
>  			void *kaddr;
>  
> -			kaddr = kmap_atomic(page, KM_USER0);
> +			kaddr = kmap_atomic(page);
>  			copy_page(buffer, kaddr);
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  			handle->buffer = buffer;
>  		} else {
>  			handle->buffer = page_address(page);
> @@ -2007,9 +2007,9 @@ static void copy_last_highmem_page(void)
>  	if (last_highmem_page) {
>  		void *dst;
>  
> -		dst = kmap_atomic(last_highmem_page, KM_USER0);
> +		dst = kmap_atomic(last_highmem_page);
>  		copy_page(dst, buffer);
> -		kunmap_atomic(dst, KM_USER0);
> +		kunmap_atomic(dst);
>  		last_highmem_page = NULL;
>  	}
>  }
> @@ -2302,13 +2302,13 @@ swap_two_pages_data(struct page *p1, struct page *p2, void *buf)
>  {
>  	void *kaddr1, *kaddr2;
>  
> -	kaddr1 = kmap_atomic(p1, KM_USER0);
> -	kaddr2 = kmap_atomic(p2, KM_USER1);
> +	kaddr1 = kmap_atomic(p1);
> +	kaddr2 = kmap_atomic(p2);
>  	copy_page(buf, kaddr1);
>  	copy_page(kaddr1, kaddr2);
>  	copy_page(kaddr2, buf);
> -	kunmap_atomic(kaddr2, KM_USER1);
> -	kunmap_atomic(kaddr1, KM_USER0);
> +	kunmap_atomic(kaddr2);
> +	kunmap_atomic(kaddr1);
>  }
>  
>  /**
> 


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated
  2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
@ 2011-11-27 12:34   ` Cesar Eduardo Barros
  2011-11-28  5:07     ` Cong Wang
  2011-11-28  7:46   ` [UPDATED PATCH " Cong Wang
  1 sibling, 1 reply; 121+ messages in thread
From: Cesar Eduardo Barros @ 2011-11-27 12:34 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Nick Bowler, Peter Zijlstra,
	Christoph Lameter, Tejun Heo, H. Peter Anvin

Em 27-11-2011 03:26, Cong Wang escreveu:
>   /*
>    * Prevent people trying to call kunmap_atomic() as if it were kunmap()
>    * kunmap_atomic() should get the return value of kmap_atomic, not the page.
>    */
> -#define kunmap_atomic(addr, args...)				\
> -do {								\
> -	BUILD_BUG_ON(__same_type((addr), struct page *));	\
> -	__kunmap_atomic(addr);					\
> -} while (0)
> +static inline void kunmap_atomic(void *addr)
> +{
> +	BUILD_BUG_ON(__same_type((addr), struct page *));
> +	__kunmap_atomic(addr);
> +}
> +
> +static inline void __deprecated kunmap_atomic_deprecated(void *addr,
> +							enum km_type km)
> +{
> +	BUILD_BUG_ON(__same_type((addr), struct page *));
> +	__kunmap_atomic(addr);
> +}

This will break the misuse detection of kunmap_atomic (see commit 
597781f3e51f48ef8e67be772196d9e9673752c4).

kunmap_atomic() _must_ be a macro, so the __same_type can see the type 
the caller used. If you use an inline function, all it will see is a 
void *, even if the caller confused it with kunmap() and passed a struct 
page *.

-- 
Cesar Eduardo Barros
cesarb@cesarb.net
cesar.barros@gmail.com

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 10/62] ata: " Cong Wang
@ 2011-11-27 18:40   ` Jeff Garzik
  2011-11-28 10:01   ` Sergei Shtylyov
  1 sibling, 0 replies; 121+ messages in thread
From: Jeff Garzik @ 2011-11-27 18:40 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, linux-ide

On 11/27/2011 12:26 AM, Cong Wang wrote:
> Signed-off-by: Cong Wang<amwang@redhat.com>
> ---
>   drivers/ata/libata-sff.c |    8 ++++----
>   1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
> index 4cadfa2..8469cb5 100644
> --- a/drivers/ata/libata-sff.c
> +++ b/drivers/ata/libata-sff.c
> @@ -720,13 +720,13 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
>
>   		/* FIXME: use a bounce buffer */
>   		local_irq_save(flags);
> -		buf = kmap_atomic(page, KM_IRQ0);
> +		buf = kmap_atomic(page);
>
>   		/* do the actual data transfer */
>   		ap->ops->sff_data_xfer(qc->dev, buf + offset, qc->sect_size,
>   				       do_write);
>
> -		kunmap_atomic(buf, KM_IRQ0);
> +		kunmap_atomic(buf);
>   		local_irq_restore(flags);
>   	} else {
>   		buf = page_address(page);
> @@ -865,13 +865,13 @@ next_sg:
>
>   		/* FIXME: use bounce buffer */
>   		local_irq_save(flags);
> -		buf = kmap_atomic(page, KM_IRQ0);
> +		buf = kmap_atomic(page);
>
>   		/* do the actual data transfer */
>   		consumed = ap->ops->sff_data_xfer(dev,  buf + offset,
>   								count, rw);
>
> -		kunmap_atomic(buf, KM_IRQ0);
> +		kunmap_atomic(buf);
>   		local_irq_restore(flags);
>   	} else {

Acked-by: Jeff Garzik <jgarzik@redhat.com>




^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 20/62] mmc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
@ 2011-11-27 21:02   ` Guennadi Liakhovetski
  2011-11-30 23:51   ` David Brown
  2011-12-01 18:47   ` Chris Ball
  2 siblings, 0 replies; 121+ messages in thread
From: Guennadi Liakhovetski @ 2011-11-27 21:02 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Nicolas Ferre, Chris Ball, David Brown,
	Daniel Walker, Bryan Huntsman, Alex Dubov, Ian Molton,
	linux-arm-kernel, linux-mmc, linux-arm-msm

Hi Cong Wang

Thanks for the patch, one small comment though:

On Sun, 27 Nov 2011, Cong Wang wrote:

> 
> Signed-off-by: Cong Wang <amwang@redhat.com>
> ---
>  drivers/mmc/host/at91_mci.c |    8 ++++----
>  drivers/mmc/host/msm_sdcc.c |    6 +++---
>  drivers/mmc/host/sdhci.c    |    4 ++--
>  drivers/mmc/host/tifm_sd.c  |   16 ++++++++--------
>  drivers/mmc/host/tmio_mmc.c |    1 -
>  drivers/mmc/host/tmio_mmc.h |    4 ++--
>  6 files changed, 19 insertions(+), 20 deletions(-)

[snip]

> diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c
> index a4ea102..4626ef2 100644
> --- a/drivers/mmc/host/tmio_mmc.c
> +++ b/drivers/mmc/host/tmio_mmc.c
> @@ -20,7 +20,6 @@
>  #include <linux/module.h>
>  #include <linux/pagemap.h>
>  #include <linux/scatterlist.h>
> -
>  #include "tmio_mmc.h"
>  
>  #ifdef CONFIG_PM

This hunk doesn't belong here, please, drop it.

Otherwise for TMIO

Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>

Thanks
Guennadi

> diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
> index 3020f98..a95e6d9 100644
> --- a/drivers/mmc/host/tmio_mmc.h
> +++ b/drivers/mmc/host/tmio_mmc.h
> @@ -105,13 +105,13 @@ static inline char *tmio_mmc_kmap_atomic(struct scatterlist *sg,
>  					 unsigned long *flags)
>  {
>  	local_irq_save(*flags);
> -	return kmap_atomic(sg_page(sg), KM_BIO_SRC_IRQ) + sg->offset;
> +	return kmap_atomic(sg_page(sg)) + sg->offset;
>  }
>  
>  static inline void tmio_mmc_kunmap_atomic(struct scatterlist *sg,
>  					  unsigned long *flags, void *virt)
>  {
> -	kunmap_atomic(virt - sg->offset, KM_BIO_SRC_IRQ);
> +	kunmap_atomic(virt - sg->offset);
>  	local_irq_restore(*flags);
>  }
>  
> -- 
> 1.7.4.4
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (60 preceding siblings ...)
  2011-11-27  5:27 ` [PATCH 62/62] feature-removal-schedule.txt: add the deprecated form of kmap_atomic() Cong Wang
@ 2011-11-27 22:21 ` Benjamin Herrenschmidt
  2011-11-28  4:34   ` Benjamin Herrenschmidt
  2011-11-28  7:42   ` Cong Wang
  2011-11-29  3:36 ` Cong Wang
  62 siblings, 2 replies; 121+ messages in thread
From: Benjamin Herrenschmidt @ 2011-11-27 22:21 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Peter Zijlstra

On Sun, 2011-11-27 at 13:26 +0800, Cong Wang wrote:
> V1: https://lkml.org/lkml/2011/1/30/13
> 
> V1->V2: Split patches and rebase them to the latest linus tree.

I'm not too fan of the split myself... 62 patches is just plain crazy.
However, no obvious objection from the patches themselves (at least the
ones affecting powerpc), though I haven't had a chance to test them yet.

Cheers,
Ben.

> Now the second argument of kmap_atomic()/kunmap_atomic() is totally
> unused, this patchset removes it from all callers.
> 
> But for backward compatibility, we still keep the deprecated form,
> and will warn the users if they still use the deprecated one, like this:
> 
> drivers/block/drbd/drbd_bitmap.c: In function ‘bm_page_io_async’:
> drivers/block/drbd/drbd_bitmap.c:973:3: warning: ‘kmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:124)
> drivers/block/drbd/drbd_bitmap.c:977:3: warning: ‘kunmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:144)
> 
> To schedule the final removal of these stuffs, I also write some doc into
> feature-removal-schedule.txt, see the last patch in this thread.
> 
> Most of this patch is generated by the following commands:
> 
> find . -name '*.[c|h]' -exec sed -i -e 's#\bkmap_atomic(\(.*\),.*)#kmap_atomic(\1)#' '{}' \;
> find . -name '*.[c|h]' -exec sed -i -e 's#\bkunmap_atomic(\(.*\),.*)#kunmap_atomic(\1)#' '{}' \;
> 
> the rest exceptions are fixed by hands.
> 
> This patch passes 'make allyesconfig' test on both ppc64 and x86_64.
> 
> BTW, all patches can be found on my github:
> 
> 	git@github.com:congwang/linux.git #for-next
> 
> and the final removal patches can be found here:
> 
> 	git@github.com:congwang/linux.git #for-3.5
> 
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> 
> ---
> 
> Cong Wang (62):
>   highmem: mark k[un]map_atomic() with two arguments as deprecated
>   include/linux/highmem.h: remove the second argument of
>     k[un]map_atomic()
>   arm: remove the second argument of k[un]map_atomic()
>   mips: remove the second argument of k[un]map_atomic()
>   powerpc: remove the second argument of k[un]map_atomic()
>   sh: remove the second argument of k[un]map_atomic()
>   um: remove the second argument of k[un]map_atomic()
>   x86: remove the second argument of k[un]map_atomic()
>   crypto: remove the second argument of k[un]map_atomic()
>   ata: remove the second argument of k[un]map_atomic()
>   block: remove the second argument of k[un]map_atomic()
>   crypto: remove the second argument of k[un]map_atomic()
>   edac: remove the second argument of k[un]map_atomic()
>   drm: remove the second argument of k[un]map_atomic()
>   ide: remove the second argument of k[un]map_atomic()
>   infiniband: remove the second argument of k[un]map_atomic()
>   md: remove the second argument of k[un]map_atomic()
>   media: remove the second argument of k[un]map_atomic()
>   memstick: remove the second argument of k[un]map_atomic()
>   mmc: remove the second argument of k[un]map_atomic()
>   net: remove the second argument of k[un]map_atomic()
>   scsi: remove the second argument of k[un]map_atomic()
>   hv: remove the second argument of k[un]map_atomic()
>   pohmelfs: remove the second argument of k[un]map_atomic()
>   rtl8192u: remove the second argument of k[un]map_atomic()
>   zram: remove the second argument of k[un]map_atomic()
>   target: remove the second argument of k[un]map_atomic()
>   vhost: remove the second argument of k[un]map_atomic()
>   fs: remove the second argument of k[un]map_atomic()
>   btrfs: remove the second argument of k[un]map_atomic()
>   ecryptfs: remove the second argument of k[un]map_atomic()
>   afs: remove the second argument of k[un]map_atomic()
>   exofs: remove the second argument of k[un]map_atomic()
>   ext2: remove the second argument of k[un]map_atomic()
>   fuse: remove the second argument of k[un]map_atomic()
>   gfs2: remove the second argument of k[un]map_atomic()
>   jbd: remove the second argument of k[un]map_atomic()
>   jbd2: remove the second argument of k[un]map_atomic()
>   logfs: remove the second argument of k[un]map_atomic()
>   minix: remove the second argument of k[un]map_atomic()
>   nfs: remove the second argument of k[un]map_atomic()
>   nilfs2: remove the second argument of k[un]map_atomic()
>   ntfs: remove the second argument of k[un]map_atomic()
>   ocfs2: remove the second argument of k[un]map_atomic()
>   reiserfs: remove the second argument of k[un]map_atomic()
>   squashfs: remove the second argument of k[un]map_atomic()
>   ubifs: remove the second argument of k[un]map_atomic()
>   udf: remove the second argument of k[un]map_atomic()
>   kdb: remove the second argument of k[un]map_atomic()
>   power: remove the second argument of k[un]map_atomic()
>   lib: remove the second argument of k[un]map_atomic()
>   mm: remove the second argument of k[un]map_atomic()
>   net: remove the second argument of k[un]map_atomic()
>   rds: remove the second argument of k[un]map_atomic()
>   sunrpc: remove the second argument of k[un]map_atomic()
>   tomoyo: remove the second argument of k[un]map_atomic()
>   md: remove the second argument of k[un]map_atomic()
>   gma500: remove the second argument of k[un]map_atomic()
>   zcache: remove the second argument of k[un]map_atomic()
>   drbd: remove the second argument of k[un]map_atomic()
>   highmem: kill all __kmap_atomic()
>   feature-removal-schedule.txt: add the deprecated form of
>     kmap_atomic()
> 
>  Documentation/feature-removal-schedule.txt       |    8 ++
>  arch/arm/mm/copypage-fa.c                        |   12 ++--
>  arch/arm/mm/copypage-feroceon.c                  |   12 ++--
>  arch/arm/mm/copypage-v3.c                        |   12 ++--
>  arch/arm/mm/copypage-v4mc.c                      |    8 +-
>  arch/arm/mm/copypage-v4wb.c                      |   12 ++--
>  arch/arm/mm/copypage-v4wt.c                      |   12 ++--
>  arch/arm/mm/copypage-v6.c                        |   12 ++--
>  arch/arm/mm/copypage-xsc3.c                      |   12 ++--
>  arch/arm/mm/copypage-xscale.c                    |    8 +-
>  arch/arm/mm/highmem.c                            |    4 +-
>  arch/frv/include/asm/highmem.h                   |    2 +-
>  arch/frv/mm/highmem.c                            |    4 +-
>  arch/mips/include/asm/highmem.h                  |    2 +-
>  arch/mips/mm/c-r4k.c                             |    4 +-
>  arch/mips/mm/highmem.c                           |    4 +-
>  arch/mips/mm/init.c                              |    8 +-
>  arch/mn10300/include/asm/highmem.h               |    2 +-
>  arch/parisc/include/asm/cacheflush.h             |    2 +-
>  arch/powerpc/include/asm/highmem.h               |    2 +-
>  arch/powerpc/kvm/book3s_pr.c                     |    4 +-
>  arch/powerpc/mm/dma-noncoherent.c                |    5 +-
>  arch/powerpc/mm/hugetlbpage.c                    |    4 +-
>  arch/powerpc/mm/mem.c                            |    4 +-
>  arch/sh/mm/cache-sh4.c                           |    4 +-
>  arch/sh/mm/cache.c                               |   12 ++--
>  arch/sparc/include/asm/highmem.h                 |    2 +-
>  arch/sparc/mm/highmem.c                          |    4 +-
>  arch/tile/include/asm/highmem.h                  |    2 +-
>  arch/tile/mm/highmem.c                           |    4 +-
>  arch/um/kernel/skas/uaccess.c                    |    4 +-
>  arch/x86/crypto/aesni-intel_glue.c               |   24 +++---
>  arch/x86/include/asm/highmem.h                   |    2 +-
>  arch/x86/kernel/crash_dump_32.c                  |    6 +-
>  arch/x86/kvm/lapic.c                             |    8 +-
>  arch/x86/kvm/paging_tmpl.h                       |    4 +-
>  arch/x86/kvm/x86.c                               |    8 +-
>  arch/x86/lib/usercopy_32.c                       |    4 +-
>  arch/x86/mm/highmem_32.c                         |    4 +-
>  crypto/ahash.c                                   |    4 +-
>  crypto/async_tx/async_memcpy.c                   |    8 +-
>  crypto/blkcipher.c                               |    8 +-
>  crypto/ccm.c                                     |    4 +-
>  crypto/scatterwalk.c                             |    8 +-
>  crypto/shash.c                                   |    8 +-
>  drivers/ata/libata-sff.c                         |    8 +-
>  drivers/block/brd.c                              |   20 +++---
>  drivers/block/drbd/drbd_bitmap.c                 |   50 ++++++------
>  drivers/block/drbd/drbd_nl.c                     |    4 +-
>  drivers/block/loop.c                             |   16 ++--
>  drivers/block/pktcdvd.c                          |    8 +-
>  drivers/crypto/hifn_795x.c                       |   10 +-
>  drivers/edac/edac_mc.c                           |    4 +-
>  drivers/gpu/drm/drm_cache.c                      |    8 +-
>  drivers/gpu/drm/ttm/ttm_tt.c                     |   16 ++--
>  drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c              |    6 +-
>  drivers/ide/ide-taskfile.c                       |    4 +-
>  drivers/infiniband/ulp/iser/iser_memory.c        |    8 +-
>  drivers/md/bitmap.c                              |   42 +++++-----
>  drivers/md/dm-crypt.c                            |    8 +-
>  drivers/media/video/ivtv/ivtv-udma.c             |    4 +-
>  drivers/memstick/host/jmb38x_ms.c                |    4 +-
>  drivers/memstick/host/tifm_ms.c                  |    4 +-
>  drivers/mmc/host/at91_mci.c                      |    8 +-
>  drivers/mmc/host/msm_sdcc.c                      |    6 +-
>  drivers/mmc/host/sdhci.c                         |    4 +-
>  drivers/mmc/host/tifm_sd.c                       |   16 ++--
>  drivers/mmc/host/tmio_mmc.c                      |    1 -
>  drivers/mmc/host/tmio_mmc.h                      |    4 +-
>  drivers/net/ethernet/intel/e1000/e1000_main.c    |    6 +-
>  drivers/net/ethernet/intel/e1000e/netdev.c       |   10 +--
>  drivers/net/ethernet/sun/cassini.c               |    4 +-
>  drivers/scsi/arcmsr/arcmsr_hba.c                 |    8 +-
>  drivers/scsi/bnx2fc/bnx2fc_fcoe.c                |    5 +-
>  drivers/scsi/cxgbi/libcxgbi.c                    |    5 +-
>  drivers/scsi/fcoe/fcoe.c                         |    4 +-
>  drivers/scsi/fcoe/fcoe_transport.c               |    5 +-
>  drivers/scsi/gdth.c                              |    4 +-
>  drivers/scsi/ips.c                               |    6 +-
>  drivers/scsi/isci/request.c                      |   16 ++--
>  drivers/scsi/libfc/fc_fcp.c                      |    8 +-
>  drivers/scsi/libfc/fc_libfc.c                    |    8 +-
>  drivers/scsi/libfc/fc_libfc.h                    |    2 +-
>  drivers/scsi/libfc/fc_lport.c                    |    2 +-
>  drivers/scsi/libiscsi_tcp.c                      |    4 +-
>  drivers/scsi/libsas/sas_host_smp.c               |    8 +-
>  drivers/scsi/megaraid.c                          |    4 +-
>  drivers/scsi/mvsas/mv_sas.c                      |    4 +-
>  drivers/scsi/scsi_debug.c                        |   24 +++---
>  drivers/scsi/scsi_lib.c                          |    4 +-
>  drivers/scsi/sd_dif.c                            |   12 ++--
>  drivers/staging/gma500/mmu.c                     |   30 ++++----
>  drivers/staging/hv/netvsc_drv.c                  |    5 +-
>  drivers/staging/hv/rndis_filter.c                |    4 +-
>  drivers/staging/hv/storvsc_drv.c                 |   31 +++----
>  drivers/staging/pohmelfs/inode.c                 |    8 +-
>  drivers/staging/rtl8192u/ieee80211/cipher.c      |    8 +-
>  drivers/staging/rtl8192u/ieee80211/digest.c      |    8 +-
>  drivers/staging/rtl8192u/ieee80211/internal.h    |   17 ----
>  drivers/staging/rtl8192u/ieee80211/kmap_types.h  |   20 -----
>  drivers/staging/rtl8192u/ieee80211/scatterwalk.c |   19 +---
>  drivers/staging/zcache/zcache-main.c             |   16 ++--
>  drivers/staging/zram/xvmalloc.c                  |   39 +++++-----
>  drivers/staging/zram/zram_drv.c                  |   44 +++++-----
>  drivers/target/target_core_transport.c           |    4 +-
>  drivers/target/tcm_fc/tfc_io.c                   |   10 +--
>  drivers/vhost/vhost.c                            |    4 +-
>  fs/afs/fsclient.c                                |    8 +-
>  fs/afs/mntpt.c                                   |    4 +-
>  fs/aio.c                                         |   30 ++++----
>  fs/bio-integrity.c                               |   10 +-
>  fs/btrfs/compression.c                           |   12 ++--
>  fs/btrfs/extent_io.c                             |   16 ++--
>  fs/btrfs/file-item.c                             |    4 +-
>  fs/btrfs/inode.c                                 |   26 +++---
>  fs/btrfs/lzo.c                                   |    4 +-
>  fs/btrfs/scrub.c                                 |    8 +-
>  fs/btrfs/zlib.c                                  |    4 +-
>  fs/ecryptfs/mmap.c                               |    4 +-
>  fs/ecryptfs/read_write.c                         |    8 +-
>  fs/exec.c                                        |    4 +-
>  fs/exofs/dir.c                                   |    4 +-
>  fs/ext2/dir.c                                    |    4 +-
>  fs/fuse/dev.c                                    |    4 +-
>  fs/fuse/file.c                                   |    4 +-
>  fs/gfs2/aops.c                                   |   12 ++--
>  fs/gfs2/lops.c                                   |    8 +-
>  fs/gfs2/quota.c                                  |    4 +-
>  fs/jbd/journal.c                                 |   12 ++--
>  fs/jbd/transaction.c                             |    4 +-
>  fs/jbd2/commit.c                                 |    4 +-
>  fs/jbd2/journal.c                                |   12 ++--
>  fs/jbd2/transaction.c                            |    4 +-
>  fs/logfs/dir.c                                   |   18 ++--
>  fs/logfs/readwrite.c                             |   38 +++++-----
>  fs/logfs/segment.c                               |    4 +-
>  fs/minix/dir.c                                   |    4 +-
>  fs/namei.c                                       |    4 +-
>  fs/nfs/dir.c                                     |    8 +-
>  fs/nfs/nfs4proc.c                                |    4 +-
>  fs/nilfs2/cpfile.c                               |   94 +++++++++++-----------
>  fs/nilfs2/dat.c                                  |   38 +++++-----
>  fs/nilfs2/dir.c                                  |    4 +-
>  fs/nilfs2/ifile.c                                |    4 +-
>  fs/nilfs2/mdt.c                                  |    4 +-
>  fs/nilfs2/page.c                                 |    8 +-
>  fs/nilfs2/recovery.c                             |    4 +-
>  fs/nilfs2/segbuf.c                               |    4 +-
>  fs/nilfs2/sufile.c                               |   68 ++++++++--------
>  fs/ntfs/aops.c                                   |   20 +++---
>  fs/ntfs/attrib.c                                 |   20 +++---
>  fs/ntfs/file.c                                   |   16 ++--
>  fs/ntfs/super.c                                  |    8 +-
>  fs/ocfs2/aops.c                                  |   16 ++--
>  fs/pipe.c                                        |    8 +-
>  fs/reiserfs/stree.c                              |    4 +-
>  fs/reiserfs/tail_conversion.c                    |    4 +-
>  fs/splice.c                                      |    7 +-
>  fs/squashfs/file.c                               |    8 +-
>  fs/squashfs/symlink.c                            |    4 +-
>  fs/ubifs/file.c                                  |    4 +-
>  fs/udf/file.c                                    |    4 +-
>  include/crypto/scatterwalk.h                     |   28 +------
>  include/linux/bio.h                              |    8 +-
>  include/linux/highmem.h                          |   77 ++++++++++++-----
>  kernel/debug/kdb/kdb_support.c                   |    4 +-
>  kernel/power/snapshot.c                          |   28 +++---
>  lib/scatterlist.c                                |    4 +-
>  lib/swiotlb.c                                    |    5 +-
>  mm/bounce.c                                      |    4 +-
>  mm/filemap.c                                     |    8 +-
>  mm/ksm.c                                         |   12 ++--
>  mm/memory.c                                      |    4 +-
>  mm/shmem.c                                       |    4 +-
>  mm/swapfile.c                                    |   30 ++++----
>  mm/vmalloc.c                                     |    8 +-
>  net/core/kmap_skb.h                              |    4 +-
>  net/rds/ib_recv.c                                |    7 +-
>  net/rds/info.c                                   |    6 +-
>  net/rds/iw_recv.c                                |    7 +-
>  net/rds/loop.c                                   |    2 +-
>  net/rds/rds.h                                    |    2 +-
>  net/rds/recv.c                                   |    2 +-
>  net/rds/tcp_recv.c                               |   11 +--
>  net/sunrpc/auth_gss/gss_krb5_wrap.c              |    4 +-
>  net/sunrpc/socklib.c                             |    4 +-
>  net/sunrpc/xdr.c                                 |   20 +++---
>  net/sunrpc/xprtrdma/rpc_rdma.c                   |    8 +-
>  security/tomoyo/domain.c                         |    4 +-
>  189 files changed, 936 insertions(+), 992 deletions(-)
>  create mode 100644 drivers/net/team/Module.symvers
>  delete mode 100644 drivers/staging/rtl8192u/ieee80211/kmap_types.h
> 



^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 18/62] media: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 18/62] media: " Cong Wang
@ 2011-11-27 23:10   ` Andy Walls
  0 siblings, 0 replies; 121+ messages in thread
From: Andy Walls @ 2011-11-27 23:10 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Mauro Carvalho Chehab, ivtv-devel, linux-media

On Sun, 2011-11-27 at 13:26 +0800, Cong Wang wrote:
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Andy Walls <awalls@md.metrocast.net>

Regards,
Andy

> ---
>  drivers/media/video/ivtv/ivtv-udma.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/video/ivtv/ivtv-udma.c b/drivers/media/video/ivtv/ivtv-udma.c
> index 69cc816..7338cb2 100644
> --- a/drivers/media/video/ivtv/ivtv-udma.c
> +++ b/drivers/media/video/ivtv/ivtv-udma.c
> @@ -57,9 +57,9 @@ int ivtv_udma_fill_sg_list (struct ivtv_user_dma *dma, struct ivtv_dma_page_info
>  			if (dma->bouncemap[map_offset] == NULL)
>  				return -1;
>  			local_irq_save(flags);
> -			src = kmap_atomic(dma->map[map_offset], KM_BOUNCE_READ) + offset;
> +			src = kmap_atomic(dma->map[map_offset]) + offset;
>  			memcpy(page_address(dma->bouncemap[map_offset]) + offset, src, len);
> -			kunmap_atomic(src, KM_BOUNCE_READ);
> +			kunmap_atomic(src);
>  			local_irq_restore(flags);
>  			sg_set_page(&dma->SGlist[map_offset], dma->bouncemap[map_offset], len, offset);
>  		}



^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 24/62] pohmelfs: remove the second argument of k[un]map_atomic()
  2011-11-27  9:34   ` Greg KH
@ 2011-11-28  0:58     ` Evgeniy Polyakov
  0 siblings, 0 replies; 121+ messages in thread
From: Evgeniy Polyakov @ 2011-11-28  0:58 UTC (permalink / raw)
  To: Greg KH
  Cc: Cong Wang, linux-kernel, akpm, Josef Bacik, Jan Kara, Al Viro, devel

Looks good!
Although this code is about to die, still worth fixing.
Thank you.

On Sun, Nov 27, 2011 at 01:34:36AM -0800, Greg KH (gregkh@suse.de) wrote:
> On Sun, Nov 27, 2011 at 01:27:04PM +0800, Cong Wang wrote:
> > 
> > Signed-off-by: Cong Wang <amwang@redhat.com>
> 
> Acked-by: Greg Kroah-Hartman <gregkh@suse.de>

Acked-by: Evgeniy Polyakov <zbr@ioremap.net>

-- 
	Evgeniy Polyakov

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 29/62] fs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 29/62] fs: " Cong Wang
@ 2011-11-28  2:36   ` Benjamin LaHaise
  0 siblings, 0 replies; 121+ messages in thread
From: Benjamin LaHaise @ 2011-11-28  2:36 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Alexander Viro, Jens Axboe,
	Martin K. Petersen, Stephen Rothwell, Tao Ma, linux-aio,
	linux-fsdevel

On Sun, Nov 27, 2011 at 01:27:09PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Benjamin LaHaise <bcrl@kvack.org>

		-ben

> ---
>  fs/aio.c            |   30 +++++++++++++++---------------
>  fs/bio-integrity.c  |   10 +++++-----
>  fs/exec.c           |    4 ++--
>  fs/namei.c          |    4 ++--
>  fs/pipe.c           |    8 ++++----
>  fs/splice.c         |    7 ++-----
>  include/linux/bio.h |    8 ++++----
>  7 files changed, 34 insertions(+), 37 deletions(-)
> 
> diff --git a/fs/aio.c b/fs/aio.c
> index 78c514c..34e0d9f 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -160,7 +160,7 @@ static int aio_setup_ring(struct kioctx *ctx)
>  
>  	info->nr = nr_events;		/* trusted copy */
>  
> -	ring = kmap_atomic(info->ring_pages[0], KM_USER0);
> +	ring = kmap_atomic(info->ring_pages[0]);
>  	ring->nr = nr_events;	/* user copy */
>  	ring->id = ctx->user_id;
>  	ring->head = ring->tail = 0;
> @@ -168,32 +168,32 @@ static int aio_setup_ring(struct kioctx *ctx)
>  	ring->compat_features = AIO_RING_COMPAT_FEATURES;
>  	ring->incompat_features = AIO_RING_INCOMPAT_FEATURES;
>  	ring->header_length = sizeof(struct aio_ring);
> -	kunmap_atomic(ring, KM_USER0);
> +	kunmap_atomic(ring);
>  
>  	return 0;
>  }
>  
>  
>  /* aio_ring_event: returns a pointer to the event at the given index from
> - * kmap_atomic(, km).  Release the pointer with put_aio_ring_event();
> + * kmap_atomic().  Release the pointer with put_aio_ring_event();
>   */
>  #define AIO_EVENTS_PER_PAGE	(PAGE_SIZE / sizeof(struct io_event))
>  #define AIO_EVENTS_FIRST_PAGE	((PAGE_SIZE - sizeof(struct aio_ring)) / sizeof(struct io_event))
>  #define AIO_EVENTS_OFFSET	(AIO_EVENTS_PER_PAGE - AIO_EVENTS_FIRST_PAGE)
>  
> -#define aio_ring_event(info, nr, km) ({					\
> +#define aio_ring_event(info, nr) ({					\
>  	unsigned pos = (nr) + AIO_EVENTS_OFFSET;			\
>  	struct io_event *__event;					\
>  	__event = kmap_atomic(						\
> -			(info)->ring_pages[pos / AIO_EVENTS_PER_PAGE], km); \
> +			(info)->ring_pages[pos / AIO_EVENTS_PER_PAGE]); \
>  	__event += pos % AIO_EVENTS_PER_PAGE;				\
>  	__event;							\
>  })
>  
> -#define put_aio_ring_event(event, km) do {	\
> +#define put_aio_ring_event(event) do {		\
>  	struct io_event *__event = (event);	\
>  	(void)__event;				\
> -	kunmap_atomic((void *)((unsigned long)__event & PAGE_MASK), km); \
> +	kunmap_atomic((void *)((unsigned long)__event & PAGE_MASK)); \
>  } while(0)
>  
>  static void ctx_rcu_free(struct rcu_head *head)
> @@ -1012,10 +1012,10 @@ int aio_complete(struct kiocb *iocb, long res, long res2)
>  	if (kiocbIsCancelled(iocb))
>  		goto put_rq;
>  
> -	ring = kmap_atomic(info->ring_pages[0], KM_IRQ1);
> +	ring = kmap_atomic(info->ring_pages[0]);
>  
>  	tail = info->tail;
> -	event = aio_ring_event(info, tail, KM_IRQ0);
> +	event = aio_ring_event(info, tail);
>  	if (++tail >= info->nr)
>  		tail = 0;
>  
> @@ -1036,8 +1036,8 @@ int aio_complete(struct kiocb *iocb, long res, long res2)
>  	info->tail = tail;
>  	ring->tail = tail;
>  
> -	put_aio_ring_event(event, KM_IRQ0);
> -	kunmap_atomic(ring, KM_IRQ1);
> +	put_aio_ring_event(event);
> +	kunmap_atomic(ring);
>  
>  	pr_debug("added to ring %p at [%lu]\n", iocb, tail);
>  
> @@ -1082,7 +1082,7 @@ static int aio_read_evt(struct kioctx *ioctx, struct io_event *ent)
>  	unsigned long head;
>  	int ret = 0;
>  
> -	ring = kmap_atomic(info->ring_pages[0], KM_USER0);
> +	ring = kmap_atomic(info->ring_pages[0]);
>  	dprintk("in aio_read_evt h%lu t%lu m%lu\n",
>  		 (unsigned long)ring->head, (unsigned long)ring->tail,
>  		 (unsigned long)ring->nr);
> @@ -1094,18 +1094,18 @@ static int aio_read_evt(struct kioctx *ioctx, struct io_event *ent)
>  
>  	head = ring->head % info->nr;
>  	if (head != ring->tail) {
> -		struct io_event *evp = aio_ring_event(info, head, KM_USER1);
> +		struct io_event *evp = aio_ring_event(info, head);
>  		*ent = *evp;
>  		head = (head + 1) % info->nr;
>  		smp_mb(); /* finish reading the event before updatng the head */
>  		ring->head = head;
>  		ret = 1;
> -		put_aio_ring_event(evp, KM_USER1);
> +		put_aio_ring_event(evp);
>  	}
>  	spin_unlock(&info->ring_lock);
>  
>  out:
> -	kunmap_atomic(ring, KM_USER0);
> +	kunmap_atomic(ring);
>  	dprintk("leaving aio_read_evt: %d  h%lu t%lu\n", ret,
>  		 (unsigned long)ring->head, (unsigned long)ring->tail);
>  	return ret;
> diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c
> index c2183f3..e85c04b 100644
> --- a/fs/bio-integrity.c
> +++ b/fs/bio-integrity.c
> @@ -357,7 +357,7 @@ static void bio_integrity_generate(struct bio *bio)
>  	bix.sector_size = bi->sector_size;
>  
>  	bio_for_each_segment(bv, bio, i) {
> -		void *kaddr = kmap_atomic(bv->bv_page, KM_USER0);
> +		void *kaddr = kmap_atomic(bv->bv_page);
>  		bix.data_buf = kaddr + bv->bv_offset;
>  		bix.data_size = bv->bv_len;
>  		bix.prot_buf = prot_buf;
> @@ -371,7 +371,7 @@ static void bio_integrity_generate(struct bio *bio)
>  		total += sectors * bi->tuple_size;
>  		BUG_ON(total > bio->bi_integrity->bip_size);
>  
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  	}
>  }
>  
> @@ -498,7 +498,7 @@ static int bio_integrity_verify(struct bio *bio)
>  	bix.sector_size = bi->sector_size;
>  
>  	bio_for_each_segment(bv, bio, i) {
> -		void *kaddr = kmap_atomic(bv->bv_page, KM_USER0);
> +		void *kaddr = kmap_atomic(bv->bv_page);
>  		bix.data_buf = kaddr + bv->bv_offset;
>  		bix.data_size = bv->bv_len;
>  		bix.prot_buf = prot_buf;
> @@ -507,7 +507,7 @@ static int bio_integrity_verify(struct bio *bio)
>  		ret = bi->verify_fn(&bix);
>  
>  		if (ret) {
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  			return ret;
>  		}
>  
> @@ -517,7 +517,7 @@ static int bio_integrity_verify(struct bio *bio)
>  		total += sectors * bi->tuple_size;
>  		BUG_ON(total > bio->bi_integrity->bip_size);
>  
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  	}
>  
>  	return ret;
> diff --git a/fs/exec.c b/fs/exec.c
> index 3625464..ca141db 100644
> --- a/fs/exec.c
> +++ b/fs/exec.c
> @@ -1334,13 +1334,13 @@ int remove_arg_zero(struct linux_binprm *bprm)
>  			ret = -EFAULT;
>  			goto out;
>  		}
> -		kaddr = kmap_atomic(page, KM_USER0);
> +		kaddr = kmap_atomic(page);
>  
>  		for (; offset < PAGE_SIZE && kaddr[offset];
>  				offset++, bprm->p++)
>  			;
>  
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		put_arg_page(page);
>  
>  		if (offset == PAGE_SIZE)
> diff --git a/fs/namei.c b/fs/namei.c
> index 5008f01..c02b2c6 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -3346,9 +3346,9 @@ retry:
>  	if (err)
>  		goto fail;
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	memcpy(kaddr, symname, len-1);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	err = pagecache_write_end(NULL, mapping, 0, len-1, len-1,
>  							page, fsdata);
> diff --git a/fs/pipe.c b/fs/pipe.c
> index 4065f07..2c59dfa 100644
> --- a/fs/pipe.c
> +++ b/fs/pipe.c
> @@ -230,7 +230,7 @@ void *generic_pipe_buf_map(struct pipe_inode_info *pipe,
>  {
>  	if (atomic) {
>  		buf->flags |= PIPE_BUF_FLAG_ATOMIC;
> -		return kmap_atomic(buf->page, KM_USER0);
> +		return kmap_atomic(buf->page);
>  	}
>  
>  	return kmap(buf->page);
> @@ -251,7 +251,7 @@ void generic_pipe_buf_unmap(struct pipe_inode_info *pipe,
>  {
>  	if (buf->flags & PIPE_BUF_FLAG_ATOMIC) {
>  		buf->flags &= ~PIPE_BUF_FLAG_ATOMIC;
> -		kunmap_atomic(map_data, KM_USER0);
> +		kunmap_atomic(map_data);
>  	} else
>  		kunmap(buf->page);
>  }
> @@ -565,14 +565,14 @@ redo1:
>  			iov_fault_in_pages_read(iov, chars);
>  redo2:
>  			if (atomic)
> -				src = kmap_atomic(page, KM_USER0);
> +				src = kmap_atomic(page);
>  			else
>  				src = kmap(page);
>  
>  			error = pipe_iov_copy_from_user(src, iov, chars,
>  							atomic);
>  			if (atomic)
> -				kunmap_atomic(src, KM_USER0);
> +				kunmap_atomic(src);
>  			else
>  				kunmap(page);
>  
> diff --git a/fs/splice.c b/fs/splice.c
> index fa2defa..da01377 100644
> --- a/fs/splice.c
> +++ b/fs/splice.c
> @@ -738,15 +738,12 @@ int pipe_to_file(struct pipe_inode_info *pipe, struct pipe_buffer *buf,
>  		goto out;
>  
>  	if (buf->page != page) {
> -		/*
> -		 * Careful, ->map() uses KM_USER0!
> -		 */
>  		char *src = buf->ops->map(pipe, buf, 1);
> -		char *dst = kmap_atomic(page, KM_USER1);
> +		char *dst = kmap_atomic(page);
>  
>  		memcpy(dst + offset, src + buf->offset, this_len);
>  		flush_dcache_page(page);
> -		kunmap_atomic(dst, KM_USER1);
> +		kunmap_atomic(dst);
>  		buf->ops->unmap(pipe, buf, src);
>  	}
>  	ret = pagecache_write_end(file, mapping, sd->pos, this_len, this_len,
> diff --git a/include/linux/bio.h b/include/linux/bio.h
> index 847994a..6ed3ba4 100644
> --- a/include/linux/bio.h
> +++ b/include/linux/bio.h
> @@ -101,10 +101,10 @@ static inline int bio_has_allocated_vec(struct bio *bio)
>   * I/O completely on that queue (see ide-dma for example)
>   */
>  #define __bio_kmap_atomic(bio, idx, kmtype)				\
> -	(kmap_atomic(bio_iovec_idx((bio), (idx))->bv_page, kmtype) +	\
> +	(kmap_atomic(bio_iovec_idx((bio), (idx))->bv_page) +	\
>  		bio_iovec_idx((bio), (idx))->bv_offset)
>  
> -#define __bio_kunmap_atomic(addr, kmtype) kunmap_atomic(addr, kmtype)
> +#define __bio_kunmap_atomic(addr, kmtype) kunmap_atomic(addr)
>  
>  /*
>   * merge helpers etc
> @@ -317,7 +317,7 @@ static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
>  	 * balancing is a lot nicer this way
>  	 */
>  	local_irq_save(*flags);
> -	addr = (unsigned long) kmap_atomic(bvec->bv_page, KM_BIO_SRC_IRQ);
> +	addr = (unsigned long) kmap_atomic(bvec->bv_page);
>  
>  	BUG_ON(addr & ~PAGE_MASK);
>  
> @@ -328,7 +328,7 @@ static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags)
>  {
>  	unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
>  
> -	kunmap_atomic((void *) ptr, KM_BIO_SRC_IRQ);
> +	kunmap_atomic((void *) ptr);
>  	local_irq_restore(*flags);
>  }
>  
> -- 
> 1.7.4.4

-- 
"Thought is the essence of where you are now."

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
  2011-11-27 22:21 ` [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Benjamin Herrenschmidt
@ 2011-11-28  4:34   ` Benjamin Herrenschmidt
  2011-11-28  5:34     ` Cong Wang
  2011-11-28  7:42   ` Cong Wang
  1 sibling, 1 reply; 121+ messages in thread
From: Benjamin Herrenschmidt @ 2011-11-28  4:34 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Peter Zijlstra, Tony Breeds

On Mon, 2011-11-28 at 09:21 +1100, Benjamin Herrenschmidt wrote:
> On Sun, 2011-11-27 at 13:26 +0800, Cong Wang wrote:
> > V1: https://lkml.org/lkml/2011/1/30/13
> > 
> > V1->V2: Split patches and rebase them to the latest linus tree.
> 
> I'm not too fan of the split myself... 62 patches is just plain crazy.
> However, no obvious objection from the patches themselves (at least the
> ones affecting powerpc), though I haven't had a chance to test them yet.

So Tony tested for me (thanks !) and it looks all fine.

For the powerpc parts

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Cheers,
Ben.



^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated
  2011-11-27 12:34   ` Cesar Eduardo Barros
@ 2011-11-28  5:07     ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  5:07 UTC (permalink / raw)
  To: Cesar Eduardo Barros
  Cc: linux-kernel, akpm, Nick Bowler, Peter Zijlstra,
	Christoph Lameter, Tejun Heo, H. Peter Anvin

于 2011年11月27日 20:34, Cesar Eduardo Barros 写道:
>
> This will break the misuse detection of kunmap_atomic (see commit 597781f3e51f48ef8e67be772196d9e9673752c4).
>
> kunmap_atomic() _must_ be a macro, so the __same_type can see the type the caller used. If you use an inline function, all it will see is a void *, even if the caller confused it with kunmap() and passed a struct page *.
>

Hmm, I think you are right, I will switch it back to a macro.

Thanks for review!

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [dm-devel] [PATCH 17/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27 10:27     ` [dm-devel] " Milan Broz
@ 2011-11-28  5:10       ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  5:10 UTC (permalink / raw)
  To: Milan Broz
  Cc: device-mapper development, NeilBrown, linux-raid, akpm, linux-kernel

于 2011年11月27日 18:27, Milan Broz 写道:
> On 11/27/2011 07:00 AM, NeilBrown wrote:
>> On Sun, 27 Nov 2011 13:26:57 +0800 Cong Wang<amwang@redhat.com>  wrote:
>>
>>>
>>> Signed-off-by: Cong Wang<amwang@redhat.com>
>>
>> This and patch 57/62
>>
>>   Acked-by: NeilBrown<neilb@suse.de>
>>
>> thanks.
>>
>> Not sure why there are two separate patches to md/bitmap.c though...
>>
>> ... and I cannot offically 'ack' the dm-crypt.c parts of this as I'm not the
>>      maintainer.  'md' and 'dm' are separate systems in the same directory -
>>      confusing, isn't it :-(

That is my bad, I should fold the md parts into one... :-/
I will separate them correctly.

>
> These little walled gardens ... :)
>
> I hope I can ack that dm-crypt code, I added that chunk
> as part of loop-aes compatibility code.
> (Anyway Alasdair as dm maintainer should ack it too.)
>
> Acked-by: Milan Broz<mbroz@redhat.com>
>

Thanks, Neil and Milan!

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
  2011-11-28  4:34   ` Benjamin Herrenschmidt
@ 2011-11-28  5:34     ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  5:34 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linux-kernel, akpm, Peter Zijlstra, Tony Breeds

于 2011年11月28日 12:34, Benjamin Herrenschmidt 写道:
> On Mon, 2011-11-28 at 09:21 +1100, Benjamin Herrenschmidt wrote:
>> On Sun, 2011-11-27 at 13:26 +0800, Cong Wang wrote:
>>> V1: https://lkml.org/lkml/2011/1/30/13
>>>
>>> V1->V2: Split patches and rebase them to the latest linus tree.
>>
>> I'm not too fan of the split myself... 62 patches is just plain crazy.
>> However, no obvious objection from the patches themselves (at least the
>> ones affecting powerpc), though I haven't had a chance to test them yet.
>
> So Tony tested for me (thanks !) and it looks all fine.
>
> For the powerpc parts
>
> Acked-by: Benjamin Herrenschmidt<benh@kernel.crashing.org>
>

Thanks for review and tests!

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 16/62] infiniband: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 16/62] infiniband: " Cong Wang
@ 2011-11-28  7:38   ` Roland Dreier
  2011-11-28  7:45     ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: Roland Dreier @ 2011-11-28  7:38 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Sean Hefty, Hal Rosenstock, linux-rdma

These look fine, given the second argument is unused.  So

Acked-by: Roland Dreier <roland@purestorage.com>

... or is there some point when the <linux/highmem.h> part is
going in and where it makes sense for me to apply this through
my tree?

 - R.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
  2011-11-27  6:12   ` David Miller
  2011-11-27  8:07   ` Eric Dumazet
@ 2011-11-28  7:39   ` Cong Wang
  2011-11-28  7:48   ` [UPDATED PATCH " Cong Wang
  3 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:39 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Jeff Kirsher, Jesse Brandeburg, Bruce Allan,
	Carolyn Wyborny, Don Skidmore, Greg Rose, Peter P Waskiewicz Jr,
	Alex Duyck, John Ronciak, David S. Miller, Dean Nelson,
	Eric Dumazet, Ian Campbell, Jiri Pirko, e1000-devel, netdev

于 2011年11月27日 13:27, Cong Wang 写道:
> Signed-off-by: Cong Wang<amwang@redhat.com>
...
>   create mode 100644 drivers/net/team/Module.symvers

This piece is not correct, I will send an updated patch.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
  2011-11-27 22:21 ` [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Benjamin Herrenschmidt
  2011-11-28  4:34   ` Benjamin Herrenschmidt
@ 2011-11-28  7:42   ` Cong Wang
  1 sibling, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:42 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linux-kernel, akpm, Peter Zijlstra

于 2011年11月28日 06:21, Benjamin Herrenschmidt 写道:
> On Sun, 2011-11-27 at 13:26 +0800, Cong Wang wrote:
>> V1: https://lkml.org/lkml/2011/1/30/13
>>
>> V1->V2: Split patches and rebase them to the latest linus tree.
>
> I'm not too fan of the split myself... 62 patches is just plain crazy.
> However, no obvious objection from the patches themselves (at least the
> ones affecting powerpc), though I haven't had a chance to test them yet.

Actually Andrew Morton prefers to have patches split, also, splitting
patches helps review. ;-)

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 16/62] infiniband: remove the second argument of k[un]map_atomic()
  2011-11-28  7:38   ` Roland Dreier
@ 2011-11-28  7:45     ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:45 UTC (permalink / raw)
  To: Roland Dreier; +Cc: linux-kernel, akpm, Sean Hefty, Hal Rosenstock, linux-rdma

于 2011年11月28日 15:38, Roland Dreier 写道:
> These look fine, given the second argument is unused.  So
>
> Acked-by: Roland Dreier<roland@purestorage.com>
>

Thanks, Roland!

> ... or is there some point when the<linux/highmem.h>  part is
> going in and where it makes sense for me to apply this through
> my tree?
>

I think this patchset should be taken as a whole, so either Andrew
takes them all, or let Stephen to merge my tree[1] to linux-next.

But I don't know if Andrew has different opinions.

1. git://github.com/congwang/linux.git #for-next

^ permalink raw reply	[flat|nested] 121+ messages in thread

* [UPDATED PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated
  2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
  2011-11-27 12:34   ` Cesar Eduardo Barros
@ 2011-11-28  7:46   ` Cong Wang
  1 sibling, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:46 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Cesar Eduardo Barros, Nick Bowler,
	Peter Zijlstra, Christoph Lameter, Tejun Heo, H. Peter Anvin

Update: keep kunmap_atomic() as a macro, otherwise BUILD_BUG_ON() won't work.

For backward compatibility, we still keep the deprecated form,
and will warn the users if they still use the deprecated one, like this:

drivers/block/drbd/drbd_bitmap.c: In function ‘bm_page_io_async’:
drivers/block/drbd/drbd_bitmap.c:973:3: warning: ‘kmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:124)
drivers/block/drbd/drbd_bitmap.c:977:3: warning: ‘kunmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:144)

Thanks to Nick Bowler for the cpp trick!

Cc: Cesar Eduardo Barros <cesarb@cesarb.net>
Cc: Nick Bowler <nbowler@elliptictech.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Cong Wang <amwang@redhat.com>

---
 include/linux/highmem.h |   52 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 6 deletions(-)

diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 3a93f73..11617a8 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -109,20 +109,60 @@ static inline void kmap_atomic_idx_pop(void)
 #endif
 
 /*
- * Make both: kmap_atomic(page, idx) and kmap_atomic(page) work.
+ * NOTE:
+ * kmap_atomic() and kunmap_atomic() with two arguments are deprecated.
+ * We only keep them for backward compatibility, any usage of them
+ * are now warned.
  */
-#define kmap_atomic(page, args...) __kmap_atomic(page)
+
+#define PASTE(a, b) a ## b
+#define PASTE2(a, b) PASTE(a, b)
+
+#define NARG_(_2, _1, n, ...) n
+#define NARG(...) NARG_(__VA_ARGS__, 2, 1, :)
+
+static inline void *kmap_atomic(struct page *page)
+{
+	return __kmap_atomic(page);
+}
+
+static inline void __deprecated *kmap_atomic_deprecated(struct page *page,
+							enum km_type km)
+{
+	return __kmap_atomic(page);
+}
+
+#define kmap_atomic1(...) kmap_atomic(__VA_ARGS__)
+#define kmap_atomic2(...) kmap_atomic_deprecated(__VA_ARGS__)
+#define kmap_atomic(...) PASTE2(kmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
+
+static inline void __deprecated __kunmap_atomic_deprecated(void *addr,
+							enum km_type km)
+{
+	__kunmap_atomic(addr);
+}
 
 /*
  * Prevent people trying to call kunmap_atomic() as if it were kunmap()
  * kunmap_atomic() should get the return value of kmap_atomic, not the page.
  */
-#define kunmap_atomic(addr, args...)				\
-do {								\
-	BUILD_BUG_ON(__same_type((addr), struct page *));	\
-	__kunmap_atomic(addr);					\
+#define kunmap_atomic_deprecated(addr, km)                      \
+do {                                                            \
+	BUILD_BUG_ON(__same_type((addr), struct page *));       \
+	__kunmap_atomic_deprecated(addr, km);                   \
 } while (0)
 
+#define kunmap_atomic_withcheck(addr)                           \
+do {                                                            \
+	BUILD_BUG_ON(__same_type((addr), struct page *));       \
+	__kunmap_atomic(addr);                                  \
+} while (0)
+
+#define kunmap_atomic1(...) kunmap_atomic_withcheck(__VA_ARGS__)
+#define kunmap_atomic2(...) kunmap_atomic_deprecated(__VA_ARGS__)
+#define kunmap_atomic(...) PASTE2(kunmap_atomic, NARG(__VA_ARGS__)(__VA_ARGS__))
+/**** End of C pre-processor tricks for deprecated macros ****/
+
 /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */
 #ifndef clear_user_highpage
 static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [UPDATED PATCH 17/62] md: remove the second argument of k[un]map_atomic()
  2011-11-27  6:00   ` NeilBrown
  2011-11-27 10:27     ` [dm-devel] " Milan Broz
@ 2011-11-28  7:47     ` Cong Wang
  1 sibling, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Neil Brown, linux-raid

Update: Separate md and dm code correctly.

Acked-by: NeilBrown <neilb@suse.de>
Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/md/bitmap.c |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 7878712..4062823 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -457,7 +457,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
 		return;
 	}
 	spin_unlock_irqrestore(&bitmap->lock, flags);
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	sb->events = cpu_to_le64(bitmap->mddev->events);
 	if (bitmap->mddev->events < bitmap->events_cleared)
 		/* rocking back to read-only */
@@ -467,7 +467,7 @@ void bitmap_update_sb(struct bitmap *bitmap)
 	/* Just in case these have been changed via sysfs: */
 	sb->daemon_sleep = cpu_to_le32(bitmap->mddev->bitmap_info.daemon_sleep/HZ);
 	sb->write_behind = cpu_to_le32(bitmap->mddev->bitmap_info.max_write_behind);
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	write_page(bitmap, bitmap->sb_page, 1);
 }
 
@@ -478,7 +478,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
 
 	if (!bitmap || !bitmap->sb_page)
 		return;
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	printk(KERN_DEBUG "%s: bitmap file superblock:\n", bmname(bitmap));
 	printk(KERN_DEBUG "         magic: %08x\n", le32_to_cpu(sb->magic));
 	printk(KERN_DEBUG "       version: %d\n", le32_to_cpu(sb->version));
@@ -497,7 +497,7 @@ void bitmap_print_sb(struct bitmap *bitmap)
 	printk(KERN_DEBUG "     sync size: %llu KB\n",
 			(unsigned long long)le64_to_cpu(sb->sync_size)/2);
 	printk(KERN_DEBUG "max write behind: %d\n", le32_to_cpu(sb->write_behind));
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 }
 
 /*
@@ -525,7 +525,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	}
 	bitmap->sb_page->index = 0;
 
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 
 	sb->magic = cpu_to_le32(BITMAP_MAGIC);
 	sb->version = cpu_to_le32(BITMAP_MAJOR_HI);
@@ -533,7 +533,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	chunksize = bitmap->mddev->bitmap_info.chunksize;
 	BUG_ON(!chunksize);
 	if (!is_power_of_2(chunksize)) {
-		kunmap_atomic(sb, KM_USER0);
+		kunmap_atomic(sb);
 		printk(KERN_ERR "bitmap chunksize not a power of 2\n");
 		return -EINVAL;
 	}
@@ -571,7 +571,7 @@ static int bitmap_new_disk_sb(struct bitmap *bitmap)
 	bitmap->flags |= BITMAP_HOSTENDIAN;
 	sb->version = cpu_to_le32(BITMAP_MAJOR_HOSTENDIAN);
 
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 
 	return 0;
 }
@@ -603,7 +603,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
 		return err;
 	}
 
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 
 	chunksize = le32_to_cpu(sb->chunksize);
 	daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ;
@@ -664,7 +664,7 @@ success:
 		bitmap->events_cleared = bitmap->mddev->events;
 	err = 0;
 out:
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	if (err)
 		bitmap_print_sb(bitmap);
 	return err;
@@ -689,7 +689,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
 		return 0;
 	}
 	spin_unlock_irqrestore(&bitmap->lock, flags);
-	sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+	sb = kmap_atomic(bitmap->sb_page);
 	old = le32_to_cpu(sb->state) & bits;
 	switch (op) {
 	case MASK_SET:
@@ -703,7 +703,7 @@ static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
 	default:
 		BUG();
 	}
-	kunmap_atomic(sb, KM_USER0);
+	kunmap_atomic(sb);
 	return old;
 }
 
@@ -881,12 +881,12 @@ static void bitmap_file_set_bit(struct bitmap *bitmap, sector_t block)
 	bit = file_page_offset(bitmap, chunk);
 
 	/* set the bit */
-	kaddr = kmap_atomic(page, KM_USER0);
+	kaddr = kmap_atomic(page);
 	if (bitmap->flags & BITMAP_HOSTENDIAN)
 		set_bit(bit, kaddr);
 	else
 		__set_bit_le(bit, kaddr);
-	kunmap_atomic(kaddr, KM_USER0);
+	kunmap_atomic(kaddr);
 	pr_debug("set file bit %lu page %lu\n", bit, page->index);
 	/* record page number so it gets flushed to disk when unplug occurs */
 	set_page_attr(bitmap, page, BITMAP_PAGE_DIRTY);
@@ -1050,10 +1050,10 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
 				 * if bitmap is out of date, dirty the
 				 * whole page and write it out
 				 */
-				paddr = kmap_atomic(page, KM_USER0);
+				paddr = kmap_atomic(page);
 				memset(paddr + offset, 0xff,
 				       PAGE_SIZE - offset);
-				kunmap_atomic(paddr, KM_USER0);
+				kunmap_atomic(paddr);
 				write_page(bitmap, page, 1);
 
 				ret = -EIO;
@@ -1061,12 +1061,12 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)
 					goto err;
 			}
 		}
-		paddr = kmap_atomic(page, KM_USER0);
+		paddr = kmap_atomic(page);
 		if (bitmap->flags & BITMAP_HOSTENDIAN)
 			b = test_bit(bit, paddr);
 		else
 			b = test_bit_le(bit, paddr);
-		kunmap_atomic(paddr, KM_USER0);
+		kunmap_atomic(paddr);
 		if (b) {
 			/* if the disk bit is set, set the memory bit */
 			int needed = ((sector_t)(i+1) << (CHUNK_BLOCK_SHIFT(bitmap))
@@ -1207,10 +1207,10 @@ void bitmap_daemon_work(struct mddev *mddev)
 			    bitmap->mddev->bitmap_info.external == 0) {
 				bitmap_super_t *sb;
 				bitmap->need_sync = 0;
-				sb = kmap_atomic(bitmap->sb_page, KM_USER0);
+				sb = kmap_atomic(bitmap->sb_page);
 				sb->events_cleared =
 					cpu_to_le64(bitmap->events_cleared);
-				kunmap_atomic(sb, KM_USER0);
+				kunmap_atomic(sb);
 				write_page(bitmap, bitmap->sb_page, 1);
 			}
 			spin_lock_irqsave(&bitmap->lock, flags);
@@ -1233,7 +1233,7 @@ void bitmap_daemon_work(struct mddev *mddev)
 						  -1);
 
 				/* clear the bit */
-				paddr = kmap_atomic(page, KM_USER0);
+				paddr = kmap_atomic(page);
 				if (bitmap->flags & BITMAP_HOSTENDIAN)
 					clear_bit(file_page_offset(bitmap, j),
 						  paddr);
@@ -1242,7 +1242,7 @@ void bitmap_daemon_work(struct mddev *mddev)
 						file_page_offset(bitmap,
 								 j),
 						paddr);
-				kunmap_atomic(paddr, KM_USER0);
+				kunmap_atomic(paddr);
 			} else if (*bmc <= 2) {
 				*bmc = 1; /* maybe clear the bit next time */
 				set_page_attr(bitmap, page, BITMAP_PAGE_PENDING);
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [UPDATED PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
                     ` (2 preceding siblings ...)
  2011-11-28  7:39   ` Cong Wang
@ 2011-11-28  7:48   ` Cong Wang
  3 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: akpm, Cong Wang, Jeff Kirsher, Jesse Brandeburg, Bruce Allan,
	Carolyn Wyborny, Don Skidmore, Greg Rose, Peter P Waskiewicz Jr,
	Alex Duyck, John Ronciak, David S. Miller, Dean Nelson,
	Eric Dumazet, Ian Campbell, Jiri Pirko, e1000-devel, netdev

Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>
---
 drivers/net/ethernet/intel/e1000/e1000_main.c |    6 ++----
 drivers/net/ethernet/intel/e1000e/netdev.c    |   10 ++++------
 drivers/net/ethernet/sun/cassini.c            |    4 ++--
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index cf480b5..b194beb 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -3878,11 +3878,9 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
 				if (length <= copybreak &&
 				    skb_tailroom(skb) >= length) {
 					u8 *vaddr;
-					vaddr = kmap_atomic(buffer_info->page,
-					                    KM_SKB_DATA_SOFTIRQ);
+					vaddr = kmap_atomic(buffer_info->page);
 					memcpy(skb_tail_pointer(skb), vaddr, length);
-					kunmap_atomic(vaddr,
-					              KM_SKB_DATA_SOFTIRQ);
+					kunmap_atomic(vaddr);
 					/* re-use the page, so don't erase
 					 * buffer_info->page */
 					skb_put(skb, length);
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index a855db1..8603c87 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1272,9 +1272,9 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 			 */
 			dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
 						PAGE_SIZE, DMA_FROM_DEVICE);
-			vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
+			vaddr = kmap_atomic(ps_page->page);
 			memcpy(skb_tail_pointer(skb), vaddr, l1);
-			kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
+			kunmap_atomic(vaddr);
 			dma_sync_single_for_device(&pdev->dev, ps_page->dma,
 						   PAGE_SIZE, DMA_FROM_DEVICE);
 
@@ -1465,12 +1465,10 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
 				if (length <= copybreak &&
 				    skb_tailroom(skb) >= length) {
 					u8 *vaddr;
-					vaddr = kmap_atomic(buffer_info->page,
-					                   KM_SKB_DATA_SOFTIRQ);
+					vaddr = kmap_atomic(buffer_info->page);
 					memcpy(skb_tail_pointer(skb), vaddr,
 					       length);
-					kunmap_atomic(vaddr,
-					              KM_SKB_DATA_SOFTIRQ);
+					kunmap_atomic(vaddr);
 					/* re-use the page, so don't erase
 					 * buffer_info->page */
 					skb_put(skb, length);
diff --git a/drivers/net/ethernet/sun/cassini.c b/drivers/net/ethernet/sun/cassini.c
index fd40988..c22a195 100644
--- a/drivers/net/ethernet/sun/cassini.c
+++ b/drivers/net/ethernet/sun/cassini.c
@@ -104,8 +104,8 @@
 #include <asm/byteorder.h>
 #include <asm/uaccess.h>
 
-#define cas_page_map(x)      kmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
-#define cas_page_unmap(x)    kunmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
+#define cas_page_map(x)      kmap_atomic((x))
+#define cas_page_unmap(x)    kunmap_atomic((x))
 #define CAS_NCPUS            num_online_cpus()
 
 #define cas_skb_release(x)  netif_rx(x)
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* [UPDATED PATCH 57/62] dm: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 57/62] md: " Cong Wang
@ 2011-11-28  7:50   ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-28  7:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm, Cong Wang, Neil Brown, dm-devel, linux-raid


Acked-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Cong Wang <amwang@redhat.com>

---
 drivers/md/dm-crypt.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 8c2a000..db6b516 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -590,9 +590,9 @@ static int crypt_iv_lmk_gen(struct crypt_config *cc, u8 *iv,
 	int r = 0;
 
 	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE) {
-		src = kmap_atomic(sg_page(&dmreq->sg_in), KM_USER0);
+		src = kmap_atomic(sg_page(&dmreq->sg_in));
 		r = crypt_iv_lmk_one(cc, iv, dmreq, src + dmreq->sg_in.offset);
-		kunmap_atomic(src, KM_USER0);
+		kunmap_atomic(src);
 	} else
 		memset(iv, 0, cc->iv_size);
 
@@ -608,14 +608,14 @@ static int crypt_iv_lmk_post(struct crypt_config *cc, u8 *iv,
 	if (bio_data_dir(dmreq->ctx->bio_in) == WRITE)
 		return 0;
 
-	dst = kmap_atomic(sg_page(&dmreq->sg_out), KM_USER0);
+	dst = kmap_atomic(sg_page(&dmreq->sg_out));
 	r = crypt_iv_lmk_one(cc, iv, dmreq, dst + dmreq->sg_out.offset);
 
 	/* Tweak the first block of plaintext sector */
 	if (!r)
 		crypto_xor(dst + dmreq->sg_out.offset, iv, cc->iv_size);
 
-	kunmap_atomic(dst, KM_USER0);
+	kunmap_atomic(dst);
 	return r;
 }
 
-- 
1.7.4.4


^ permalink raw reply related	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 10/62] ata: " Cong Wang
  2011-11-27 18:40   ` Jeff Garzik
@ 2011-11-28 10:01   ` Sergei Shtylyov
  2011-11-28 11:42     ` Cong Wang
  1 sibling, 1 reply; 121+ messages in thread
From: Sergei Shtylyov @ 2011-11-28 10:01 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Jeff Garzik, linux-ide

Hello.

On 27-11-2011 9:26, Cong Wang wrote:

> Signed-off-by: Cong Wang<amwang@redhat.com>
> ---
>   drivers/ata/libata-sff.c |    8 ++++----
>   1 files changed, 4 insertions(+), 4 deletions(-)

    IMO, you should do this in a single patch, not piecemeal to keep the 
kernel bisectable.

WBR, Sergei

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 58/62] gma500: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 58/62] gma500: " Cong Wang
@ 2011-11-28 11:33   ` Alan Cox
  0 siblings, 0 replies; 121+ messages in thread
From: Alan Cox @ 2011-11-28 11:33 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Greg Kroah-Hartman, devel

On Sun, 27 Nov 2011 13:27:38 +0800
Cong Wang <amwang@redhat.com> wrote:

> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Looks fine to me although we've just marked the staging driver broken
for a bit. Probably still worth applying so it doesn't get lost.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-28 10:01   ` Sergei Shtylyov
@ 2011-11-28 11:42     ` Cong Wang
  2011-11-28 11:49       ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-28 11:42 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: linux-kernel, akpm, Jeff Garzik, linux-ide

于 2011年11月28日 18:01, Sergei Shtylyov 写道:
> Hello.
>
> On 27-11-2011 9:26, Cong Wang wrote:
>
>> Signed-off-by: Cong Wang<amwang@redhat.com>
>> ---
>> drivers/ata/libata-sff.c | 8 ++++----
>> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> IMO, you should do this in a single patch, not piecemeal to keep the kernel bisectable.
>

Hi,

Please see patch 01/62,

https://lkml.org/lkml/2011/11/28/35

So even without it, the kernel can still compile, just with some warnings.

Thanks.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-28 11:42     ` Cong Wang
@ 2011-11-28 11:49       ` Cong Wang
  2011-11-28 19:00         ` James Bottomley
  0 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-11-28 11:49 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: linux-kernel, akpm, Jeff Garzik, linux-ide

于 2011年11月28日 19:42, Cong Wang 写道:
> 于 2011年11月28日 18:01, Sergei Shtylyov 写道:
>> Hello.
>>
>> On 27-11-2011 9:26, Cong Wang wrote:
>>
>>> Signed-off-by: Cong Wang<amwang@redhat.com>
>>> ---
>>> drivers/ata/libata-sff.c | 8 ++++----
>>> 1 files changed, 4 insertions(+), 4 deletions(-)
>>
>> IMO, you should do this in a single patch, not piecemeal to keep the kernel bisectable.
>>
>
> Hi,
>
> Please see patch 01/62,
>
> https://lkml.org/lkml/2011/11/28/35
>
> So even without it, the kernel can still compile, just with some warnings.
>

Ah, no, sorry that I replied too quickly. We have to have at least 01/62
to compile.

Actually I did make the patches as a whole, but Andrew Morton prefers to
split them, so I make V2 of them.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 08/62] x86: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 08/62] x86: " Cong Wang
@ 2011-11-28 12:35   ` Avi Kivity
  2011-11-28 12:47   ` Herbert Xu
  1 sibling, 0 replies; 121+ messages in thread
From: Avi Kivity @ 2011-11-28 12:35 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Herbert Xu, David S. Miller, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86, Marcelo Tosatti, Olaf Hering,
	linux-crypto, kvm

On 11/27/2011 07:26 AM, Cong Wang wrote:
> Signed-off-by: Cong Wang <amwang@redhat.com>
> ---

>  arch/x86/kvm/lapic.c               |    8 ++++----
>  arch/x86/kvm/paging_tmpl.h         |    4 ++--
>  arch/x86/kvm/x86.c                 |    8 ++++----
>

The kvm parts are:

Acked-by: Avi Kivity <avi@redhat.com>

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 08/62] x86: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 08/62] x86: " Cong Wang
  2011-11-28 12:35   ` Avi Kivity
@ 2011-11-28 12:47   ` Herbert Xu
  1 sibling, 0 replies; 121+ messages in thread
From: Herbert Xu @ 2011-11-28 12:47 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, David S. Miller, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, x86, Avi Kivity, Marcelo Tosatti,
	Olaf Hering, linux-crypto, kvm

On Sun, Nov 27, 2011 at 01:26:48PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Herbert Xu <herbert@gondor.apana.org.au>

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 34/62] ext2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 34/62] ext2: " Cong Wang
@ 2011-11-28 14:15   ` Jan Kara
  0 siblings, 0 replies; 121+ messages in thread
From: Jan Kara @ 2011-11-28 14:15 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Jan Kara, linux-ext4

On Sun 27-11-11 13:27:14, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>
  Acked-by: Jan Kara <jack@suse.cz>

									Honza

> ---
>  fs/ext2/dir.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c
> index 47cda41..378bf28 100644
> --- a/fs/ext2/dir.c
> +++ b/fs/ext2/dir.c
> @@ -645,7 +645,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
>  		unlock_page(page);
>  		goto fail;
>  	}
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	memset(kaddr, 0, chunk_size);
>  	de = (struct ext2_dir_entry_2 *)kaddr;
>  	de->name_len = 1;
> @@ -660,7 +660,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent)
>  	de->inode = cpu_to_le32(parent->i_ino);
>  	memcpy (de->name, "..\0", 4);
>  	ext2_set_de_type (de, inode);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	err = ext2_commit_chunk(page, 0, chunk_size);
>  fail:
>  	page_cache_release(page);
> -- 
> 1.7.4.4
> 
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 37/62] jbd: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 37/62] jbd: " Cong Wang
@ 2011-11-28 14:15   ` Jan Kara
  0 siblings, 0 replies; 121+ messages in thread
From: Jan Kara @ 2011-11-28 14:15 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Jan Kara, linux-ext4

On Sun 27-11-11 13:27:17, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>
  Acked-by: Jan Kara <jack@suse.cz>

										Honza

> ---
>  fs/jbd/journal.c     |   12 ++++++------
>  fs/jbd/transaction.c |    4 ++--
>  2 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
> index fea8dd6..de8ae3e 100644
> --- a/fs/jbd/journal.c
> +++ b/fs/jbd/journal.c
> @@ -328,7 +328,7 @@ repeat:
>  		new_offset = offset_in_page(jh2bh(jh_in)->b_data);
>  	}
>  
> -	mapped_data = kmap_atomic(new_page, KM_USER0);
> +	mapped_data = kmap_atomic(new_page);
>  	/*
>  	 * Check for escaping
>  	 */
> @@ -337,7 +337,7 @@ repeat:
>  		need_copy_out = 1;
>  		do_escape = 1;
>  	}
> -	kunmap_atomic(mapped_data, KM_USER0);
> +	kunmap_atomic(mapped_data);
>  
>  	/*
>  	 * Do we need to do a data copy?
> @@ -354,9 +354,9 @@ repeat:
>  		}
>  
>  		jh_in->b_frozen_data = tmp;
> -		mapped_data = kmap_atomic(new_page, KM_USER0);
> +		mapped_data = kmap_atomic(new_page);
>  		memcpy(tmp, mapped_data + new_offset, jh2bh(jh_in)->b_size);
> -		kunmap_atomic(mapped_data, KM_USER0);
> +		kunmap_atomic(mapped_data);
>  
>  		new_page = virt_to_page(tmp);
>  		new_offset = offset_in_page(tmp);
> @@ -368,9 +368,9 @@ repeat:
>  	 * copying, we can finally do so.
>  	 */
>  	if (do_escape) {
> -		mapped_data = kmap_atomic(new_page, KM_USER0);
> +		mapped_data = kmap_atomic(new_page);
>  		*((unsigned int *)(mapped_data + new_offset)) = 0;
> -		kunmap_atomic(mapped_data, KM_USER0);
> +		kunmap_atomic(mapped_data);
>  	}
>  
>  	set_bh_page(new_bh, new_page, new_offset);
> diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c
> index 7e59c6e..e59a112 100644
> --- a/fs/jbd/transaction.c
> +++ b/fs/jbd/transaction.c
> @@ -712,9 +712,9 @@ done:
>  			    "Possible IO failure.\n");
>  		page = jh2bh(jh)->b_page;
>  		offset = offset_in_page(jh2bh(jh)->b_data);
> -		source = kmap_atomic(page, KM_USER0);
> +		source = kmap_atomic(page);
>  		memcpy(jh->b_frozen_data, source+offset, jh2bh(jh)->b_size);
> -		kunmap_atomic(source, KM_USER0);
> +		kunmap_atomic(source);
>  	}
>  	jbd_unlock_bh_state(bh);
>  
> -- 
> 1.7.4.4
> 
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 48/62] udf: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 48/62] udf: " Cong Wang
@ 2011-11-28 14:16   ` Jan Kara
  0 siblings, 0 replies; 121+ messages in thread
From: Jan Kara @ 2011-11-28 14:16 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Jan Kara

On Sun 27-11-11 13:27:28, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>
  Acked-by: Jan Kara <jack@suse.cz>

										Honza

> ---
>  fs/udf/file.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/udf/file.c b/fs/udf/file.c
> index d8ffa7c..95b8d91 100644
> --- a/fs/udf/file.c
> +++ b/fs/udf/file.c
> @@ -87,10 +87,10 @@ static int udf_adinicb_write_end(struct file *file,
>  	char *kaddr;
>  	struct udf_inode_info *iinfo = UDF_I(inode);
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr + offset,
>  		kaddr + offset, copied);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	return simple_write_end(file, mapping, pos, len, copied, page, fsdata);
>  }
> -- 
> 1.7.4.4
> 
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 42/62] nilfs2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 42/62] nilfs2: " Cong Wang
@ 2011-11-28 16:14   ` Ryusuke Konishi
  0 siblings, 0 replies; 121+ messages in thread
From: Ryusuke Konishi @ 2011-11-28 16:14 UTC (permalink / raw)
  To: amwang; +Cc: linux-kernel, akpm, linux-nilfs

On Sun, 27 Nov 2011 13:27:22 +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>

Regards,
Ryusuke Konishi

> ---
>  fs/nilfs2/cpfile.c   |   94 +++++++++++++++++++++++++-------------------------
>  fs/nilfs2/dat.c      |   38 ++++++++++----------
>  fs/nilfs2/dir.c      |    4 +-
>  fs/nilfs2/ifile.c    |    4 +-
>  fs/nilfs2/mdt.c      |    4 +-
>  fs/nilfs2/page.c     |    8 ++--
>  fs/nilfs2/recovery.c |    4 +-
>  fs/nilfs2/segbuf.c   |    4 +-
>  fs/nilfs2/sufile.c   |   68 ++++++++++++++++++------------------
>  9 files changed, 114 insertions(+), 114 deletions(-)
> 
> diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
> index c9b342c..dab5c4c 100644
> --- a/fs/nilfs2/cpfile.c
> +++ b/fs/nilfs2/cpfile.c
> @@ -218,11 +218,11 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
>  								 kaddr, 1);
>  		mark_buffer_dirty(cp_bh);
>  
> -		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(header_bh->b_page);
>  		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
>  						       kaddr);
>  		le64_add_cpu(&header->ch_ncheckpoints, 1);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		mark_buffer_dirty(header_bh);
>  		nilfs_mdt_mark_dirty(cpfile);
>  	}
> @@ -313,7 +313,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
>  			continue;
>  		}
>  
> -		kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(cp_bh->b_page);
>  		cp = nilfs_cpfile_block_get_checkpoint(
>  			cpfile, cno, cp_bh, kaddr);
>  		nicps = 0;
> @@ -334,7 +334,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
>  						cpfile, cp_bh, kaddr, nicps);
>  				if (count == 0) {
>  					/* make hole */
> -					kunmap_atomic(kaddr, KM_USER0);
> +					kunmap_atomic(kaddr);
>  					brelse(cp_bh);
>  					ret =
>  					  nilfs_cpfile_delete_checkpoint_block(
> @@ -349,18 +349,18 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
>  			}
>  		}
>  
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(cp_bh);
>  	}
>  
>  	if (tnicps > 0) {
> -		kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(header_bh->b_page);
>  		header = nilfs_cpfile_block_get_header(cpfile, header_bh,
>  						       kaddr);
>  		le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
>  		mark_buffer_dirty(header_bh);
>  		nilfs_mdt_mark_dirty(cpfile);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  	}
>  
>  	brelse(header_bh);
> @@ -408,7 +408,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
>  			continue; /* skip hole */
>  		}
>  
> -		kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(bh->b_page);
>  		cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
>  		for (i = 0; i < ncps && n < nci; i++, cp = (void *)cp + cpsz) {
>  			if (!nilfs_checkpoint_invalid(cp)) {
> @@ -418,7 +418,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
>  				n++;
>  			}
>  		}
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(bh);
>  	}
>  
> @@ -451,10 +451,10 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
>  		ret = nilfs_cpfile_get_header_block(cpfile, &bh);
>  		if (ret < 0)
>  			goto out;
> -		kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(bh->b_page);
>  		header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
>  		curr = le64_to_cpu(header->ch_snapshot_list.ssl_next);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(bh);
>  		if (curr == 0) {
>  			ret = 0;
> @@ -472,7 +472,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
>  			ret = 0; /* No snapshots (started from a hole block) */
>  		goto out;
>  	}
> -	kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(bh->b_page);
>  	while (n < nci) {
>  		cp = nilfs_cpfile_block_get_checkpoint(cpfile, curr, bh, kaddr);
>  		curr = ~(__u64)0; /* Terminator */
> @@ -488,7 +488,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
>  
>  		next_blkoff = nilfs_cpfile_get_blkoff(cpfile, next);
>  		if (curr_blkoff != next_blkoff) {
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  			brelse(bh);
>  			ret = nilfs_cpfile_get_checkpoint_block(cpfile, next,
>  								0, &bh);
> @@ -496,12 +496,12 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
>  				WARN_ON(ret == -ENOENT);
>  				goto out;
>  			}
> -			kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +			kaddr = kmap_atomic(bh->b_page);
>  		}
>  		curr = next;
>  		curr_blkoff = next_blkoff;
>  	}
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(bh);
>  	*cnop = curr;
>  	ret = n;
> @@ -592,24 +592,24 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
>  	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
>  	if (ret < 0)
>  		goto out_sem;
> -	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(cp_bh->b_page);
>  	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
>  	if (nilfs_checkpoint_invalid(cp)) {
>  		ret = -ENOENT;
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		goto out_cp;
>  	}
>  	if (nilfs_checkpoint_snapshot(cp)) {
>  		ret = 0;
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		goto out_cp;
>  	}
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
>  	if (ret < 0)
>  		goto out_cp;
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
>  	list = &header->ch_snapshot_list;
>  	curr_bh = header_bh;
> @@ -621,13 +621,13 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
>  		prev_blkoff = nilfs_cpfile_get_blkoff(cpfile, prev);
>  		curr = prev;
>  		if (curr_blkoff != prev_blkoff) {
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  			brelse(curr_bh);
>  			ret = nilfs_cpfile_get_checkpoint_block(cpfile, curr,
>  								0, &curr_bh);
>  			if (ret < 0)
>  				goto out_header;
> -			kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
> +			kaddr = kmap_atomic(curr_bh->b_page);
>  		}
>  		curr_blkoff = prev_blkoff;
>  		cp = nilfs_cpfile_block_get_checkpoint(
> @@ -635,7 +635,7 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
>  		list = &cp->cp_snapshot_list;
>  		prev = le64_to_cpu(list->ssl_prev);
>  	}
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	if (prev != 0) {
>  		ret = nilfs_cpfile_get_checkpoint_block(cpfile, prev, 0,
> @@ -647,29 +647,29 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
>  		get_bh(prev_bh);
>  	}
>  
> -	kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(curr_bh->b_page);
>  	list = nilfs_cpfile_block_get_snapshot_list(
>  		cpfile, curr, curr_bh, kaddr);
>  	list->ssl_prev = cpu_to_le64(cno);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(cp_bh->b_page);
>  	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
>  	cp->cp_snapshot_list.ssl_next = cpu_to_le64(curr);
>  	cp->cp_snapshot_list.ssl_prev = cpu_to_le64(prev);
>  	nilfs_checkpoint_set_snapshot(cp);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(prev_bh->b_page);
>  	list = nilfs_cpfile_block_get_snapshot_list(
>  		cpfile, prev, prev_bh, kaddr);
>  	list->ssl_next = cpu_to_le64(cno);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
>  	le64_add_cpu(&header->ch_nsnapshots, 1);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(prev_bh);
>  	mark_buffer_dirty(curr_bh);
> @@ -710,23 +710,23 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
>  	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
>  	if (ret < 0)
>  		goto out_sem;
> -	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(cp_bh->b_page);
>  	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
>  	if (nilfs_checkpoint_invalid(cp)) {
>  		ret = -ENOENT;
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		goto out_cp;
>  	}
>  	if (!nilfs_checkpoint_snapshot(cp)) {
>  		ret = 0;
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		goto out_cp;
>  	}
>  
>  	list = &cp->cp_snapshot_list;
>  	next = le64_to_cpu(list->ssl_next);
>  	prev = le64_to_cpu(list->ssl_prev);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
>  	if (ret < 0)
> @@ -750,29 +750,29 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
>  		get_bh(prev_bh);
>  	}
>  
> -	kaddr = kmap_atomic(next_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(next_bh->b_page);
>  	list = nilfs_cpfile_block_get_snapshot_list(
>  		cpfile, next, next_bh, kaddr);
>  	list->ssl_prev = cpu_to_le64(prev);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(prev_bh->b_page);
>  	list = nilfs_cpfile_block_get_snapshot_list(
>  		cpfile, prev, prev_bh, kaddr);
>  	list->ssl_next = cpu_to_le64(next);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(cp_bh->b_page);
>  	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
>  	cp->cp_snapshot_list.ssl_next = cpu_to_le64(0);
>  	cp->cp_snapshot_list.ssl_prev = cpu_to_le64(0);
>  	nilfs_checkpoint_clear_snapshot(cp);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
>  	le64_add_cpu(&header->ch_nsnapshots, -1);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(next_bh);
>  	mark_buffer_dirty(prev_bh);
> @@ -829,13 +829,13 @@ int nilfs_cpfile_is_snapshot(struct inode *cpfile, __u64 cno)
>  	ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &bh);
>  	if (ret < 0)
>  		goto out;
> -	kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(bh->b_page);
>  	cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
>  	if (nilfs_checkpoint_invalid(cp))
>  		ret = -ENOENT;
>  	else
>  		ret = nilfs_checkpoint_snapshot(cp);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(bh);
>  
>   out:
> @@ -912,12 +912,12 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat)
>  	ret = nilfs_cpfile_get_header_block(cpfile, &bh);
>  	if (ret < 0)
>  		goto out_sem;
> -	kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(bh->b_page);
>  	header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
>  	cpstat->cs_cno = nilfs_mdt_cno(cpfile);
>  	cpstat->cs_ncps = le64_to_cpu(header->ch_ncheckpoints);
>  	cpstat->cs_nsss = le64_to_cpu(header->ch_nsnapshots);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(bh);
>  
>   out_sem:
> diff --git a/fs/nilfs2/dat.c b/fs/nilfs2/dat.c
> index fcc2f86..b5c13f3 100644
> --- a/fs/nilfs2/dat.c
> +++ b/fs/nilfs2/dat.c
> @@ -85,13 +85,13 @@ void nilfs_dat_commit_alloc(struct inode *dat, struct nilfs_palloc_req *req)
>  	struct nilfs_dat_entry *entry;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	entry->de_start = cpu_to_le64(NILFS_CNO_MIN);
>  	entry->de_end = cpu_to_le64(NILFS_CNO_MAX);
>  	entry->de_blocknr = cpu_to_le64(0);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nilfs_palloc_commit_alloc_entry(dat, req);
>  	nilfs_dat_commit_entry(dat, req);
> @@ -109,13 +109,13 @@ static void nilfs_dat_commit_free(struct inode *dat,
>  	struct nilfs_dat_entry *entry;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	entry->de_start = cpu_to_le64(NILFS_CNO_MIN);
>  	entry->de_end = cpu_to_le64(NILFS_CNO_MIN);
>  	entry->de_blocknr = cpu_to_le64(0);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nilfs_dat_commit_entry(dat, req);
>  	nilfs_palloc_commit_free_entry(dat, req);
> @@ -136,12 +136,12 @@ void nilfs_dat_commit_start(struct inode *dat, struct nilfs_palloc_req *req,
>  	struct nilfs_dat_entry *entry;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	entry->de_start = cpu_to_le64(nilfs_mdt_cno(dat));
>  	entry->de_blocknr = cpu_to_le64(blocknr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nilfs_dat_commit_entry(dat, req);
>  }
> @@ -160,12 +160,12 @@ int nilfs_dat_prepare_end(struct inode *dat, struct nilfs_palloc_req *req)
>  		return ret;
>  	}
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	start = le64_to_cpu(entry->de_start);
>  	blocknr = le64_to_cpu(entry->de_blocknr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	if (blocknr == 0) {
>  		ret = nilfs_palloc_prepare_free_entry(dat, req);
> @@ -186,7 +186,7 @@ void nilfs_dat_commit_end(struct inode *dat, struct nilfs_palloc_req *req,
>  	sector_t blocknr;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	end = start = le64_to_cpu(entry->de_start);
> @@ -196,7 +196,7 @@ void nilfs_dat_commit_end(struct inode *dat, struct nilfs_palloc_req *req,
>  	}
>  	entry->de_end = cpu_to_le64(end);
>  	blocknr = le64_to_cpu(entry->de_blocknr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	if (blocknr == 0)
>  		nilfs_dat_commit_free(dat, req);
> @@ -211,12 +211,12 @@ void nilfs_dat_abort_end(struct inode *dat, struct nilfs_palloc_req *req)
>  	sector_t blocknr;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(req->pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req->pr_entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, req->pr_entry_nr,
>  					     req->pr_entry_bh, kaddr);
>  	start = le64_to_cpu(entry->de_start);
>  	blocknr = le64_to_cpu(entry->de_blocknr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	if (start == nilfs_mdt_cno(dat) && blocknr == 0)
>  		nilfs_palloc_abort_free_entry(dat, req);
> @@ -346,20 +346,20 @@ int nilfs_dat_move(struct inode *dat, __u64 vblocknr, sector_t blocknr)
>  		}
>  	}
>  
> -	kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, vblocknr, entry_bh, kaddr);
>  	if (unlikely(entry->de_blocknr == cpu_to_le64(0))) {
>  		printk(KERN_CRIT "%s: vbn = %llu, [%llu, %llu)\n", __func__,
>  		       (unsigned long long)vblocknr,
>  		       (unsigned long long)le64_to_cpu(entry->de_start),
>  		       (unsigned long long)le64_to_cpu(entry->de_end));
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(entry_bh);
>  		return -EINVAL;
>  	}
>  	WARN_ON(blocknr == 0);
>  	entry->de_blocknr = cpu_to_le64(blocknr);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(entry_bh);
>  	nilfs_mdt_mark_dirty(dat);
> @@ -409,7 +409,7 @@ int nilfs_dat_translate(struct inode *dat, __u64 vblocknr, sector_t *blocknrp)
>  		}
>  	}
>  
> -	kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(entry_bh->b_page);
>  	entry = nilfs_palloc_block_get_entry(dat, vblocknr, entry_bh, kaddr);
>  	blocknr = le64_to_cpu(entry->de_blocknr);
>  	if (blocknr == 0) {
> @@ -419,7 +419,7 @@ int nilfs_dat_translate(struct inode *dat, __u64 vblocknr, sector_t *blocknrp)
>  	*blocknrp = blocknr;
>  
>   out:
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(entry_bh);
>  	return ret;
>  }
> @@ -440,7 +440,7 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
>  						   0, &entry_bh);
>  		if (ret < 0)
>  			return ret;
> -		kaddr = kmap_atomic(entry_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(entry_bh->b_page);
>  		/* last virtual block number in this block */
>  		first = vinfo->vi_vblocknr;
>  		do_div(first, entries_per_block);
> @@ -456,7 +456,7 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
>  			vinfo->vi_end = le64_to_cpu(entry->de_end);
>  			vinfo->vi_blocknr = le64_to_cpu(entry->de_blocknr);
>  		}
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(entry_bh);
>  	}
>  
> diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
> index 3a19239..53ed93a 100644
> --- a/fs/nilfs2/dir.c
> +++ b/fs/nilfs2/dir.c
> @@ -602,7 +602,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent)
>  		unlock_page(page);
>  		goto fail;
>  	}
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	memset(kaddr, 0, chunk_size);
>  	de = (struct nilfs_dir_entry *)kaddr;
>  	de->name_len = 1;
> @@ -617,7 +617,7 @@ int nilfs_make_empty(struct inode *inode, struct inode *parent)
>  	de->inode = cpu_to_le64(parent->i_ino);
>  	memcpy(de->name, "..\0", 4);
>  	nilfs_set_de_type(de, inode);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	nilfs_commit_chunk(page, mapping, 0, chunk_size);
>  fail:
>  	page_cache_release(page);
> diff --git a/fs/nilfs2/ifile.c b/fs/nilfs2/ifile.c
> index 684d763..5a48df7 100644
> --- a/fs/nilfs2/ifile.c
> +++ b/fs/nilfs2/ifile.c
> @@ -122,11 +122,11 @@ int nilfs_ifile_delete_inode(struct inode *ifile, ino_t ino)
>  		return ret;
>  	}
>  
> -	kaddr = kmap_atomic(req.pr_entry_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(req.pr_entry_bh->b_page);
>  	raw_inode = nilfs_palloc_block_get_entry(ifile, req.pr_entry_nr,
>  						 req.pr_entry_bh, kaddr);
>  	raw_inode->i_flags = 0;
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(req.pr_entry_bh);
>  	brelse(req.pr_entry_bh);
> diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
> index 800e8d7..f9897d0 100644
> --- a/fs/nilfs2/mdt.c
> +++ b/fs/nilfs2/mdt.c
> @@ -58,12 +58,12 @@ nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block,
>  
>  	set_buffer_mapped(bh);
>  
> -	kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(bh->b_page);
>  	memset(kaddr + bh_offset(bh), 0, 1 << inode->i_blkbits);
>  	if (init_block)
>  		init_block(inode, bh, kaddr);
>  	flush_dcache_page(bh->b_page);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	set_buffer_uptodate(bh);
>  	mark_buffer_dirty(bh);
> diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
> index 65221a0..3e7b2a0 100644
> --- a/fs/nilfs2/page.c
> +++ b/fs/nilfs2/page.c
> @@ -119,11 +119,11 @@ void nilfs_copy_buffer(struct buffer_head *dbh, struct buffer_head *sbh)
>  	struct page *spage = sbh->b_page, *dpage = dbh->b_page;
>  	struct buffer_head *bh;
>  
> -	kaddr0 = kmap_atomic(spage, KM_USER0);
> -	kaddr1 = kmap_atomic(dpage, KM_USER1);
> +	kaddr0 = kmap_atomic(spage);
> +	kaddr1 = kmap_atomic(dpage);
>  	memcpy(kaddr1 + bh_offset(dbh), kaddr0 + bh_offset(sbh), sbh->b_size);
> -	kunmap_atomic(kaddr1, KM_USER1);
> -	kunmap_atomic(kaddr0, KM_USER0);
> +	kunmap_atomic(kaddr1);
> +	kunmap_atomic(kaddr0);
>  
>  	dbh->b_state = sbh->b_state & NILFS_BUFFER_INHERENT_BITS;
>  	dbh->b_blocknr = sbh->b_blocknr;
> diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
> index a604ac0..f1626f5 100644
> --- a/fs/nilfs2/recovery.c
> +++ b/fs/nilfs2/recovery.c
> @@ -493,9 +493,9 @@ static int nilfs_recovery_copy_block(struct the_nilfs *nilfs,
>  	if (unlikely(!bh_org))
>  		return -EIO;
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	memcpy(kaddr + bh_offset(bh_org), bh_org->b_data, bh_org->b_size);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(bh_org);
>  	return 0;
>  }
> diff --git a/fs/nilfs2/segbuf.c b/fs/nilfs2/segbuf.c
> index 850a7c0..dc9a913 100644
> --- a/fs/nilfs2/segbuf.c
> +++ b/fs/nilfs2/segbuf.c
> @@ -227,9 +227,9 @@ static void nilfs_segbuf_fill_in_data_crc(struct nilfs_segment_buffer *segbuf,
>  		crc = crc32_le(crc, bh->b_data, bh->b_size);
>  	}
>  	list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) {
> -		kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(bh->b_page);
>  		crc = crc32_le(crc, kaddr + bh_offset(bh), bh->b_size);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  	}
>  	raw_sum->ss_datasum = cpu_to_le32(crc);
>  }
> diff --git a/fs/nilfs2/sufile.c b/fs/nilfs2/sufile.c
> index 0a0aba6..c5b7653 100644
> --- a/fs/nilfs2/sufile.c
> +++ b/fs/nilfs2/sufile.c
> @@ -111,11 +111,11 @@ static void nilfs_sufile_mod_counter(struct buffer_head *header_bh,
>  	struct nilfs_sufile_header *header;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = kaddr + bh_offset(header_bh);
>  	le64_add_cpu(&header->sh_ncleansegs, ncleanadd);
>  	le64_add_cpu(&header->sh_ndirtysegs, ndirtyadd);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(header_bh);
>  }
> @@ -319,11 +319,11 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
>  	ret = nilfs_sufile_get_header_block(sufile, &header_bh);
>  	if (ret < 0)
>  		goto out_sem;
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = kaddr + bh_offset(header_bh);
>  	ncleansegs = le64_to_cpu(header->sh_ncleansegs);
>  	last_alloc = le64_to_cpu(header->sh_last_alloc);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nsegments = nilfs_sufile_get_nsegments(sufile);
>  	maxsegnum = sui->allocmax;
> @@ -356,7 +356,7 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
>  							   &su_bh);
>  		if (ret < 0)
>  			goto out_header;
> -		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(su_bh->b_page);
>  		su = nilfs_sufile_block_get_segment_usage(
>  			sufile, segnum, su_bh, kaddr);
>  
> @@ -367,14 +367,14 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
>  				continue;
>  			/* found a clean segment */
>  			nilfs_segment_usage_set_dirty(su);
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  
> -			kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +			kaddr = kmap_atomic(header_bh->b_page);
>  			header = kaddr + bh_offset(header_bh);
>  			le64_add_cpu(&header->sh_ncleansegs, -1);
>  			le64_add_cpu(&header->sh_ndirtysegs, 1);
>  			header->sh_last_alloc = cpu_to_le64(segnum);
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  
>  			sui->ncleansegs--;
>  			mark_buffer_dirty(header_bh);
> @@ -385,7 +385,7 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
>  			goto out_header;
>  		}
>  
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(su_bh);
>  	}
>  
> @@ -407,16 +407,16 @@ void nilfs_sufile_do_cancel_free(struct inode *sufile, __u64 segnum,
>  	struct nilfs_segment_usage *su;
>  	void *kaddr;
>  
> -	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(su_bh->b_page);
>  	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
>  	if (unlikely(!nilfs_segment_usage_clean(su))) {
>  		printk(KERN_WARNING "%s: segment %llu must be clean\n",
>  		       __func__, (unsigned long long)segnum);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		return;
>  	}
>  	nilfs_segment_usage_set_dirty(su);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nilfs_sufile_mod_counter(header_bh, -1, 1);
>  	NILFS_SUI(sufile)->ncleansegs--;
> @@ -433,11 +433,11 @@ void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
>  	void *kaddr;
>  	int clean, dirty;
>  
> -	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(su_bh->b_page);
>  	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
>  	if (su->su_flags == cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY) &&
>  	    su->su_nblocks == cpu_to_le32(0)) {
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		return;
>  	}
>  	clean = nilfs_segment_usage_clean(su);
> @@ -447,7 +447,7 @@ void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
>  	su->su_lastmod = cpu_to_le64(0);
>  	su->su_nblocks = cpu_to_le32(0);
>  	su->su_flags = cpu_to_le32(1UL << NILFS_SEGMENT_USAGE_DIRTY);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	nilfs_sufile_mod_counter(header_bh, clean ? (u64)-1 : 0, dirty ? 0 : 1);
>  	NILFS_SUI(sufile)->ncleansegs -= clean;
> @@ -464,12 +464,12 @@ void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
>  	void *kaddr;
>  	int sudirty;
>  
> -	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(su_bh->b_page);
>  	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
>  	if (nilfs_segment_usage_clean(su)) {
>  		printk(KERN_WARNING "%s: segment %llu is already clean\n",
>  		       __func__, (unsigned long long)segnum);
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		return;
>  	}
>  	WARN_ON(nilfs_segment_usage_error(su));
> @@ -477,7 +477,7 @@ void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
>  
>  	sudirty = nilfs_segment_usage_dirty(su);
>  	nilfs_segment_usage_set_clean(su);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	mark_buffer_dirty(su_bh);
>  
>  	nilfs_sufile_mod_counter(header_bh, 1, sudirty ? (u64)-1 : 0);
> @@ -525,13 +525,13 @@ int nilfs_sufile_set_segment_usage(struct inode *sufile, __u64 segnum,
>  	if (ret < 0)
>  		goto out_sem;
>  
> -	kaddr = kmap_atomic(bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(bh->b_page);
>  	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr);
>  	WARN_ON(nilfs_segment_usage_error(su));
>  	if (modtime)
>  		su->su_lastmod = cpu_to_le64(modtime);
>  	su->su_nblocks = cpu_to_le32(nblocks);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(bh);
>  	nilfs_mdt_mark_dirty(sufile);
> @@ -572,7 +572,7 @@ int nilfs_sufile_get_stat(struct inode *sufile, struct nilfs_sustat *sustat)
>  	if (ret < 0)
>  		goto out_sem;
>  
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = kaddr + bh_offset(header_bh);
>  	sustat->ss_nsegs = nilfs_sufile_get_nsegments(sufile);
>  	sustat->ss_ncleansegs = le64_to_cpu(header->sh_ncleansegs);
> @@ -582,7 +582,7 @@ int nilfs_sufile_get_stat(struct inode *sufile, struct nilfs_sustat *sustat)
>  	spin_lock(&nilfs->ns_last_segment_lock);
>  	sustat->ss_prot_seq = nilfs->ns_prot_seq;
>  	spin_unlock(&nilfs->ns_last_segment_lock);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(header_bh);
>  
>   out_sem:
> @@ -598,15 +598,15 @@ void nilfs_sufile_do_set_error(struct inode *sufile, __u64 segnum,
>  	void *kaddr;
>  	int suclean;
>  
> -	kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(su_bh->b_page);
>  	su = nilfs_sufile_block_get_segment_usage(sufile, segnum, su_bh, kaddr);
>  	if (nilfs_segment_usage_error(su)) {
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		return;
>  	}
>  	suclean = nilfs_segment_usage_clean(su);
>  	nilfs_segment_usage_set_error(su);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	if (suclean) {
>  		nilfs_sufile_mod_counter(header_bh, -1, 0);
> @@ -675,7 +675,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
>  			/* hole */
>  			continue;
>  		}
> -		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(su_bh->b_page);
>  		su = nilfs_sufile_block_get_segment_usage(
>  			sufile, segnum, su_bh, kaddr);
>  		su2 = su;
> @@ -684,7 +684,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
>  			     ~(1UL << NILFS_SEGMENT_USAGE_ERROR)) ||
>  			    nilfs_segment_is_active(nilfs, segnum + j)) {
>  				ret = -EBUSY;
> -				kunmap_atomic(kaddr, KM_USER0);
> +				kunmap_atomic(kaddr);
>  				brelse(su_bh);
>  				goto out_header;
>  			}
> @@ -696,7 +696,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
>  				nc++;
>  			}
>  		}
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		if (nc > 0) {
>  			mark_buffer_dirty(su_bh);
>  			ncleaned += nc;
> @@ -772,10 +772,10 @@ int nilfs_sufile_resize(struct inode *sufile, __u64 newnsegs)
>  		sui->ncleansegs -= nsegs - newnsegs;
>  	}
>  
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = kaddr + bh_offset(header_bh);
>  	header->sh_ncleansegs = cpu_to_le64(sui->ncleansegs);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	mark_buffer_dirty(header_bh);
>  	nilfs_mdt_mark_dirty(sufile);
> @@ -840,7 +840,7 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
>  			continue;
>  		}
>  
> -		kaddr = kmap_atomic(su_bh->b_page, KM_USER0);
> +		kaddr = kmap_atomic(su_bh->b_page);
>  		su = nilfs_sufile_block_get_segment_usage(
>  			sufile, segnum, su_bh, kaddr);
>  		for (j = 0; j < n;
> @@ -853,7 +853,7 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
>  				si->sui_flags |=
>  					(1UL << NILFS_SEGMENT_USAGE_ACTIVE);
>  		}
> -		kunmap_atomic(kaddr, KM_USER0);
> +		kunmap_atomic(kaddr);
>  		brelse(su_bh);
>  	}
>  	ret = nsegs;
> @@ -902,10 +902,10 @@ int nilfs_sufile_read(struct super_block *sb, size_t susize,
>  		goto failed;
>  
>  	sui = NILFS_SUI(sufile);
> -	kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
> +	kaddr = kmap_atomic(header_bh->b_page);
>  	header = kaddr + bh_offset(header_bh);
>  	sui->ncleansegs = le64_to_cpu(header->sh_ncleansegs);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	brelse(header_bh);
>  
>  	sui->allocmax = nilfs_sufile_get_nsegments(sufile) - 1;
> -- 
> 1.7.4.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 33/62] exofs: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 33/62] exofs: " Cong Wang
@ 2011-11-28 17:35   ` Boaz Harrosh
  0 siblings, 0 replies; 121+ messages in thread
From: Boaz Harrosh @ 2011-11-28 17:35 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Benny Halevy, osd-dev

On 11/26/2011 09:27 PM, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Ack-by: Boaz Harrosh <bharrosh@panasas.com>

> ---
>  fs/exofs/dir.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/exofs/dir.c b/fs/exofs/dir.c
> index d0941c6..b757a6e 100644
> --- a/fs/exofs/dir.c
> +++ b/fs/exofs/dir.c
> @@ -597,7 +597,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
>  		goto fail;
>  	}
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	de = (struct exofs_dir_entry *)kaddr;
>  	de->name_len = 1;
>  	de->rec_len = cpu_to_le16(EXOFS_DIR_REC_LEN(1));
> @@ -611,7 +611,7 @@ int exofs_make_empty(struct inode *inode, struct inode *parent)
>  	de->inode_no = cpu_to_le64(parent->i_ino);
>  	memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR));
>  	exofs_set_de_type(de, inode);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  	err = exofs_commit_chunk(page, 0, chunk_size);
>  fail:
>  	page_cache_release(page);


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-27  8:07   ` Eric Dumazet
@ 2011-11-28 18:06     ` Alexander Duyck
  2011-11-28 18:26       ` Eric Dumazet
  0 siblings, 1 reply; 121+ messages in thread
From: Alexander Duyck @ 2011-11-28 18:06 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Cong Wang, linux-kernel, akpm, Jeff Kirsher, Jesse Brandeburg,
	Bruce Allan, Carolyn Wyborny, Don Skidmore, Greg Rose,
	Peter P Waskiewicz Jr, John Ronciak, David S. Miller,
	Dean Nelson, Ian Campbell, Jiri Pirko, e1000-devel, netdev

On 11/27/2011 12:07 AM, Eric Dumazet wrote:
> Le dimanche 27 novembre 2011 à 13:27 +0800, Cong Wang a écrit :
>> Signed-off-by: Cong Wang <amwang@redhat.com>
>> ---
>> diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
>> index cf480b5..b194beb 100644
>> --- a/drivers/net/ethernet/intel/e1000/e1000_main.c
>> +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
>> @@ -3878,11 +3878,9 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
>>  				if (length <= copybreak &&
>>  				    skb_tailroom(skb) >= length) {
>>  					u8 *vaddr;
>> -					vaddr = kmap_atomic(buffer_info->page,
>> -					                    KM_SKB_DATA_SOFTIRQ);
>> +					vaddr = kmap_atomic(buffer_info->page);
>>  					memcpy(skb_tail_pointer(skb), vaddr, length);
>> -					kunmap_atomic(vaddr,
>> -					              KM_SKB_DATA_SOFTIRQ);
>> +					kunmap_atomic(vaddr);
>>  					/* re-use the page, so don't erase
>>  					 * buffer_info->page */
>>  					skb_put(skb, length);
>> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
>> index a855db1..8603c87 100644
>> --- a/drivers/net/ethernet/intel/e1000e/netdev.c
>> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
>> @@ -1272,9 +1272,9 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
>>  			 */
>>  			dma_sync_single_for_cpu(&pdev->dev, ps_page->dma,
>>  						PAGE_SIZE, DMA_FROM_DEVICE);
>> -			vaddr = kmap_atomic(ps_page->page, KM_SKB_DATA_SOFTIRQ);
>> +			vaddr = kmap_atomic(ps_page->page);
>>  			memcpy(skb_tail_pointer(skb), vaddr, l1);
>> -			kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
>> +			kunmap_atomic(vaddr);
>>  			dma_sync_single_for_device(&pdev->dev, ps_page->dma,
>>  						   PAGE_SIZE, DMA_FROM_DEVICE);
>>  
>> @@ -1465,12 +1465,10 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
>>  				if (length <= copybreak &&
>>  				    skb_tailroom(skb) >= length) {
>>  					u8 *vaddr;
>> -					vaddr = kmap_atomic(buffer_info->page,
>> -					                   KM_SKB_DATA_SOFTIRQ);
>> +					vaddr = kmap_atomic(buffer_info->page);
>>  					memcpy(skb_tail_pointer(skb), vaddr,
>>  					       length);
>> -					kunmap_atomic(vaddr,
>> -					              KM_SKB_DATA_SOFTIRQ);
>> +					kunmap_atomic(vaddr);
>>  					/* re-use the page, so don't erase
>>  					 * buffer_info->page */
>>  					skb_put(skb, length);
> But why are these drivers using kmap_atomic() in first place, since
> their fragments are allocated in regular zone (GFP_ATOMIC or
> GFP_KERNEL) ?

I was asking the same thing myself recently when I started working on
some copy-break like code for the ixgbe driver.  I believe the main
reason is a lack of documentation.  This code is based loosely on the
skb_copy_bits code which will use kmap_skb_frag over all of the paged
portions of the sk_buff.  As such it was decided to map things via
kmap_atomic in order to guarantee the pages had a valid virtual address.

If I understand things correctly, what you are brining up is that pages
allocated with either GFP_ATOMIC or GFP_KERNEL will always be allocated
from the lowmem pool and as such page_address should always succeed.  Is
that correct?

Thanks,

Alex

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 21/62] net: remove the second argument of k[un]map_atomic()
  2011-11-28 18:06     ` Alexander Duyck
@ 2011-11-28 18:26       ` Eric Dumazet
  0 siblings, 0 replies; 121+ messages in thread
From: Eric Dumazet @ 2011-11-28 18:26 UTC (permalink / raw)
  To: Alexander Duyck
  Cc: Cong Wang, linux-kernel, akpm, Jeff Kirsher, Jesse Brandeburg,
	Bruce Allan, Carolyn Wyborny, Don Skidmore, Greg Rose,
	Peter P Waskiewicz Jr, John Ronciak, David S. Miller,
	Dean Nelson, Ian Campbell, Jiri Pirko, e1000-devel, netdev

Le lundi 28 novembre 2011 à 10:06 -0800, Alexander Duyck a écrit :
> On 11/27/2011 12:07 AM, Eric Dumazet wrote:
> > But why are these drivers using kmap_atomic() in first place, since
> > their fragments are allocated in regular zone (GFP_ATOMIC or
> > GFP_KERNEL) ?
> 
> I was asking the same thing myself recently when I started working on
> some copy-break like code for the ixgbe driver.  I believe the main
> reason is a lack of documentation.  This code is based loosely on the
> skb_copy_bits code which will use kmap_skb_frag over all of the paged
> portions of the sk_buff.  As such it was decided to map things via
> kmap_atomic in order to guarantee the pages had a valid virtual address.
> 
> If I understand things correctly, what you are brining up is that pages
> allocated with either GFP_ATOMIC or GFP_KERNEL will always be allocated
> from the lowmem pool and as such page_address should always succeed.  Is
> that correct?
> 

Yes.

Either you could :

A) allocate high memory pages to lower pressure on LOWMEM area on 32bit
kernels.

B) avoid using kmap_atomic() & kunmap_atomic() and be faster on 32bit
kernels.

	skb_put(skb, length);
	memcpy(skb->data, page_address(buffer_info->page), length);

 




^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-28 11:49       ` Cong Wang
@ 2011-11-28 19:00         ` James Bottomley
  2011-11-29  3:25           ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: James Bottomley @ 2011-11-28 19:00 UTC (permalink / raw)
  To: Cong Wang; +Cc: Sergei Shtylyov, linux-kernel, akpm, Jeff Garzik, linux-ide

On Mon, 2011-11-28 at 19:49 +0800, Cong Wang wrote:
> 于 2011年11月28日 19:42, Cong Wang 写道:
> > 于 2011年11月28日 18:01, Sergei Shtylyov 写道:
> >> Hello.
> >>
> >> On 27-11-2011 9:26, Cong Wang wrote:
> >>
> >>> Signed-off-by: Cong Wang<amwang@redhat.com>
> >>> ---
> >>> drivers/ata/libata-sff.c | 8 ++++----
> >>> 1 files changed, 4 insertions(+), 4 deletions(-)
> >>
> >> IMO, you should do this in a single patch, not piecemeal to keep the kernel bisectable.
> >>
> >
> > Hi,
> >
> > Please see patch 01/62,
> >
> > https://lkml.org/lkml/2011/11/28/35
> >
> > So even without it, the kernel can still compile, just with some warnings.
> >
> 
> Ah, no, sorry that I replied too quickly. We have to have at least 01/62
> to compile.
> 
> Actually I did make the patches as a whole, but Andrew Morton prefers to
> split them, so I make V2 of them.

I'd vote for as a whole as well, but if there's some legitimate reason
why not, then take them through Jiri's trivial tree; it's pretty trivial
anyway and at least going that way would keep them bisectable.

James



^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 10/62] ata: remove the second argument of k[un]map_atomic()
  2011-11-28 19:00         ` James Bottomley
@ 2011-11-29  3:25           ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-29  3:25 UTC (permalink / raw)
  To: James Bottomley
  Cc: Sergei Shtylyov, linux-kernel, akpm, Jeff Garzik, linux-ide

于 2011年11月29日 03:00, James Bottomley 写道:
>
> I'd vote for as a whole as well, but if there's some legitimate reason
> why not, then take them through Jiri's trivial tree; it's pretty trivial
> anyway and at least going that way would keep them bisectable.
>

Ok, I just made a branch which keeps these patches as a single one,

git://github.com/congwang/linux.git #kmap_atomic-single

As the single patch is 233K, so I don't send it to mailing list.

Thanks.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic
  2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
                   ` (61 preceding siblings ...)
  2011-11-27 22:21 ` [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Benjamin Herrenschmidt
@ 2011-11-29  3:36 ` Cong Wang
  62 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-11-29  3:36 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: linux-kernel, akpm, Peter Zijlstra, James Bottomley

Cc: Jiri Kosina <trivial@kernel.org>

Hi, Jiri,

I just made a branch which keeps all these patches as a single one,

git://github.com/congwang/linux.git #kmap_atomic-single

(As the single patch is 233K and the split ones are already sent, so I don't send it to mailing list.)

So, unless Andrew Morton objects, could you take that single
big patch into your tree? James Bottomley prefers this.

BTW, the split patches can still be found at,

git://github.com/congwang/linux.git #for-next


Thanks!

On 2011/11/27 13:26, Cong Wang wrote:
> V1: https://lkml.org/lkml/2011/1/30/13
>
> V1->V2: Split patches and rebase them to the latest linus tree.
>
> Now the second argument of kmap_atomic()/kunmap_atomic() is totally
> unused, this patchset removes it from all callers.
>
> But for backward compatibility, we still keep the deprecated form,
> and will warn the users if they still use the deprecated one, like this:
>
> drivers/block/drbd/drbd_bitmap.c: In function ‘bm_page_io_async’:
> drivers/block/drbd/drbd_bitmap.c:973:3: warning: ‘kmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:124)
> drivers/block/drbd/drbd_bitmap.c:977:3: warning: ‘kunmap_atomic_deprecated’ is deprecated (declared at /home/wangcong/linux-2.6/include/linux/highmem.h:144)
>
> To schedule the final removal of these stuffs, I also write some doc into
> feature-removal-schedule.txt, see the last patch in this thread.
>
> Most of this patch is generated by the following commands:
>
> find . -name '*.[c|h]' -exec sed -i -e 's#\bkmap_atomic(\(.*\),.*)#kmap_atomic(\1)#' '{}' \;
> find . -name '*.[c|h]' -exec sed -i -e 's#\bkunmap_atomic(\(.*\),.*)#kunmap_atomic(\1)#' '{}' \;
>
> the rest exceptions are fixed by hands.
>
> This patch passes 'make allyesconfig' test on both ppc64 and x86_64.
>
> BTW, all patches can be found on my github:
>
> 	git@github.com:congwang/linux.git #for-next
>
> and the final removal patches can be found here:
>
> 	git@github.com:congwang/linux.git #for-3.5
>
>
> Signed-off-by: Cong Wang<amwang@redhat.com>
> Cc: Peter Zijlstra<a.p.zijlstra@chello.nl>
>
> ---
>
> Cong Wang (62):
>    highmem: mark k[un]map_atomic() with two arguments as deprecated
>    include/linux/highmem.h: remove the second argument of
>      k[un]map_atomic()
>    arm: remove the second argument of k[un]map_atomic()
>    mips: remove the second argument of k[un]map_atomic()
>    powerpc: remove the second argument of k[un]map_atomic()
>    sh: remove the second argument of k[un]map_atomic()
>    um: remove the second argument of k[un]map_atomic()
>    x86: remove the second argument of k[un]map_atomic()
>    crypto: remove the second argument of k[un]map_atomic()
>    ata: remove the second argument of k[un]map_atomic()
>    block: remove the second argument of k[un]map_atomic()
>    crypto: remove the second argument of k[un]map_atomic()
>    edac: remove the second argument of k[un]map_atomic()
>    drm: remove the second argument of k[un]map_atomic()
>    ide: remove the second argument of k[un]map_atomic()
>    infiniband: remove the second argument of k[un]map_atomic()
>    md: remove the second argument of k[un]map_atomic()
>    media: remove the second argument of k[un]map_atomic()
>    memstick: remove the second argument of k[un]map_atomic()
>    mmc: remove the second argument of k[un]map_atomic()
>    net: remove the second argument of k[un]map_atomic()
>    scsi: remove the second argument of k[un]map_atomic()
>    hv: remove the second argument of k[un]map_atomic()
>    pohmelfs: remove the second argument of k[un]map_atomic()
>    rtl8192u: remove the second argument of k[un]map_atomic()
>    zram: remove the second argument of k[un]map_atomic()
>    target: remove the second argument of k[un]map_atomic()
>    vhost: remove the second argument of k[un]map_atomic()
>    fs: remove the second argument of k[un]map_atomic()
>    btrfs: remove the second argument of k[un]map_atomic()
>    ecryptfs: remove the second argument of k[un]map_atomic()
>    afs: remove the second argument of k[un]map_atomic()
>    exofs: remove the second argument of k[un]map_atomic()
>    ext2: remove the second argument of k[un]map_atomic()
>    fuse: remove the second argument of k[un]map_atomic()
>    gfs2: remove the second argument of k[un]map_atomic()
>    jbd: remove the second argument of k[un]map_atomic()
>    jbd2: remove the second argument of k[un]map_atomic()
>    logfs: remove the second argument of k[un]map_atomic()
>    minix: remove the second argument of k[un]map_atomic()
>    nfs: remove the second argument of k[un]map_atomic()
>    nilfs2: remove the second argument of k[un]map_atomic()
>    ntfs: remove the second argument of k[un]map_atomic()
>    ocfs2: remove the second argument of k[un]map_atomic()
>    reiserfs: remove the second argument of k[un]map_atomic()
>    squashfs: remove the second argument of k[un]map_atomic()
>    ubifs: remove the second argument of k[un]map_atomic()
>    udf: remove the second argument of k[un]map_atomic()
>    kdb: remove the second argument of k[un]map_atomic()
>    power: remove the second argument of k[un]map_atomic()
>    lib: remove the second argument of k[un]map_atomic()
>    mm: remove the second argument of k[un]map_atomic()
>    net: remove the second argument of k[un]map_atomic()
>    rds: remove the second argument of k[un]map_atomic()
>    sunrpc: remove the second argument of k[un]map_atomic()
>    tomoyo: remove the second argument of k[un]map_atomic()
>    md: remove the second argument of k[un]map_atomic()
>    gma500: remove the second argument of k[un]map_atomic()
>    zcache: remove the second argument of k[un]map_atomic()
>    drbd: remove the second argument of k[un]map_atomic()
>    highmem: kill all __kmap_atomic()
>    feature-removal-schedule.txt: add the deprecated form of
>      kmap_atomic()
>
>   Documentation/feature-removal-schedule.txt       |    8 ++
>   arch/arm/mm/copypage-fa.c                        |   12 ++--
>   arch/arm/mm/copypage-feroceon.c                  |   12 ++--
>   arch/arm/mm/copypage-v3.c                        |   12 ++--
>   arch/arm/mm/copypage-v4mc.c                      |    8 +-
>   arch/arm/mm/copypage-v4wb.c                      |   12 ++--
>   arch/arm/mm/copypage-v4wt.c                      |   12 ++--
>   arch/arm/mm/copypage-v6.c                        |   12 ++--
>   arch/arm/mm/copypage-xsc3.c                      |   12 ++--
>   arch/arm/mm/copypage-xscale.c                    |    8 +-
>   arch/arm/mm/highmem.c                            |    4 +-
>   arch/frv/include/asm/highmem.h                   |    2 +-
>   arch/frv/mm/highmem.c                            |    4 +-
>   arch/mips/include/asm/highmem.h                  |    2 +-
>   arch/mips/mm/c-r4k.c                             |    4 +-
>   arch/mips/mm/highmem.c                           |    4 +-
>   arch/mips/mm/init.c                              |    8 +-
>   arch/mn10300/include/asm/highmem.h               |    2 +-
>   arch/parisc/include/asm/cacheflush.h             |    2 +-
>   arch/powerpc/include/asm/highmem.h               |    2 +-
>   arch/powerpc/kvm/book3s_pr.c                     |    4 +-
>   arch/powerpc/mm/dma-noncoherent.c                |    5 +-
>   arch/powerpc/mm/hugetlbpage.c                    |    4 +-
>   arch/powerpc/mm/mem.c                            |    4 +-
>   arch/sh/mm/cache-sh4.c                           |    4 +-
>   arch/sh/mm/cache.c                               |   12 ++--
>   arch/sparc/include/asm/highmem.h                 |    2 +-
>   arch/sparc/mm/highmem.c                          |    4 +-
>   arch/tile/include/asm/highmem.h                  |    2 +-
>   arch/tile/mm/highmem.c                           |    4 +-
>   arch/um/kernel/skas/uaccess.c                    |    4 +-
>   arch/x86/crypto/aesni-intel_glue.c               |   24 +++---
>   arch/x86/include/asm/highmem.h                   |    2 +-
>   arch/x86/kernel/crash_dump_32.c                  |    6 +-
>   arch/x86/kvm/lapic.c                             |    8 +-
>   arch/x86/kvm/paging_tmpl.h                       |    4 +-
>   arch/x86/kvm/x86.c                               |    8 +-
>   arch/x86/lib/usercopy_32.c                       |    4 +-
>   arch/x86/mm/highmem_32.c                         |    4 +-
>   crypto/ahash.c                                   |    4 +-
>   crypto/async_tx/async_memcpy.c                   |    8 +-
>   crypto/blkcipher.c                               |    8 +-
>   crypto/ccm.c                                     |    4 +-
>   crypto/scatterwalk.c                             |    8 +-
>   crypto/shash.c                                   |    8 +-
>   drivers/ata/libata-sff.c                         |    8 +-
>   drivers/block/brd.c                              |   20 +++---
>   drivers/block/drbd/drbd_bitmap.c                 |   50 ++++++------
>   drivers/block/drbd/drbd_nl.c                     |    4 +-
>   drivers/block/loop.c                             |   16 ++--
>   drivers/block/pktcdvd.c                          |    8 +-
>   drivers/crypto/hifn_795x.c                       |   10 +-
>   drivers/edac/edac_mc.c                           |    4 +-
>   drivers/gpu/drm/drm_cache.c                      |    8 +-
>   drivers/gpu/drm/ttm/ttm_tt.c                     |   16 ++--
>   drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c              |    6 +-
>   drivers/ide/ide-taskfile.c                       |    4 +-
>   drivers/infiniband/ulp/iser/iser_memory.c        |    8 +-
>   drivers/md/bitmap.c                              |   42 +++++-----
>   drivers/md/dm-crypt.c                            |    8 +-
>   drivers/media/video/ivtv/ivtv-udma.c             |    4 +-
>   drivers/memstick/host/jmb38x_ms.c                |    4 +-
>   drivers/memstick/host/tifm_ms.c                  |    4 +-
>   drivers/mmc/host/at91_mci.c                      |    8 +-
>   drivers/mmc/host/msm_sdcc.c                      |    6 +-
>   drivers/mmc/host/sdhci.c                         |    4 +-
>   drivers/mmc/host/tifm_sd.c                       |   16 ++--
>   drivers/mmc/host/tmio_mmc.c                      |    1 -
>   drivers/mmc/host/tmio_mmc.h                      |    4 +-
>   drivers/net/ethernet/intel/e1000/e1000_main.c    |    6 +-
>   drivers/net/ethernet/intel/e1000e/netdev.c       |   10 +--
>   drivers/net/ethernet/sun/cassini.c               |    4 +-
>   drivers/scsi/arcmsr/arcmsr_hba.c                 |    8 +-
>   drivers/scsi/bnx2fc/bnx2fc_fcoe.c                |    5 +-
>   drivers/scsi/cxgbi/libcxgbi.c                    |    5 +-
>   drivers/scsi/fcoe/fcoe.c                         |    4 +-
>   drivers/scsi/fcoe/fcoe_transport.c               |    5 +-
>   drivers/scsi/gdth.c                              |    4 +-
>   drivers/scsi/ips.c                               |    6 +-
>   drivers/scsi/isci/request.c                      |   16 ++--
>   drivers/scsi/libfc/fc_fcp.c                      |    8 +-
>   drivers/scsi/libfc/fc_libfc.c                    |    8 +-
>   drivers/scsi/libfc/fc_libfc.h                    |    2 +-
>   drivers/scsi/libfc/fc_lport.c                    |    2 +-
>   drivers/scsi/libiscsi_tcp.c                      |    4 +-
>   drivers/scsi/libsas/sas_host_smp.c               |    8 +-
>   drivers/scsi/megaraid.c                          |    4 +-
>   drivers/scsi/mvsas/mv_sas.c                      |    4 +-
>   drivers/scsi/scsi_debug.c                        |   24 +++---
>   drivers/scsi/scsi_lib.c                          |    4 +-
>   drivers/scsi/sd_dif.c                            |   12 ++--
>   drivers/staging/gma500/mmu.c                     |   30 ++++----
>   drivers/staging/hv/netvsc_drv.c                  |    5 +-
>   drivers/staging/hv/rndis_filter.c                |    4 +-
>   drivers/staging/hv/storvsc_drv.c                 |   31 +++----
>   drivers/staging/pohmelfs/inode.c                 |    8 +-
>   drivers/staging/rtl8192u/ieee80211/cipher.c      |    8 +-
>   drivers/staging/rtl8192u/ieee80211/digest.c      |    8 +-
>   drivers/staging/rtl8192u/ieee80211/internal.h    |   17 ----
>   drivers/staging/rtl8192u/ieee80211/kmap_types.h  |   20 -----
>   drivers/staging/rtl8192u/ieee80211/scatterwalk.c |   19 +---
>   drivers/staging/zcache/zcache-main.c             |   16 ++--
>   drivers/staging/zram/xvmalloc.c                  |   39 +++++-----
>   drivers/staging/zram/zram_drv.c                  |   44 +++++-----
>   drivers/target/target_core_transport.c           |    4 +-
>   drivers/target/tcm_fc/tfc_io.c                   |   10 +--
>   drivers/vhost/vhost.c                            |    4 +-
>   fs/afs/fsclient.c                                |    8 +-
>   fs/afs/mntpt.c                                   |    4 +-
>   fs/aio.c                                         |   30 ++++----
>   fs/bio-integrity.c                               |   10 +-
>   fs/btrfs/compression.c                           |   12 ++--
>   fs/btrfs/extent_io.c                             |   16 ++--
>   fs/btrfs/file-item.c                             |    4 +-
>   fs/btrfs/inode.c                                 |   26 +++---
>   fs/btrfs/lzo.c                                   |    4 +-
>   fs/btrfs/scrub.c                                 |    8 +-
>   fs/btrfs/zlib.c                                  |    4 +-
>   fs/ecryptfs/mmap.c                               |    4 +-
>   fs/ecryptfs/read_write.c                         |    8 +-
>   fs/exec.c                                        |    4 +-
>   fs/exofs/dir.c                                   |    4 +-
>   fs/ext2/dir.c                                    |    4 +-
>   fs/fuse/dev.c                                    |    4 +-
>   fs/fuse/file.c                                   |    4 +-
>   fs/gfs2/aops.c                                   |   12 ++--
>   fs/gfs2/lops.c                                   |    8 +-
>   fs/gfs2/quota.c                                  |    4 +-
>   fs/jbd/journal.c                                 |   12 ++--
>   fs/jbd/transaction.c                             |    4 +-
>   fs/jbd2/commit.c                                 |    4 +-
>   fs/jbd2/journal.c                                |   12 ++--
>   fs/jbd2/transaction.c                            |    4 +-
>   fs/logfs/dir.c                                   |   18 ++--
>   fs/logfs/readwrite.c                             |   38 +++++-----
>   fs/logfs/segment.c                               |    4 +-
>   fs/minix/dir.c                                   |    4 +-
>   fs/namei.c                                       |    4 +-
>   fs/nfs/dir.c                                     |    8 +-
>   fs/nfs/nfs4proc.c                                |    4 +-
>   fs/nilfs2/cpfile.c                               |   94 +++++++++++-----------
>   fs/nilfs2/dat.c                                  |   38 +++++-----
>   fs/nilfs2/dir.c                                  |    4 +-
>   fs/nilfs2/ifile.c                                |    4 +-
>   fs/nilfs2/mdt.c                                  |    4 +-
>   fs/nilfs2/page.c                                 |    8 +-
>   fs/nilfs2/recovery.c                             |    4 +-
>   fs/nilfs2/segbuf.c                               |    4 +-
>   fs/nilfs2/sufile.c                               |   68 ++++++++--------
>   fs/ntfs/aops.c                                   |   20 +++---
>   fs/ntfs/attrib.c                                 |   20 +++---
>   fs/ntfs/file.c                                   |   16 ++--
>   fs/ntfs/super.c                                  |    8 +-
>   fs/ocfs2/aops.c                                  |   16 ++--
>   fs/pipe.c                                        |    8 +-
>   fs/reiserfs/stree.c                              |    4 +-
>   fs/reiserfs/tail_conversion.c                    |    4 +-
>   fs/splice.c                                      |    7 +-
>   fs/squashfs/file.c                               |    8 +-
>   fs/squashfs/symlink.c                            |    4 +-
>   fs/ubifs/file.c                                  |    4 +-
>   fs/udf/file.c                                    |    4 +-
>   include/crypto/scatterwalk.h                     |   28 +------
>   include/linux/bio.h                              |    8 +-
>   include/linux/highmem.h                          |   77 ++++++++++++-----
>   kernel/debug/kdb/kdb_support.c                   |    4 +-
>   kernel/power/snapshot.c                          |   28 +++---
>   lib/scatterlist.c                                |    4 +-
>   lib/swiotlb.c                                    |    5 +-
>   mm/bounce.c                                      |    4 +-
>   mm/filemap.c                                     |    8 +-
>   mm/ksm.c                                         |   12 ++--
>   mm/memory.c                                      |    4 +-
>   mm/shmem.c                                       |    4 +-
>   mm/swapfile.c                                    |   30 ++++----
>   mm/vmalloc.c                                     |    8 +-
>   net/core/kmap_skb.h                              |    4 +-
>   net/rds/ib_recv.c                                |    7 +-
>   net/rds/info.c                                   |    6 +-
>   net/rds/iw_recv.c                                |    7 +-
>   net/rds/loop.c                                   |    2 +-
>   net/rds/rds.h                                    |    2 +-
>   net/rds/recv.c                                   |    2 +-
>   net/rds/tcp_recv.c                               |   11 +--
>   net/sunrpc/auth_gss/gss_krb5_wrap.c              |    4 +-
>   net/sunrpc/socklib.c                             |    4 +-
>   net/sunrpc/xdr.c                                 |   20 +++---
>   net/sunrpc/xprtrdma/rpc_rdma.c                   |    8 +-
>   security/tomoyo/domain.c                         |    4 +-
>   189 files changed, 936 insertions(+), 992 deletions(-)
>   create mode 100644 drivers/net/team/Module.symvers
>   delete mode 100644 drivers/staging/rtl8192u/ieee80211/kmap_types.h
>


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 20/62] mmc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
  2011-11-27 21:02   ` Guennadi Liakhovetski
@ 2011-11-30 23:51   ` David Brown
  2011-12-01 18:47   ` Chris Ball
  2 siblings, 0 replies; 121+ messages in thread
From: David Brown @ 2011-11-30 23:51 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Nicolas Ferre, Chris Ball, David Brown,
	Daniel Walker, Bryan Huntsman, Alex Dubov, Guennadi Liakhovetski,
	Ian Molton, linux-arm-kernel, linux-mmc, linux-arm-msm

On Sun, Nov 27, 2011 at 01:27:00PM +0800, Cong Wang wrote:

>  drivers/mmc/host/msm_sdcc.c |    6 +++---

Acked-by: David Brown <davidb@codeaurora.org>

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 20/62] mmc: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
  2011-11-27 21:02   ` Guennadi Liakhovetski
  2011-11-30 23:51   ` David Brown
@ 2011-12-01 18:47   ` Chris Ball
  2011-12-02  2:10     ` Cong Wang
  2 siblings, 1 reply; 121+ messages in thread
From: Chris Ball @ 2011-12-01 18:47 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Nicolas Ferre, David Brown, Daniel Walker,
	Bryan Huntsman, Alex Dubov, Guennadi Liakhovetski, Ian Molton,
	linux-arm-kernel, linux-mmc, linux-arm-msm

Hi,

On Sun, Nov 27 2011, Cong Wang wrote:
> Signed-off-by: Cong Wang <amwang@redhat.com>
> ---
>  drivers/mmc/host/at91_mci.c |    8 ++++----
>  drivers/mmc/host/msm_sdcc.c |    6 +++---
>  drivers/mmc/host/sdhci.c    |    4 ++--
>  drivers/mmc/host/tifm_sd.c  |   16 ++++++++--------
>  drivers/mmc/host/tmio_mmc.c |    1 -
>  drivers/mmc/host/tmio_mmc.h |    4 ++--
>  6 files changed, 19 insertions(+), 20 deletions(-)

Looks good, thanks, pushed to mmc-next for 3.3.

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 44/62] ocfs2: remove the second argument of k[un]map_atomic()
  2011-11-27  5:27 ` [PATCH 44/62] ocfs2: " Cong Wang
@ 2011-12-01 20:18   ` Joel Becker
  2011-12-02  2:04     ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: Joel Becker @ 2011-12-01 20:18 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, akpm, Mark Fasheh, ocfs2-devel

On Sun, Nov 27, 2011 at 01:27:24PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Joel Becker <jlbec@evilplan.org>

I'm presuming you'll handle pushing this with the entire series.

Joel

> ---
>  fs/ocfs2/aops.c |   16 ++++++++--------
>  1 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
> index c1efe93..61f93a5 100644
> --- a/fs/ocfs2/aops.c
> +++ b/fs/ocfs2/aops.c
> @@ -102,7 +102,7 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock,
>  		 * copy, the data is still good. */
>  		if (buffer_jbd(buffer_cache_bh)
>  		    && ocfs2_inode_is_new(inode)) {
> -			kaddr = kmap_atomic(bh_result->b_page, KM_USER0);
> +			kaddr = kmap_atomic(bh_result->b_page);
>  			if (!kaddr) {
>  				mlog(ML_ERROR, "couldn't kmap!\n");
>  				goto bail;
> @@ -110,7 +110,7 @@ static int ocfs2_symlink_get_block(struct inode *inode, sector_t iblock,
>  			memcpy(kaddr + (bh_result->b_size * iblock),
>  			       buffer_cache_bh->b_data,
>  			       bh_result->b_size);
> -			kunmap_atomic(kaddr, KM_USER0);
> +			kunmap_atomic(kaddr);
>  			set_buffer_uptodate(bh_result);
>  		}
>  		brelse(buffer_cache_bh);
> @@ -236,13 +236,13 @@ int ocfs2_read_inline_data(struct inode *inode, struct page *page,
>  		return -EROFS;
>  	}
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  	if (size)
>  		memcpy(kaddr, di->id2.i_data.id_data, size);
>  	/* Clear the remaining part of the page */
>  	memset(kaddr + size, 0, PAGE_CACHE_SIZE - size);
>  	flush_dcache_page(page);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	SetPageUptodate(page);
>  
> @@ -671,7 +671,7 @@ static void ocfs2_clear_page_regions(struct page *page,
>  
>  	ocfs2_figure_cluster_boundaries(osb, cpos, &cluster_start, &cluster_end);
>  
> -	kaddr = kmap_atomic(page, KM_USER0);
> +	kaddr = kmap_atomic(page);
>  
>  	if (from || to) {
>  		if (from > cluster_start)
> @@ -682,7 +682,7 @@ static void ocfs2_clear_page_regions(struct page *page,
>  		memset(kaddr + cluster_start, 0, cluster_end - cluster_start);
>  	}
>  
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  }
>  
>  /*
> @@ -1928,9 +1928,9 @@ static void ocfs2_write_end_inline(struct inode *inode, loff_t pos,
>  		}
>  	}
>  
> -	kaddr = kmap_atomic(wc->w_target_page, KM_USER0);
> +	kaddr = kmap_atomic(wc->w_target_page);
>  	memcpy(di->id2.i_data.id_data + pos, kaddr + pos, *copied);
> -	kunmap_atomic(kaddr, KM_USER0);
> +	kunmap_atomic(kaddr);
>  
>  	trace_ocfs2_write_end_inline(
>  	     (unsigned long long)OCFS2_I(inode)->ip_blkno,
> -- 
> 1.7.4.4
> 

-- 

Life's Little Instruction Book #94

	"Make it a habit to do nice things for people who 
	 will never find out."

			http://www.jlbec.org/
			jlbec@evilplan.org

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 44/62] ocfs2: remove the second argument of k[un]map_atomic()
  2011-12-01 20:18   ` Joel Becker
@ 2011-12-02  2:04     ` Cong Wang
  2011-12-02  2:29       ` Andrew Morton
  0 siblings, 1 reply; 121+ messages in thread
From: Cong Wang @ 2011-12-02  2:04 UTC (permalink / raw)
  To: linux-kernel, akpm, Mark Fasheh, ocfs2-devel

于 2011年12月02日 04:18, Joel Becker 写道:
> On Sun, Nov 27, 2011 at 01:27:24PM +0800, Cong Wang wrote:
>>
>> Signed-off-by: Cong Wang<amwang@redhat.com>
>
> Acked-by: Joel Becker<jlbec@evilplan.org>
>
> I'm presuming you'll handle pushing this with the entire series.
>

Yeah, I hope either Andrew can take all of them or this can be merged
into trivial tree.

Thanks.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 20/62] mmc: remove the second argument of k[un]map_atomic()
  2011-12-01 18:47   ` Chris Ball
@ 2011-12-02  2:10     ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-12-02  2:10 UTC (permalink / raw)
  To: Chris Ball
  Cc: linux-kernel, akpm, Nicolas Ferre, David Brown, Daniel Walker,
	Bryan Huntsman, Alex Dubov, Guennadi Liakhovetski, Ian Molton,
	linux-arm-kernel, linux-mmc, linux-arm-msm

于 2011年12月02日 02:47, Chris Ball 写道:
> Hi,
>
> On Sun, Nov 27 2011, Cong Wang wrote:
>> Signed-off-by: Cong Wang<amwang@redhat.com>
>> ---
>>   drivers/mmc/host/at91_mci.c |    8 ++++----
>>   drivers/mmc/host/msm_sdcc.c |    6 +++---
>>   drivers/mmc/host/sdhci.c    |    4 ++--
>>   drivers/mmc/host/tifm_sd.c  |   16 ++++++++--------
>>   drivers/mmc/host/tmio_mmc.c |    1 -
>>   drivers/mmc/host/tmio_mmc.h |    4 ++--
>>   6 files changed, 19 insertions(+), 20 deletions(-)
>
> Looks good, thanks, pushed to mmc-next for 3.3.
>

Hello, Chris,

I am still not sure if Andrew wants to take all the patches together. :-/

But there should be no problem if you take this alone, after re-reading
the original code, it can still compile even without 01/62.

/*
  * Make both: kmap_atomic(page, idx) and kmap_atomic(page) work.
  */
#define kmap_atomic(page, args...) __kmap_atomic(page)

Regards.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 44/62] ocfs2: remove the second argument of k[un]map_atomic()
  2011-12-02  2:04     ` Cong Wang
@ 2011-12-02  2:29       ` Andrew Morton
  2011-12-02  2:38         ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: Andrew Morton @ 2011-12-02  2:29 UTC (permalink / raw)
  To: Cong Wang; +Cc: linux-kernel, Mark Fasheh, ocfs2-devel

On Fri, 02 Dec 2011 10:04:27 +0800 Cong Wang <amwang@redhat.com> wrote:

> ___ 2011___12___02___ 04:18, Joel Becker ______:
> > On Sun, Nov 27, 2011 at 01:27:24PM +0800, Cong Wang wrote:
> >>
> >> Signed-off-by: Cong Wang<amwang@redhat.com>
> >
> > Acked-by: Joel Becker<jlbec@evilplan.org>
> >
> > I'm presuming you'll handle pushing this with the entire series.
> >
> 
> Yeah, I hope either Andrew can take all of them

waaay too many patches ;)

> or this can be merged into trivial tree.

I'd suggest you ask Stephen to add the git tree to -next.  Once it's
all suitably reviewed/acked/etc, and we're in the merge window, ask
Linus to pull it.


^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 44/62] ocfs2: remove the second argument of k[un]map_atomic()
  2011-12-02  2:29       ` Andrew Morton
@ 2011-12-02  2:38         ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-12-02  2:38 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Mark Fasheh, ocfs2-devel

于 2011年12月02日 10:29, Andrew Morton 写道:
> On Fri, 02 Dec 2011 10:04:27 +0800 Cong Wang<amwang@redhat.com>  wrote:
>
>> ___ 2011___12___02___ 04:18, Joel Becker ______:
>>> On Sun, Nov 27, 2011 at 01:27:24PM +0800, Cong Wang wrote:
>>>>
>>>> Signed-off-by: Cong Wang<amwang@redhat.com>
>>>
>>> Acked-by: Joel Becker<jlbec@evilplan.org>
>>>
>>> I'm presuming you'll handle pushing this with the entire series.
>>>
>>
>> Yeah, I hope either Andrew can take all of them
>
> waaay too many patches ;)
>
>> or this can be merged into trivial tree.
>
> I'd suggest you ask Stephen to add the git tree to -next.  Once it's
> all suitably reviewed/acked/etc, and we're in the merge window, ask
> Linus to pull it.
>

Great! I will do that.

Thanks for the hints.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 04/62] mips: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 04/62] mips: " Cong Wang
@ 2011-12-09 16:06   ` Ralf Baechle
  2011-12-12  2:52     ` Cong Wang
  0 siblings, 1 reply; 121+ messages in thread
From: Ralf Baechle @ 2011-12-09 16:06 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, David S. Miller, Jiri Kosina, Kevin Cernekee,
	Justin P. Mattock, Peter Zijlstra, David Daney, linux-mips

On Sun, Nov 27, 2011 at 01:26:44PM +0800, Cong Wang wrote:

Acked-by: Ralf Baechle <ralf@linux-mips.org>

I assume you want to merge this patch as part of a single series?

  Ralf

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 61/62] highmem: kill all __kmap_atomic()
  2011-11-27  5:27 ` [PATCH 61/62] highmem: kill all __kmap_atomic() Cong Wang
@ 2011-12-09 16:07   ` Ralf Baechle
  0 siblings, 0 replies; 121+ messages in thread
From: Ralf Baechle @ 2011-12-09 16:07 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Russell King, David Howells, Koichi Yasutake,
	Kyle McMartin, Helge Deller, James E.J. Bottomley,
	Benjamin Herrenschmidt, Paul Mackerras, David S. Miller,
	Chris Metcalf, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86,
	Nicolas Pitre, James Bottomley, Paul Gortmaker,
	Christoph Lameter, Tejun Heo, linux-arm-kernel, linux-mips,
	linux-am33-list, linux-parisc, linuxppc-dev, sparclinux

On Sun, Nov 27, 2011 at 01:27:41PM +0800, Cong Wang wrote:

Acked-by: Ralf Baechle <ralf@linux-mips.org>

  Ralf

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 03/62] arm: remove the second argument of k[un]map_atomic()
  2011-11-27  5:26 ` [PATCH 03/62] arm: " Cong Wang
@ 2011-12-10 21:46   ` Russell King - ARM Linux
  0 siblings, 0 replies; 121+ messages in thread
From: Russell King - ARM Linux @ 2011-12-10 21:46 UTC (permalink / raw)
  To: Cong Wang
  Cc: linux-kernel, akpm, Hans Ulli Kroll, Thomas Gleixner,
	Ingo Molnar, Heechul Yun, Catalin Marinas, linux-arm-kernel

On Sun, Nov 27, 2011 at 01:26:43PM +0800, Cong Wang wrote:
> 
> Signed-off-by: Cong Wang <amwang@redhat.com>

Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>

Thanks for doing this.

^ permalink raw reply	[flat|nested] 121+ messages in thread

* Re: [PATCH 04/62] mips: remove the second argument of k[un]map_atomic()
  2011-12-09 16:06   ` Ralf Baechle
@ 2011-12-12  2:52     ` Cong Wang
  0 siblings, 0 replies; 121+ messages in thread
From: Cong Wang @ 2011-12-12  2:52 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: linux-kernel, akpm, David S. Miller, Jiri Kosina, Kevin Cernekee,
	Justin P. Mattock, Peter Zijlstra, David Daney, linux-mips

于 2011年12月10日 00:06, Ralf Baechle 写道:
> On Sun, Nov 27, 2011 at 01:26:44PM +0800, Cong Wang wrote:
>
> Acked-by: Ralf Baechle<ralf@linux-mips.org>
>
> I assume you want to merge this patch as part of a single series?
>

I put all the patches into a single tree which is in linux-next now. :)

Thanks for review!

^ permalink raw reply	[flat|nested] 121+ messages in thread

end of thread, other threads:[~2011-12-12  2:53 UTC | newest]

Thread overview: 121+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-27  5:26 [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Cong Wang
2011-11-27  5:26 ` [PATCH 01/62] highmem: mark k[un]map_atomic() with two arguments as deprecated Cong Wang
2011-11-27 12:34   ` Cesar Eduardo Barros
2011-11-28  5:07     ` Cong Wang
2011-11-28  7:46   ` [UPDATED PATCH " Cong Wang
2011-11-27  5:26 ` [PATCH 02/62] include/linux/highmem.h: remove the second argument of k[un]map_atomic() Cong Wang
2011-11-27  5:26 ` [PATCH 03/62] arm: " Cong Wang
2011-12-10 21:46   ` Russell King - ARM Linux
2011-11-27  5:26 ` [PATCH 04/62] mips: " Cong Wang
2011-12-09 16:06   ` Ralf Baechle
2011-12-12  2:52     ` Cong Wang
2011-11-27  5:26 ` [PATCH 05/62] powerpc: " Cong Wang
2011-11-27  5:26 ` [PATCH 06/62] sh: " Cong Wang
2011-11-27  5:26 ` [PATCH 07/62] um: " Cong Wang
2011-11-27  5:26 ` [PATCH 08/62] x86: " Cong Wang
2011-11-28 12:35   ` Avi Kivity
2011-11-28 12:47   ` Herbert Xu
2011-11-27  5:26 ` [PATCH 09/62] crypto: " Cong Wang
2011-11-27  5:26 ` [PATCH 10/62] ata: " Cong Wang
2011-11-27 18:40   ` Jeff Garzik
2011-11-28 10:01   ` Sergei Shtylyov
2011-11-28 11:42     ` Cong Wang
2011-11-28 11:49       ` Cong Wang
2011-11-28 19:00         ` James Bottomley
2011-11-29  3:25           ` Cong Wang
2011-11-27  5:26 ` [PATCH 11/62] block: " Cong Wang
2011-11-27  5:26 ` [PATCH 12/62] crypto: " Cong Wang
2011-11-27  5:26 ` [PATCH 13/62] edac: " Cong Wang
2011-11-27  5:26 ` [PATCH 14/62] drm: " Cong Wang
2011-11-27  5:26 ` [PATCH 15/62] ide: " Cong Wang
2011-11-27  6:12   ` David Miller
2011-11-27  5:26 ` [PATCH 16/62] infiniband: " Cong Wang
2011-11-28  7:38   ` Roland Dreier
2011-11-28  7:45     ` Cong Wang
2011-11-27  5:26 ` [PATCH 17/62] md: " Cong Wang
2011-11-27  6:00   ` NeilBrown
2011-11-27 10:27     ` [dm-devel] " Milan Broz
2011-11-28  5:10       ` Cong Wang
2011-11-28  7:47     ` [UPDATED PATCH " Cong Wang
2011-11-27  5:26 ` [PATCH 18/62] media: " Cong Wang
2011-11-27 23:10   ` Andy Walls
2011-11-27  5:26 ` [PATCH 19/62] memstick: " Cong Wang
2011-11-27  5:27 ` [PATCH 20/62] mmc: " Cong Wang
2011-11-27 21:02   ` Guennadi Liakhovetski
2011-11-30 23:51   ` David Brown
2011-12-01 18:47   ` Chris Ball
2011-12-02  2:10     ` Cong Wang
2011-11-27  5:27 ` [PATCH 21/62] net: " Cong Wang
2011-11-27  6:12   ` David Miller
2011-11-27  8:07   ` Eric Dumazet
2011-11-28 18:06     ` Alexander Duyck
2011-11-28 18:26       ` Eric Dumazet
2011-11-28  7:39   ` Cong Wang
2011-11-28  7:48   ` [UPDATED PATCH " Cong Wang
2011-11-27  5:27 ` [PATCH 23/62] hv: " Cong Wang
2011-11-27  9:34   ` Greg KH
2011-11-27  5:27 ` [PATCH 24/62] pohmelfs: " Cong Wang
2011-11-27  9:34   ` Greg KH
2011-11-28  0:58     ` Evgeniy Polyakov
2011-11-27  5:27 ` [PATCH 25/62] rtl8192u: " Cong Wang
2011-11-27  9:34   ` Greg KH
2011-11-27  5:27 ` [PATCH 26/62] zram: " Cong Wang
2011-11-27  9:34   ` Greg KH
2011-11-27  5:27 ` [PATCH 27/62] target: " Cong Wang
2011-11-27  5:27 ` [PATCH 28/62] vhost: " Cong Wang
2011-11-27  5:27 ` [PATCH 29/62] fs: " Cong Wang
2011-11-28  2:36   ` Benjamin LaHaise
2011-11-27  5:27 ` [PATCH 30/62] btrfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 31/62] ecryptfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 32/62] afs: " Cong Wang
2011-11-27  5:27 ` [PATCH 33/62] exofs: " Cong Wang
2011-11-28 17:35   ` Boaz Harrosh
2011-11-27  5:27 ` [PATCH 34/62] ext2: " Cong Wang
2011-11-28 14:15   ` Jan Kara
2011-11-27  5:27 ` [PATCH 35/62] fuse: " Cong Wang
2011-11-27  5:27 ` [PATCH 36/62] gfs2: " Cong Wang
2011-11-27  5:27 ` [PATCH 37/62] jbd: " Cong Wang
2011-11-28 14:15   ` Jan Kara
2011-11-27  5:27 ` [PATCH 38/62] jbd2: " Cong Wang
2011-11-27  5:27 ` [PATCH 39/62] logfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 40/62] minix: " Cong Wang
2011-11-27  5:27 ` [PATCH 41/62] nfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 42/62] nilfs2: " Cong Wang
2011-11-28 16:14   ` Ryusuke Konishi
2011-11-27  5:27 ` [PATCH 43/62] ntfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 44/62] ocfs2: " Cong Wang
2011-12-01 20:18   ` Joel Becker
2011-12-02  2:04     ` Cong Wang
2011-12-02  2:29       ` Andrew Morton
2011-12-02  2:38         ` Cong Wang
2011-11-27  5:27 ` [PATCH 45/62] reiserfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 46/62] squashfs: " Cong Wang
2011-11-27  5:27 ` [PATCH 47/62] ubifs: " Cong Wang
2011-11-27  5:27 ` [PATCH 48/62] udf: " Cong Wang
2011-11-28 14:16   ` Jan Kara
2011-11-27  5:27 ` [PATCH 49/62] kdb: " Cong Wang
2011-11-27  5:27 ` [PATCH 50/62] power: " Cong Wang
2011-11-27 11:38   ` Rafael J. Wysocki
2011-11-27  5:27 ` [PATCH 51/62] lib: " Cong Wang
2011-11-27  5:27 ` [PATCH 52/62] mm: " Cong Wang
2011-11-27  5:27 ` [PATCH 53/62] net: " Cong Wang
2011-11-27  6:12   ` David Miller
2011-11-27  5:27 ` [PATCH 54/62] rds: " Cong Wang
2011-11-27  6:13   ` David Miller
2011-11-27  5:27 ` [PATCH 55/62] sunrpc: " Cong Wang
2011-11-27  5:27 ` [PATCH 56/62] tomoyo: " Cong Wang
2011-11-27  5:27 ` [PATCH 57/62] md: " Cong Wang
2011-11-28  7:50   ` [UPDATED PATCH 57/62] dm: " Cong Wang
2011-11-27  5:27 ` [PATCH 58/62] gma500: " Cong Wang
2011-11-28 11:33   ` Alan Cox
2011-11-27  5:27 ` [PATCH 59/62] zcache: " Cong Wang
2011-11-27  9:34   ` Greg KH
2011-11-27  5:27 ` [PATCH 60/62] drbd: " Cong Wang
2011-11-27  5:27 ` [PATCH 61/62] highmem: kill all __kmap_atomic() Cong Wang
2011-12-09 16:07   ` Ralf Baechle
2011-11-27  5:27 ` [PATCH 62/62] feature-removal-schedule.txt: add the deprecated form of kmap_atomic() Cong Wang
2011-11-27 22:21 ` [V2 PATCH 00/62] highmem: remove the second argument of kmap_atomic/kunmap_atomic Benjamin Herrenschmidt
2011-11-28  4:34   ` Benjamin Herrenschmidt
2011-11-28  5:34     ` Cong Wang
2011-11-28  7:42   ` Cong Wang
2011-11-29  3:36 ` Cong Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).