cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

writev.c (1103B)


      1/*
      2 * JFFS2 -- Journalling Flash File System, Version 2.
      3 *
      4 * Copyright © 2001-2007 Red Hat, Inc.
      5 *
      6 * Created by David Woodhouse <dwmw2@infradead.org>
      7 *
      8 * For licensing information, see the file 'LICENCE' in this directory.
      9 *
     10 */
     11
     12#include <linux/kernel.h>
     13#include <linux/mtd/mtd.h>
     14#include "nodelist.h"
     15
     16int jffs2_flash_direct_writev(struct jffs2_sb_info *c, const struct kvec *vecs,
     17			      unsigned long count, loff_t to, size_t *retlen)
     18{
     19	if (!jffs2_is_writebuffered(c)) {
     20		if (jffs2_sum_active()) {
     21			int res;
     22			res = jffs2_sum_add_kvec(c, vecs, count, (uint32_t) to);
     23			if (res) {
     24				return res;
     25			}
     26		}
     27	}
     28
     29	return mtd_writev(c->mtd, vecs, count, to, retlen);
     30}
     31
     32int jffs2_flash_direct_write(struct jffs2_sb_info *c, loff_t ofs, size_t len,
     33			size_t *retlen, const u_char *buf)
     34{
     35	int ret;
     36	ret = mtd_write(c->mtd, ofs, len, retlen, buf);
     37
     38	if (jffs2_sum_active()) {
     39		struct kvec vecs[1];
     40		int res;
     41
     42		vecs[0].iov_base = (unsigned char *) buf;
     43		vecs[0].iov_len = len;
     44
     45		res = jffs2_sum_add_kvec(c, vecs, 1, (uint32_t) ofs);
     46		if (res) {
     47			return res;
     48		}
     49	}
     50	return ret;
     51}