staging: vc04_services: Fix bulk cache maintenance
[sfrench/cifs-2.6.git] / lib / scatterlist.c
index 004fc70fc56a3d06947f9e89c60e40e272ce551c..c6cf82242d655d929a63e2a5d517510af6a657ad 100644 (file)
@@ -651,7 +651,6 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
 {
        unsigned int offset = 0;
        struct sg_mapping_iter miter;
-       unsigned long flags;
        unsigned int sg_flags = SG_MITER_ATOMIC;
 
        if (to_buffer)
@@ -664,9 +663,7 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
        if (!sg_miter_skip(&miter, skip))
                return false;
 
-       local_irq_save(flags);
-
-       while (sg_miter_next(&miter) && offset < buflen) {
+       while ((offset < buflen) && sg_miter_next(&miter)) {
                unsigned int len;
 
                len = min(miter.length, buflen - offset);
@@ -681,7 +678,6 @@ size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
 
        sg_miter_stop(&miter);
 
-       local_irq_restore(flags);
        return offset;
 }
 EXPORT_SYMBOL(sg_copy_buffer);