All of lore.kernel.org
 help / color / mirror / Atom feed
From: Parav Pandit <parav@mellanox.com>
To: kvm@vger.kernel.org, wankhede@nvidia.com, linux-kernel@vger.kernel.org
Cc: parav@mellanox.com, alex.williamson@redhat.com,
	cohuck@redhat.com, cjia@nvidia.com
Subject: [PATCH v1 1/2] vfio-mdev/mtty: Simplify interrupt generation
Date: Tue,  6 Aug 2019 09:18:25 -0500	[thread overview]
Message-ID: <20190806141826.52712-2-parav@mellanox.com> (raw)
In-Reply-To: <20190806141826.52712-1-parav@mellanox.com>

While generating interrupt, mdev_state is already available for which
interrupt is generated.
Instead of doing indirect way from state->device->uuid-> to searching
state linearly in linked list on every interrupt generation,
directly use the available state.

Hence, simplify the code to use mdev_state and remove unused helper
function with that.

Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
---
 samples/vfio-mdev/mtty.c | 39 ++++++++-------------------------------
 1 file changed, 8 insertions(+), 31 deletions(-)

diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c
index 92e770a06ea2..ce84a300a4da 100644
--- a/samples/vfio-mdev/mtty.c
+++ b/samples/vfio-mdev/mtty.c
@@ -152,20 +152,9 @@ static const struct file_operations vd_fops = {
 
 /* function prototypes */
 
-static int mtty_trigger_interrupt(const guid_t *uuid);
+static int mtty_trigger_interrupt(struct mdev_state *mdev_state);
 
 /* Helper functions */
-static struct mdev_state *find_mdev_state_by_uuid(const guid_t *uuid)
-{
-	struct mdev_state *mds;
-
-	list_for_each_entry(mds, &mdev_devices_list, next) {
-		if (guid_equal(mdev_uuid(mds->mdev), uuid))
-			return mds;
-	}
-
-	return NULL;
-}
 
 static void dump_buffer(u8 *buf, uint32_t count)
 {
@@ -337,8 +326,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state,
 				pr_err("Serial port %d: Fifo level trigger\n",
 					index);
 #endif
-				mtty_trigger_interrupt(
-						mdev_uuid(mdev_state->mdev));
+				mtty_trigger_interrupt(mdev_state);
 			}
 		} else {
 #if defined(DEBUG_INTR)
@@ -352,8 +340,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state,
 			 */
 			if (mdev_state->s[index].uart_reg[UART_IER] &
 								UART_IER_RLSI)
-				mtty_trigger_interrupt(
-						mdev_uuid(mdev_state->mdev));
+				mtty_trigger_interrupt(mdev_state);
 		}
 		mutex_unlock(&mdev_state->rxtx_lock);
 		break;
@@ -372,8 +359,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state,
 				pr_err("Serial port %d: IER_THRI write\n",
 					index);
 #endif
-				mtty_trigger_interrupt(
-						mdev_uuid(mdev_state->mdev));
+				mtty_trigger_interrupt(mdev_state);
 			}
 
 			mutex_unlock(&mdev_state->rxtx_lock);
@@ -444,7 +430,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state,
 #if defined(DEBUG_INTR)
 			pr_err("Serial port %d: MCR_OUT2 write\n", index);
 #endif
