Lines Matching refs:req
597 struct mtd_write_req req;
603 if (copy_from_user(&req, argp, sizeof(req)))
606 usr_data = (const void __user *)(uintptr_t)req.usr_data;
607 usr_oob = (const void __user *)(uintptr_t)req.usr_oob;
613 req.len = 0;
616 req.ooblen = 0;
618 req.len &= 0xffffffff;
619 req.ooblen &= 0xffffffff;
621 if (req.start + req.len > mtd->size)
624 datbuf_len = min_t(size_t, req.len, mtd->erasesize);
631 oobbuf_len = min_t(size_t, req.ooblen, mtd->erasesize);
640 while (req.len > 0 || (!usr_data && req.ooblen > 0)) {
642 .mode = req.mode,
643 .len = min_t(size_t, req.len, datbuf_len),
644 .ooblen = min_t(size_t, req.ooblen, oobbuf_len),
656 ops.len -= mtd_mod_by_ws(req.start + ops.len, mtd);
665 adjust_oob_length(mtd, req.start, &ops);
673 ret = mtd_write_oob(mtd, req.start, &ops);
677 req.start += ops.retlen;
678 req.len -= ops.retlen;
681 req.ooblen -= ops.oobretlen;
695 struct mtd_read_req req;
702 if (copy_from_user(&req, argp, sizeof(req)))
705 orig_len = req.len;
706 orig_ooblen = req.ooblen;
708 usr_data = (void __user *)(uintptr_t)req.usr_data;
709 usr_oob = (void __user *)(uintptr_t)req.usr_oob;
715 req.len = 0;
718 req.ooblen = 0;
720 req.ecc_stats.uncorrectable_errors = 0;
721 req.ecc_stats.corrected_bitflips = 0;
722 req.ecc_stats.max_bitflips = 0;
724 req.len &= 0xffffffff;
725 req.ooblen &= 0xffffffff;
727 if (req.start + req.len > mtd->size) {
732 datbuf_len = min_t(size_t, req.len, mtd->erasesize);
741 oobbuf_len = min_t(size_t, req.ooblen, mtd->erasesize);
750 while (req.len > 0 || (!usr_data && req.ooblen > 0)) {
753 .mode = req.mode,
754 .len = min_t(size_t, req.len, datbuf_len),
755 .ooblen = min_t(size_t, req.ooblen, oobbuf_len),
769 ops.len -= mtd_mod_by_ws(req.start + ops.len, mtd);
771 ret = mtd_read_oob(mtd, (loff_t)req.start, &ops);
773 req.ecc_stats.uncorrectable_errors +=
775 req.ecc_stats.corrected_bitflips += stats.corrected_bitflips;
776 req.ecc_stats.max_bitflips =
777 max(req.ecc_stats.max_bitflips, stats.max_bitflips);
788 req.start += ops.retlen;
789 req.len -= ops.retlen;
792 req.ooblen -= ops.oobretlen;
803 if (req.ecc_stats.uncorrectable_errors > 0)
805 else if (req.ecc_stats.corrected_bitflips > 0)
810 req.len = orig_len - req.len;
811 req.ooblen = orig_ooblen - req.ooblen;
813 if (copy_to_user(argp, &req, sizeof(req)))