Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 758b46f0 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "block: Expose IOCTL to get partition start sector number""

parents de9cef6b bd50050a
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -564,8 +564,6 @@ int blkdev_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
		if ((size >> 9) > ~0UL)
			return -EFBIG;
		return put_ulong(arg, size >> 9);
	case BLKGETSTPART:
		return put_ulong(arg, bdev->bd_part->start_sect);
	case BLKGETSIZE64:
		return put_u64(arg, i_size_read(bdev->bd_inode));
	case BLKTRACESTART:
+35 −43
Original line number Diff line number Diff line
@@ -77,6 +77,8 @@ static inline void pfk_clear_on_reset(void)
#define QCOM_ICE_ENCRYPT	0x1
#define QCOM_ICE_DECRYPT	0x2
#define QCOM_SECT_LEN_IN_BYTE	512
#define QCOM_UD_FOOTER_SIZE	0x4000
#define QCOM_UD_FOOTER_SECS	(QCOM_UD_FOOTER_SIZE / QCOM_SECT_LEN_IN_BYTE)

struct ice_clk_info {
	struct list_head list;
@@ -127,8 +129,6 @@ struct ice_device {
};

static int ice_fde_flag;
static unsigned long userdata_start;
static unsigned long userdata_end;
static struct ice_crypto_setting ice_data;

static int qti_ice_setting_config(struct request *req,
@@ -160,17 +160,21 @@ static int qti_ice_setting_config(struct request *req,
		memcpy(&setting->crypto_data, crypto_data,
				sizeof(setting->crypto_data));

		if (rq_data_dir(req) == WRITE &&
				(ice_fde_flag & QCOM_ICE_ENCRYPT))
		switch (rq_data_dir(req)) {
		case WRITE:
			if (!ice_fde_flag || (ice_fde_flag & QCOM_ICE_ENCRYPT))
				setting->encr_bypass = false;
		else if (rq_data_dir(req) == READ &&
				(ice_fde_flag & QCOM_ICE_DECRYPT))
			break;
		case READ:
			if (!ice_fde_flag || (ice_fde_flag & QCOM_ICE_DECRYPT))
				setting->decr_bypass = false;
		else {
			break;
		default:
			/* Should I say BUG_ON */
			setting->encr_bypass = true;
			setting->decr_bypass = true;
			pr_debug("%s direction unknown", __func__);
			pr_debug("%s(): direction unknown\n", __func__);
			break;
		}
	}

@@ -184,26 +188,6 @@ void qcom_ice_set_fde_flag(int flag)
}
EXPORT_SYMBOL(qcom_ice_set_fde_flag);

int qcom_ice_set_fde_conf(sector_t s_sector, sector_t size,
					int index, int mode)
{
	userdata_start = s_sector;
	userdata_end = s_sector + size;
	if (INT_MAX - s_sector < size) {
		WARN_ON(1);
		return -EINVAL;
	}
	ice_data.key_index = index;
	ice_data.algo_mode = mode;
	ice_data.key_size = ICE_CRYPTO_KEY_SIZE_256;
	ice_data.key_mode = ICE_CRYPTO_USE_LUT_SW_KEY;

	pr_debug("%s sector info set start %lu end %lu\n", __func__,
		userdata_start, userdata_end);
	return 0;
}
EXPORT_SYMBOL(qcom_ice_set_fde_conf);

static int qcom_ice_enable_clocks(struct ice_device *, bool);

#ifdef CONFIG_MSM_BUS_SCALING
@@ -1490,6 +1474,7 @@ static int qcom_ice_config_start(struct platform_device *pdev,
	int ret = 0;
	bool is_pfe = false;
	sector_t data_size;
	unsigned long sec_end = 0;

	if (!pdev || !req) {
		pr_err("%s: Invalid params passed\n", __func__);
@@ -1528,20 +1513,27 @@ static int qcom_ice_config_start(struct platform_device *pdev,
	if (ice_fde_flag == 0)
		return 0;

	if ((req->__sector >= userdata_start) &&
			(req->__sector < userdata_end)) {
	if (req->part && req->part->info && req->part->info->volname[0]) {
		if (!strcmp(req->part->info->volname, "userdata")) {
			sec_end = req->part->start_sect + req->part->nr_sects -
					QCOM_UD_FOOTER_SECS;
			if ((req->__sector >= req->part->start_sect) &&
				(req->__sector < sec_end)) {
				/*
	 * Ugly hack to address non-block-size aligned userdata end address in
	 * eMMC based devices.
				 * Ugly hack to address non-block-size aligned
				 * userdata end address in eMMC based devices.
				 */
		data_size = req->__data_len/QCOM_SECT_LEN_IN_BYTE;
				data_size = req->__data_len /
						QCOM_SECT_LEN_IN_BYTE;

		if ((req->__sector + data_size) > userdata_end)
				if ((req->__sector + data_size) > sec_end)
					return 0;
				else
					return qti_ice_setting_config(req, pdev,
						&ice_data, setting);
			}
		}
	}

	/*
	 * It is not an error. If target is not req-crypt based, all request
+0 −13
Original line number Diff line number Diff line
@@ -6979,19 +6979,6 @@ static inline long qseecom_ioctl(struct file *file,
		break;
	}

	case QSEECOM_IOCTL_SET_ENCDEC_INFO: {
		struct qseecom_encdec_conf_t conf;

		ret = copy_from_user(&conf, argp, sizeof(conf));
		if (ret) {
			pr_err("copy_from_user failed\n");
			return -EFAULT;
		}
		ret = qcom_ice_set_fde_conf(conf.start_sector, conf.fs_size,
					conf.index, conf.mode);
		break;
	}

	case QSEECOM_IOCTL_UNREGISTER_LISTENER_REQ: {
		if ((data->listener.id == 0) ||
			(data->type != QSEECOM_LISTENER_SERVICE)) {
+0 −1
Original line number Diff line number Diff line
@@ -226,7 +226,6 @@ struct fsxattr {
#define BLKSECDISCARD _IO(0x12,125)
#define BLKROTATIONAL _IO(0x12,126)
#define BLKZEROOUT _IO(0x12,127)
#define BLKGETSTPART _IO(0x12, 128)

#define BMAP_IOCTL 1		/* obsolete - kept for compatibility */
#define FIBMAP	   _IO(0x00,1)	/* bmap access */
+0 −10
Original line number Diff line number Diff line
@@ -281,13 +281,6 @@ struct qseecom_ice_data_t {
	int flag;
};

struct qseecom_encdec_conf_t {
	__le64 start_sector;
	size_t fs_size;
	int index;
	int mode;
};

#define SG_ENTRY_SZ		sizeof(struct qseecom_sg_entry)
#define SG_ENTRY_SZ_64BIT	sizeof(struct qseecom_sg_entry_64bit)

@@ -399,7 +392,4 @@ struct file;
#define QSEECOM_IOCTL_SET_ICE_INFO \
	_IOWR(QSEECOM_IOC_MAGIC, 43, struct qseecom_ice_data_t)

#define QSEECOM_IOCTL_SET_ENCDEC_INFO \
	_IOWR(QSEECOM_IOC_MAGIC, 44, struct qseecom_encdec_conf_t)

#endif /* _UAPI_QSEECOM_H_ */