-			mtty_trigger_interrupt(mdev_uuid(mdev_state->mdev));
+			mtty_trigger_interrupt(mdev_state);
 		}
 
 		if ((mdev_state->s[index].uart_reg[UART_IER] & UART_IER_MSI) &&
@@ -452,7 +438,7 @@ static void handle_bar_write(unsigned int index, struct mdev_state *mdev_state,
 #if defined(DEBUG_INTR)
 			pr_err("Serial port %d: MCR RTS/DTR write\n", index);
 #endif
-			mtty_trigger_interrupt(mdev_uuid(mdev_state->mdev));
+			mtty_trigger_interrupt(mdev_state);
 		}
 		break;
 
@@ -503,8 +489,7 @@ static void handle_bar_read(unsigned int index, struct mdev_state *mdev_state,
 #endif
 			if (mdev_state->s[index].uart_reg[UART_IER] &
 							 UART_IER_THRI)
-				mtty_trigger_interrupt(
-					mdev_uuid(mdev_state->mdev));
+				mtty_trigger_interrupt(mdev_state);
 		}
 		mutex_unlock(&mdev_state->rxtx_lock);
 
@@ -1028,17 +1013,9 @@ static int mtty_set_irqs(struct mdev_device *mdev, uint32_t flags,
 	return ret;
 }
 
-static int mtty_trigger_interrupt(const guid_t *uuid)
+static int mtty_trigger_interrupt(struct mdev_state *mdev_state)
 {
 	int ret = -1;
-	struct mdev_state *mdev_state;
-
-	mdev_state = find_mdev_state_by_uuid(uuid);
-
-	if (!mdev_state) {
-		pr_info("%s: mdev not found\n", __func__);
-		return -EINVAL;
-	}
 
 	if ((mdev_state->irq_index == VFIO_PCI_MSI_IRQ_INDEX) &&
 	    (!mdev_state->msi_evtfd))
-- 
2.21.0.777.g83232e3864


  reply	other threads:[~2019-08-06 14:18 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-02  6:59 [PATCH 0/2] Simplify mtty driver and mdev core Parav Pandit
2019-08-02  6:59 ` [PATCH 1/2] vfio-mdev/mtty: Simplify interrupt generation Parav Pandit
2019-08-06  8:15   ` Cornelia Huck
2019-08-02  6:59 ` [PATCH 2/2] vfio/mdev: Removed unused and redundant API for mdev name Parav Pandit
2019-08-06  8:29   ` Cornelia Huck
2019-08-06 13:12     ` Parav Pandit
2019-08-06 14:18 ` [PATCH v1 0/2] Simplify mtty driver and mdev core Parav Pandit
2019-08-06 14:18   ` Parav Pandit [this message]
2019-08-06 14:18   ` [PATCH v1 2/2] vfio/mdev: Removed unused and redundant API for mdev UUID Parav Pandit
2019-08-07  9:28     ` Cornelia Huck
2019-08-07 16:33       ` Parav Pandit
2019-08-08  8:29         ` Cornelia Huck
2019-08-08 14:01           ` Parav Pandit
2019-08-08 14:12 ` [PATCH v2 0/2] Simplify mtty driver and mdev core Parav Pandit
2019-08-08 14:12   ` [PATCH v2 1/2] vfio-mdev/mtty: Simplify interrupt generation Parav Pandit
2019-08-13 16:39     ` Christoph Hellwig
2019-08-23 20:48     ` Alex Williamson
2019-08-08 14:12   ` [PATCH v2 2/2] vfio/mdev: Removed unused and redundant API for mdev UUID Parav Pandit
2019-08-13 16:39     ` Christoph Hellwig
2019-08-16 15:22     ` Cornelia Huck
2019-08-08 23:02   ` [PATCH v2 0/2] Simplify mtty driver and mdev core Alex Williamson
2019-08-09  8:07     ` Cornelia Huck
2019-08-12 11:35     ` Kirti Wankhede
2019-08-13 14:40       ` Parav Pandit
2019-08-13 14:52         ` Alex Williamson
2019-08-13 16:28           ` Parav Pandit
2019-08-13 16:34             ` Cornelia Huck
2019-08-13 17:11             ` Alex Williamson
2019-08-14  5:54               ` Parav Pandit
2019-08-14  8:01                 ` Cornelia Huck
2019-08-14 12:27                   ` Parav Pandit
2019-08-14 13:09                     ` Cornelia Huck
2019-08-14 13:45                       ` Parav Pandit
2019-08-14 14:57                         ` Alex Williamson
2019-08-14 16:21                           ` Parav Pandit
2019-08-20  8:58                             ` Parav Pandit
2019-08-20  9:58                               ` Christophe de Dinechin
2019-08-20 11:25                                 ` Parav Pandit
2019-08-20 16:31                                   ` Cornelia Huck
2019-08-21  2:42                                     ` Parav Pandit
2019-08-20 17:19                               ` Alex Williamson
2019-08-20 17:55                                 ` Cornelia Huck
2019-08-21  3:57                                   ` Parav Pandit
2019-08-21  3:42                                 ` Parav Pandit
2019-08-21  4:20                                   ` Alex Williamson
2019-08-21  4:40                                     ` Parav Pandit
2019-08-21  4:57                                       ` Alex Williamson
2019-08-21  5:01                                         ` Parav Pandit
2019-08-21  5:26                                           ` Alex Williamson
2019-08-21  6:23                                             ` Parav Pandit
2019-08-22  9:29                                               ` Jiri Pirko
2019-08-22  9:42                                                 ` Parav Pandit
2019-08-22  9:58                                                   ` Jiri Pirko
2019-08-22 10:04                                                     ` Parav Pandit
2019-08-22 12:19                                                       ` Jiri Pirko
2019-08-22 13:33                                                         ` Parav Pandit
2019-08-23  8:12                                                           ` Jiri Pirko
2019-08-23  8:14                                                             ` Parav Pandit
2019-08-23 14:28                                                               ` Alex Williamson
2019-08-23 14:53                                                                 ` Parav Pandit
2019-08-23 15:04                                                                   ` Jiri Pirko
2019-08-23 15:52                                                                   ` Alex Williamson
2019-08-23 16:14                                                                     ` Parav Pandit
2019-08-23 17:16                                                                       ` Alex Williamson
2019-08-23 18:00                                                                         ` Parav Pandit
2019-08-23 19:43                                                                           ` Alex Williamson
2019-08-24  3:56                                                                             ` Parav Pandit
2019-08-24  4:45                                                                               ` Parav Pandit
2019-08-24  4:59                                                                               ` Alex Williamson
2019-08-24  5:22                                                                                 ` Parav Pandit
2019-08-13 16:37         ` Christoph Hellwig
2019-08-13 17:40           ` Greg Kroah-Hartman
2019-08-14  5:30             ` Parav Pandit
2019-08-13 14:48     ` Parav Pandit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190806141826.52712-2-parav@mellanox.com \
    --to=parav@mellanox.com \
    --cc=alex.williamson@redhat.com \
    --cc=cjia@nvidia.com \
    --cc=cohuck@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wankhede@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.