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

Commit 14a70046 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by John Stultz
Browse files

net: mlx5: Use ktime_get_ns()



This code is beyond silly:

     struct timespec ts = ktime_get_ts();
     ktime_t ktime = timespec_to_ktime(ts);

Further down the code builds the delta of two ktime_t values and
converts the result to nanoseconds.

Use ktime_get_ns() and replace all the nonsense.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: Eli Cohen <eli@mellanox.com>
Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
parent 6d9b757c
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -548,7 +548,7 @@ static void cmd_work_handler(struct work_struct *work)
	lay->status_own = CMD_OWNER_HW;
	set_signature(ent, !cmd->checksum_disabled);
	dump_command(dev, ent, 1);
	ktime_get_ts(&ent->ts1);
	ent->ts1 = ktime_get_ns();

	/* ring doorbell after the descriptor is valid */
	wmb();
@@ -637,7 +637,6 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *in,
{
	struct mlx5_cmd *cmd = &dev->cmd;
	struct mlx5_cmd_work_ent *ent;
	ktime_t t1, t2, delta;
	struct mlx5_cmd_stats *stats;
	int err = 0;
	s64 ds;
@@ -668,10 +667,7 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *in,
		if (err == -ETIMEDOUT)
			goto out;

		t1 = timespec_to_ktime(ent->ts1);
		t2 = timespec_to_ktime(ent->ts2);
		delta = ktime_sub(t2, t1);
		ds = ktime_to_ns(delta);
		ds = ent->ts2 - ent->ts1;
		op = be16_to_cpu(((struct mlx5_inbox_hdr *)in->first.data)->opcode);
		if (op < ARRAY_SIZE(cmd->stats)) {
			stats = &cmd->stats[op];
@@ -1135,7 +1131,6 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector)
	void *context;
	int err;
	int i;
	ktime_t t1, t2, delta;
	s64 ds;
	struct mlx5_cmd_stats *stats;
	unsigned long flags;
@@ -1149,7 +1144,7 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector)
				sem = &cmd->pages_sem;
			else
				sem = &cmd->sem;
			ktime_get_ts(&ent->ts2);
			ent->ts2 = ktime_get_ns();
			memcpy(ent->out->first.data, ent->lay->out, sizeof(ent->lay->out));
			dump_command(dev, ent, 0);
			if (!ent->ret) {
@@ -1163,10 +1158,7 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector)
			}
			free_ent(cmd, ent->idx);
			if (ent->callback) {
				t1 = timespec_to_ktime(ent->ts1);
				t2 = timespec_to_ktime(ent->ts2);
				delta = ktime_sub(t2, t1);
				ds = ktime_to_ns(delta);
				ds = ent->ts2 - ent->ts1;
				if (ent->op < ARRAY_SIZE(cmd->stats)) {
					stats = &cmd->stats[ent->op];
					spin_lock_irqsave(&stats->lock, flags);
+2 −2
Original line number Diff line number Diff line
@@ -604,8 +604,8 @@ struct mlx5_cmd_work_ent {
	int			page_queue;
	u8			status;
	u8			token;
	struct timespec		ts1;
	struct timespec		ts2;
	u64			ts1;
	u64			ts2;
	u16			op;
};