aboutsummaryrefslogtreecommitdiffstats
path: root/lib/scatterlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/scatterlist.c')
-rw-r--r--lib/scatterlist.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 004fc70fc56a..c6cf82242d65 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -651,7 +651,6 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
651{ 651{
652 unsigned int offset = 0; 652 unsigned int offset = 0;
653 struct sg_mapping_iter miter; 653 struct sg_mapping_iter miter;
654 unsigned long flags;
655 unsigned int sg_flags = SG_MITER_ATOMIC; 654 unsigned int sg_flags = SG_MITER_ATOMIC;
656 655
657 if (to_buffer) 656 if (to_buffer)
@@ -664,9 +663,7 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
664 if (!sg_miter_skip(&miter, skip)) 663 if (!sg_miter_skip(&miter, skip))
665 return false; 664 return false;
666 665
667 local_irq_save(flags); 666 while ((offset < buflen) && sg_miter_next(&miter)) {
668
669 while (sg_miter_next(&miter) && offset < buflen) {
670 unsigned int len; 667 unsigned int len;
671 668
672 len = min(miter.length, buflen - offset); 669 len = min(miter.length, buflen - offset);
@@ -681,7 +678,6 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
681 678
682 sg_miter_stop(&miter); 679 sg_miter_stop(&miter);
683 680
684 local_irq_restore(flags);
685 return offset; 681 return offset;
686} 682}
687EXPORT_SYMBOL(sg_copy_buffer); 683EXPORT_SYMBOL(sg_copy_buffer);