workqueue list corruption

2017-06-04 Thread Cong Wang
Hello,

On Tue, Apr 18, 2017 at 8:08 PM, Samuel Holland  wrote:
> Representative backtraces follow (the warnings come in sets). I have
> kernel .configs and extended netconsole output from several occurrences
> available upon request.
>
> WARNING: CPU: 1 PID: 0 at lib/list_debug.c:33 __list_add+0x89/0xb0
> list_add corruption. prev->next should be next (99f135016a90), but
> was d34affc03b10. (prev=d34affc03b10).
> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G   O4.9.20+ #1
> Call Trace:
>  
>  dump_stack+0x67/0x92
>  __warn+0xc6/0xe0
>  warn_slowpath_fmt+0x5a/0x80
>  __list_add+0x89/0xb0
>  insert_work+0x3c/0xc0
>  __queue_work+0x18a/0x600
>  queue_work_on+0x33/0x70

We triggered a similar list corruption on 4.1.35 stable kernel,
and without padata:

[9021262.823059] [ cut here ]
[9021262.827957] WARNING: CPU: 8 PID: 1366 at lib/list_debug.c:62
__list_del_entry+0x5a/0x98()
[9021262.836275] list_del corruption. next->prev should be
8802f4644ca0, but was 88080c337ca0
[9021262.845285] Modules linked in: fuse sch_htb cls_basic act_mirred
cls_u32 veth sch_ingress cpufreq_ondemand in
tel_rapl iosf_mbi x86_pkg_temp_thermal coretemp kvm_intel kvm iTCO_wdt
iTCO_vendor_support microcode wmi lpc_ich shpchp dcdbas acpi_pad hed
mfd_core i2c_i801 sb_edac edac_core ioatd
ma acpi_cpufreq lp parport tcp_diag inet_diag sch_fq_codel ipmi_si
ipmi_devintf ipmi_msghandler ipv6 xfs libcrc32c crc32c_intel igb ptp
pps_core i2c_algo_bit dca i2c_core
[9021262.885919] CPU: 8 PID: 1366 Comm: kworker/8:0 Not tainted
4.1.35.el7.twitter.x86_64 #1
[9021262.894284] Hardware name: Dell Inc. PowerEdge C6220/04GD66, BIOS
2.2.3 11/07/2013
[9021262.902126]   8802c01f7cd8 81544a67
8802c01f7d28
[9021262.909644]  0009 8802c01f7d18 81069285
8802c01f7cf8
[9021262.917232]  812b247f 8802f4644c98 88080c337c98
8802f4644ca0
[9021262.924741] Call Trace:
[9021262.927326]  [] dump_stack+0x4d/0x63
[9021262.932749]  [] warn_slowpath_common+0xa1/0xbb
[9021262.938889]  [] ? __list_del_entry+0x5a/0x98
[9021262.944990]  [] warn_slowpath_fmt+0x46/0x48
[9021262.950802]  [] __list_del_entry+0x5a/0x98
[9021262.956638]  [] move_linked_works+0x35/0x65
[9021262.962632]  [] pwq_activate_delayed_work+0x31/0x3f
[9021262.969234]  [] pwq_dec_nr_in_flight+0x45/0x8c
[9021262.975411]  [] process_one_work+0x284/0x2d1
[9021262.981408]  [] worker_thread+0x1dd/0x2bb
[9021262.987079]  [] ? cancel_delayed_work+0x72/0x72
[9021262.993394]  [] ? cancel_delayed_work+0x72/0x72
[9021262.999685]  [] kthread+0xa5/0xad
[9021263.004678]  [] ? __kthread_parkme+0x61/0x61
[9021263.010655]  [] ret_from_fork+0x42/0x70
[9021263.016305]  [] ? __kthread_parkme+0x61/0x61
[9021263.022236] ---[ end trace 62dde64b253c2f87 ]---


Unfortunately I have no idea how this was triggered since it happened
on one of thousands in the cluster.

Is there anything I can help to debug this?

Thanks!


Re: bad page state due to PF_ALG socket

2015-12-21 Thread Cong Wang
On Thu, Dec 17, 2015 at 4:58 AM, Dmitry Vyukov  wrote:
> kasan: GPF could be caused by NULL-ptr deref or user memory access
> general protection fault:  [#1] SMP KASAN
> Modules linked in:
> CPU: 3 PID: 7168 Comm: a.out Tainted: GB   4.4.0-rc3+ #151
> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
> task: 88003712ad00 ti: 8800331d8000 task.ti: 8800331d8000
> RIP: 0010:[]  []
> skcipher_recvmsg+0x82/0x1f10
> RSP: 0018:8800331dfb80  EFLAGS: 00010203
> RAX: dc00 RBX: 88006b98f300 RCX: 00010040
> RDX: 0002 RSI: 8800331dfdc0 RDI: 0016
> RBP: 8800331dfc80 R08: 8800331dfdd0 R09: 000a
> R10: 00010040 R11: 0246 R12: 0006
> R13: 8800331dfdc0 R14: 8800331dfdc0 R15: 00010040
> FS:  02630880(0063) GS:88006cf0() knlGS:
> CS:  0010 DS:  ES:  CR0: 8005003b
> CR2: 00c8200d73b0 CR3: 64c58000 CR4: 06e0
> Stack:
>  88006aba6024 88006ab24520 88006ab24510 88006aba67e0
>  88006aba602c ed000d574cfc  88006ab24518
>  88006aba602d 1000 88006ab24500 88006aba6a48
> Call Trace:
>  [< inline >] sock_recvmsg_nosec net/socket.c:712
>  [] sock_recvmsg+0xaa/0xe0 net/socket.c:720
>  [] SYSC_recvfrom+0x1e4/0x370 net/socket.c:1707
>  [] SyS_recvfrom+0x40/0x50 net/socket.c:1681
>  [] entry_SYSCALL_64_fastpath+0x16/0x7a
> arch/x86/entry/entry_64.S:185

I think it is probably fixed by:

commit 130ed5d105dde141e7fe60d5440aa53e0a84f13b
Author: tadeusz.st...@intel.com 
Date:   Tue Dec 15 10:46:17 2015 -0800

net: fix uninitialized variable issue
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 12/60] crypto: remove the second argument of k[un]map_atomic()

2012-02-09 Thread Cong Wang
Signed-off-by: Cong Wang amw...@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.7.6

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


[PATCH 08/60] x86: remove the second argument of k[un]map_atomic()

2012-02-09 Thread Cong Wang
Acked-by: Avi Kivity a...@redhat.com
Acked-by: Herbert Xu herb...@gondor.apana.org.au
Signed-off-by: Cong Wang amw...@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 cfdc6e0..31bfc69 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1283,9 +1283,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

[PATCH 09/62] crypto: remove the second argument of k[un]map_atomic()

2011-11-26 Thread Cong Wang

Signed-off-by: Cong Wang amw...@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

[PATCH 08/62] x86: remove the second argument of k[un]map_atomic()

2011-11-26 Thread Cong Wang

Signed-off-by: Cong Wang amw...@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

[PATCH 12/62] crypto: remove the second argument of k[un]map_atomic()

2011-11-26 Thread Cong Wang

Signed-off-by: Cong Wang amw...@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

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