get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/45317/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 45317,
    "url": "https://patches.dpdk.org/api/patches/45317/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180925125423.7505-6-shreyansh.jain@nxp.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20180925125423.7505-6-shreyansh.jain@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180925125423.7505-6-shreyansh.jain@nxp.com",
    "date": "2018-09-25T12:54:23",
    "name": "[5/5] fslmc: enable dpaax library",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "42d274f4e270122138565324cae9b28fc3237aa6",
    "submitter": {
        "id": 497,
        "url": "https://patches.dpdk.org/api/people/497/?format=api",
        "name": "Shreyansh Jain",
        "email": "shreyansh.jain@nxp.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20180925125423.7505-6-shreyansh.jain@nxp.com/mbox/",
    "series": [
        {
            "id": 1492,
            "url": "https://patches.dpdk.org/api/series/1492/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1492",
            "date": "2018-09-25T12:54:18",
            "name": "Add a PA-VA Translation table for DPAAx",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/1492/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/45317/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/45317/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1F13A1B17D;\n\tTue, 25 Sep 2018 14:55:33 +0200 (CEST)",
            "from EUR04-HE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr70071.outbound.protection.outlook.com [40.107.7.71])\n\tby dpdk.org (Postfix) with ESMTP id 5C7E71B17A\n\tfor <dev@dpdk.org>; Tue, 25 Sep 2018 14:55:31 +0200 (CEST)",
            "from Tophie.ap.freescale.net (14.142.187.166) by\n\tAM0PR04MB4676.eurprd04.prod.outlook.com (2603:10a6:208:75::18) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1143.18; Tue, 25 Sep 2018 12:55:27 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=T0unqp9AS5YGSq9jjLcz1Fl7sLVTvLaqfAJOy+s9oe4=;\n\tb=hRpO5FWm+614QB1E1Fi+z9sVHe0I6+KMIMVkVO6wyFORns5kJWZTfVefqMGrvU1j3NHh8Kzw9wNgQ0prVK8yUTAXILvRB4122pbJCv1alHVPqXn4Fss2IB+bQ5QfLThKOmeTYEVkLaC+aVjn+d5YED/bwk/ALu1J2IswhOI14Ho=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=shreyansh.jain@nxp.com; ",
        "From": "Shreyansh Jain <shreyansh.jain@nxp.com>",
        "To": "ferruh.yigit@intel.com",
        "Cc": "dev@dpdk.org, anatoly.burakov@intel.com,\n\tShreyansh Jain <shreyansh.jain@nxp.com>",
        "Date": "Tue, 25 Sep 2018 18:24:23 +0530",
        "Message-Id": "<20180925125423.7505-6-shreyansh.jain@nxp.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20180925125423.7505-1-shreyansh.jain@nxp.com>",
        "References": "<20180925125423.7505-1-shreyansh.jain@nxp.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.142.187.166]",
        "X-ClientProxiedBy": "TYAPR01CA0123.jpnprd01.prod.outlook.com\n\t(2603:1096:404:2d::15) To AM0PR04MB4676.eurprd04.prod.outlook.com\n\t(2603:10a6:208:75::18)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "eaac4bfe-cecb-46b5-8f93-08d622e62c1d",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:AM0PR04MB4676; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; AM0PR04MB4676;\n\t3:6rGVPPmEVWmZ/+o+u+4mxQWyaqPRcQ38lAyDeYyV78LDKMbtLOC8hheH5l6LUkfOKcPNZQ+eUY3TLow9w8sXmeXx7xXL0xWVmRmbxN8LagkE1fu6DVZ+/dEjozcS9u+NR/lGLAix0iwCFDyfK+XH+IZNtDNjFqAzu3oGhbReKH6ZW9RvLZvD9tmDsOiUhdy5BmJB1rKzzIWPTeH7Mz+LAKbDvVu1BJVpBeO79JB5LO1IfAqiXvC94yZ0fWqybzmP;\n\t25:Qcpn0pP/TZ2FQAtutgK4aEG82IcCJeX6cCeWZu8Kwgv2bxwkPyR8Enm1efYXhOR8gj0bYmG98dqFanTOxpMk8UWfdCxGNLRELm91X32x1A3bMo2jy0qttRifiD7qwh3CDBeBMyIbPIObRJ1qOFoSbZoW0HqLvAiOfEG1AP3XPy8ctK3bDDYBipfvvSFCHyrtkSGugjzbsqT51xpcAHPWYlYibCvEESFxzSRVZ9wqFIpbKyoYvkpXZziImsGNOiEsfS5B0Oigw/iEnepQzTPoFmpv2W//hciRrp2OlrBoqWvOMxF7EYMyZ2GWP61+6IucVFZTJzHEyJdxWOkBIRe9pA==;\n\t31:t1PlgseKVdZSHePQHMEvhcFtdbQvKN1pxQmHGaPLSOx1wqe70yKyYRGEOPbZglSVUOsSJXDYa01Npj5toRnIjY9cJxDsrCRxnVYIl3toPB0hm5DnTASd8qjpdMsJpNHfTehmiqeGTKmQX+ChDXdEjgOW88sSMliJ7soaGIOCnpiyaOWRWlKNUI74H9jxDiHy1qNtsCdhLEjRMon6UjsEc/wf9zSWmDjeldf1VSjShEk=",
            "1; AM0PR04MB4676;\n\t20:N/YRnOWIut9BIthYL4jp3WL4KT6T7hz7aerwoa1k77ooXNgaIwyNUmJjsFiJUT/JrqIPS5ktot2xGvWT//3Xj/io1fYXzNjAA/YAd3OqTlRXX91BkY8mmTr7OPWGNSAPG1zbl8OE2jSvhIxp0X+MyDucpIaeWBrE+kTLKIPHz+VGUIOMoM+rPjirF7wjCS3SeFR16kM9h/cjzs0qJODbzV2bZq5Hs1DwDjK+VZNBaqHlCA4eE4vc9RFPhg8I3cUr+f1KpJXfUMvrNU18ef6kOUrp07R9k+kOftVCK/o6rh3RVXqNY4kOXVZedBh0g16VUqPnDHrrNQYhFdfV4vAh5B7WzPtOse6qDGzIQF4BoQquy/IuX9mjORvpcgwyPDvSpHP5PgI1bPyrGWMGpgxwAaFGosvR4TtQkcfAsK06zxXxn2GP4boYgi/i/MS2U1FZem9ytxnJX5VY887msS1wT0nycaMluTeaOjP5ZMe2W1V/7tfU+wJu37FvpoPIlo1F;\n\t4:eRSdrV+qOm+kxMpE+Uj518KRl4yfJ9rep6Ck3tYoAXjeD/FhMvBG+Lb/Fx1IHqD0cPN+whBdbel2YqGiijl+L6iFFhB4uMEWFNKAWMyKitUZRjujAFHlh23Ybp68GK5IuW7VPiDzLETfSDns16sw4jycF73N45ak60N8VLBwRre3uy6+jvF1Y8AdLO9DyPJQvIHBwwP6Fda33kKU7mDxiHjMw9CKwzNOIFKTd0uDgzqMRuHz8n1H50BMO4k3gE+XJD8XZovQjiBm91JIkCTYhZ+9Y8Y7IrbV3A09h307XQJGtOSpki4xKXPe+bi/jL3f9oRKcaBzbI8cqwJcwloZnXd/QNn/nk66nodJGESrWCM=",
            "=?us-ascii?Q?1; AM0PR04MB4676;\n\t23:/tINcOz3hZX6Bj9MSNAopIe33itNvtut3OO+UZIxJ?=\n\tCQaBKkPoAxAexI9VhdMmC+QYVKYKXx/xbkbmWyqQDj15KyEb/4B6M2edsmuxNPiBTlVxKhju0lF7vjXNdpWLsMuKVh+gZnpFlgi+h5BKLPmqOCWlvvj9iZAvAmdwISi+18LTVsUqjzoKiu2CQ0HiDGQkJUQissXnbzD8yUeh8i/cAd8A6/ryTx0tVw/O4GPV5ASwPjuqBnmr9eOplM21bG+fWx5JH95IrQORMnTXNgrJ42qoW3vw9aOrJspCVhugTv6IKpcpHKFM+73k6qd+zr+9MIcPsSVvh5RBM1rB94686nWwJsnKU+GWKK9HZ5MP8xUtzMLmTZv3hQ6A2KIlJ4roPB4tzLSGs5ELCivaYWZUWQsipMGWEZF4b6ZZZXjKtl7RpNfpi1SuNBGgGSQOF3PaJ7uhpepoI3TPb0LYK6oaWeBvCVIPWgWs9o8qnBnPRIOKjFzM4rmKdKubKFL0WDlj16Hj40XS55KWtX4qcF3ppvyXN6/JrG2CfdnDcaLSIqygM97IYjw2eo4JSFMB3Y7igeaWVt/IBjFkM75mM4PYE5KOGTs/Xq39IXJcjRF3xbI6TjVBt1tQwlpa2npQygGEc/LRDxIUjIGQ1mMtS4EYcJjteEX0dCFEdO3GvUeW3m66i7AMp595hNHmpSX4BKMNlvKGziBUxIICsGfr2ZHAcdibVmavYCXk2oFuCCXkbUoED4MtIydsnIEYfQafajU4t0Vz18hshIlggLOkoYDSjuozyS9OwvrmX4TxEpYiW5LF+w1fS7nu0DAsk2lyVgzEsrCfQjDYCG+rsTCqFEgaB1EYWItfRkJK62Hsbavxe3pQ93A2QQ5oXpeB8W9ZIaukz2fYh3nY31X5oE0ZaPhIlH46WDs410Mur80iUXHyJb2gHd9v2NkUoOgVconZDvg3C27MndfptwBipagZ4Z2Mswm29uERzWSlQYlBm2fHN7nLpEqFFV5EM5gpPQmSvxeNuuhAKZN0r8RPPvnRSFR9ZgymsN2mEXAWnAP2WNeGxHVLy1JwL9pcv2/nksUazCnr/lcB/UZACEf1scJviBOqF1XdeGpGcy/xM/QE5XGvyKX7p15+0S2DbJICnOZ6OrH5RgVxNnoSfwDnlvI0unkI8J7sFSU1NKjw/5q9tLGCrVLLeDa9UPoWcTtVaqwTkX1vpLC2H2K9GGWKxXqNXejqVYZw2YvbacjHkDSkYf2WcQpH148YdwWxCtbY88mxN3C1wqqKb8kiZbW0dTVZy/EzCig2uoFJr+IQw0JsD9wFmtyKs5QGcjMjNOiXH34Fk24x4J8ndiQtbN9O+rwUejvbVWlvr5/w8q+RXE0t8h7LoI=",
            "1; AM0PR04MB4676;\n\t6:LDnBR3x85Ey8eHgTCDrnN6kV1Q6V3x2EZmV3wKxZrjEY+E2t9LFlHWGBLZKBmkKaKxlqMNglhZpTkhbjIH0jyD2Q5z4N5IIPZLPFSc0FiAliue7mdQkauAbnzUVcyHoPKpKULaHMHVkVTb/k5BSX9jv4uNT+hZ+ELIbAgh8YLK0kNSBebQUm/9OFTwbvwy3pndFF50YTmAu1jmM5YsXTIK2vwoAkrhdeVU4i9ERiinqjkqFqU8K+PsKeFaUOEO0W0xDgg+rRpwttQNeki+s0nI45CZO2lsqSggf5rEG6JP/ZNy47wPOrM9JJQ7UUlSUGc34Ldvt6jYxt+m9+dOuKTnOP1qtuCTiWdMXg2311ok2cUX9iR15LxmSZqdw/WdDXcDQLgPbu1rB1lpYRD2mapDX426cngh72w2HLdguf6RaBAy9MmJp3Y2bD2t4ZtyO8GD5IT4gYlw7teuSJ5Sud8w==;\n\t5:N7dYkAv/YC+XADq/qxghDZBOj9fFwFx1RvFV6qFSQhQxOkWT8FgOuX3b5cnyupfk8zTgL5f4wzCme/Kkb9hqkLlg9QstuXq46QDsyXYIRrfWF7TeAQR4XmzzsxPBvjzy83xO0Z/G7XTtHHPTC/MFlXQddifaQRPwNjJD8lUFAuo=;\n\t7:vEyQ4Za4vzdJ3IVJycxFsew/gFrsB+1FN6Nf4nHfm3cTuPyW4afNAahTEBsLZPq0/fahUrurjpKlcvJq3V8AJsbnc3+qfNxBxKg8x8zzSd/Et6DJ/KHJ+j1t/fA7RrEJh0XbNRr30tCTMdlDlx9BVBNtvZAxhBfYJFtz51JRgUGY/KyT0tqVPkH8w6TP7oe3DcLeCPZVE68520GTTV8s0RZrzksm9iXPjR8rA0+8UpIsUoOu3CcFl8LciG0XlKh6"
        ],
        "X-MS-TrafficTypeDiagnostic": "AM0PR04MB4676:",
        "X-Microsoft-Antispam-PRVS": "<AM0PR04MB4676D4B7EAEA0B6682BFE0F390160@AM0PR04MB4676.eurprd04.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197)(275809806118684); ",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150027)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(201708071742011)(7699051);\n\tSRVR:AM0PR04MB4676; BCL:0; PCL:0; RULEID:; SRVR:AM0PR04MB4676; ",
        "X-Forefront-PRVS": "08062C429B",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(366004)(376002)(136003)(346002)(39860400002)(396003)(189003)(199004)(2616005)(5660300001)(48376002)(478600001)(8676002)(11346002)(575784001)(186003)(86362001)(66066001)(25786009)(16526019)(36756003)(2361001)(7736002)(97736004)(6916009)(26005)(34290500001)(305945005)(106356001)(486006)(105586002)(53936002)(476003)(956004)(6512007)(5009440100003)(386003)(8936002)(68736007)(51416003)(50226002)(76176011)(3846002)(6666003)(1076002)(6506007)(316002)(6116002)(47776003)(16586007)(14444005)(2906002)(6486002)(2351001)(81156014)(44832011)(81166006)(446003)(52116002)(50466002)(4326008)(110426005);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4676;\n\tH:Tophie.ap.freescale.net; FPR:; \n\tSPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: nxp.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "1F71SGMQmJb4xsXhYff59uKTPl16Xvjn5bDxK9qzvTF6YXWbIm+A+YGu2a9elEZfkbnCBnkGvQjcUwdbDjQ2EEja9MTqC7j4oU7xIgtQBec/FRdEvnqr9vn6u4N2/Swr0i1M5XF6kPU/eLAQ2Z4WmwiaiN+qka34XBwUkOk8aEcAXagN6XGJUYwFOvDyB9/4PGStNoiJJ4vqJHqXwa/3aMY+qIMb4AyEZfAKap+n8h3EVhOm5DtDvQICiKZFGk9vWoJG+gRWRu86LLdwjNaEkXcx+oTmbXjKTDpOWmAOnyBUAqcKYRyP1z+TG+SEK47vBzZ16xMUHaqFNAsBFuOcYpaR0B/ihH5gs/fR05MCuC8=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "25 Sep 2018 12:55:27.5085\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "eaac4bfe-cecb-46b5-8f93-08d622e62c1d",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM0PR04MB4676",
        "Subject": "[dpdk-dev] [PATCH 5/5] fslmc: enable dpaax library",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "With this patch, fslmc bus and ethernet devices on this bus\nwould start using the physical-virtual library interfaces.\n\nThis patch impacts mempool/dpaa2, event/dpaa2, net/dpaa2,\nraw/dpaa2_cmdif and raw/dpaa2_qdma as they are dependent\non the bus/fslmc and thus impact linkage of libraries.\n\nSigned-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>\n---\n drivers/bus/fslmc/Makefile               |  1 +\n drivers/bus/fslmc/fslmc_bus.c            | 20 +++++++++++++++\n drivers/bus/fslmc/meson.build            |  2 +-\n drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c |  7 ------\n drivers/bus/fslmc/portal/dpaa2_hw_pvt.h  | 32 ++++++++----------------\n drivers/crypto/dpaa2_sec/Makefile        |  1 +\n drivers/event/dpaa2/Makefile             |  2 ++\n drivers/mempool/dpaa2/Makefile           |  1 +\n drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 29 +++------------------\n drivers/net/dpaa2/Makefile               |  1 +\n drivers/raw/dpaa2_cmdif/Makefile         |  2 ++\n drivers/raw/dpaa2_qdma/Makefile          |  1 +\n mk/rte.app.mk                            |  1 +\n 13 files changed, 45 insertions(+), 55 deletions(-)",
    "diff": "diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile\nindex 515d0f534..c5b580a4a 100644\n--- a/drivers/bus/fslmc/Makefile\n+++ b/drivers/bus/fslmc/Makefile\n@@ -19,6 +19,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include\n CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_ethdev\n+LDLIBS += -lrte_common_dpaax\n \n # versioning export map\n EXPORT_MAP := rte_bus_fslmc_version.map\ndiff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c\nindex f5135e538..7dbe01e08 100644\n--- a/drivers/bus/fslmc/fslmc_bus.c\n+++ b/drivers/bus/fslmc/fslmc_bus.c\n@@ -20,6 +20,8 @@\n #include <fslmc_vfio.h>\n #include \"fslmc_logs.h\"\n \n+#include <dpaax_iova_table.h>\n+\n int dpaa2_logtype_bus;\n \n #define VFIO_IOMMU_GROUP_PATH \"/sys/kernel/iommu_groups\"\n@@ -375,6 +377,19 @@ rte_fslmc_probe(void)\n \n \tprobe_all = rte_fslmc_bus.bus.conf.scan_mode != RTE_BUS_SCAN_WHITELIST;\n \n+\t/* In case of PA, the FD addresses returned by qbman APIs are physical\n+\t * addresses, which need conversion into equivalent VA address for\n+\t * rte_mbuf. For that, a table (a serial array, in memory) is used to\n+\t * increase translation efficiency.\n+\t * This has to be done before probe as some device initialization\n+\t * (during) probe allocate memory (dpaa2_sec) which needs to be pinned\n+\t * to this table.\n+\t */\n+\tret = dpaax_iova_table_populate();\n+\tif (ret) {\n+\t\tDPAA2_BUS_WARN(\"PA->VA Translation table not available;\");\n+\t}\n+\n \tTAILQ_FOREACH(dev, &rte_fslmc_bus.device_list, next) {\n \t\tTAILQ_FOREACH(drv, &rte_fslmc_bus.driver_list, next) {\n \t\t\tret = rte_fslmc_match(drv, dev);\n@@ -450,6 +465,11 @@ rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver)\n \n \tfslmc_bus = driver->fslmc_bus;\n \n+\t/* Cleanup the PA->VA Translation table; From whereever this function\n+\t * is called from.\n+\t */\n+\tdpaax_iova_table_depopulate();\n+\n \tTAILQ_REMOVE(&fslmc_bus->driver_list, driver, next);\n \t/* Update Bus references */\n \tdriver->fslmc_bus = NULL;\ndiff --git a/drivers/bus/fslmc/meson.build b/drivers/bus/fslmc/meson.build\nindex 22a56a6fc..49d71d2ba 100644\n--- a/drivers/bus/fslmc/meson.build\n+++ b/drivers/bus/fslmc/meson.build\n@@ -5,7 +5,7 @@ if host_machine.system() != 'linux'\n         build = false\n endif\n \n-deps += ['eventdev', 'kvargs']\n+deps += ['common_dpaax', 'eventdev', 'kvargs']\n sources = files('fslmc_bus.c',\n \t\t'fslmc_vfio.c',\n \t\t'mc/dpbp.c',\ndiff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c\nindex db49d637f..39c5adf90 100644\n--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c\n+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c\n@@ -28,13 +28,6 @@\n #include \"portal/dpaa2_hw_pvt.h\"\n #include \"portal/dpaa2_hw_dpio.h\"\n \n-/* List of all the memseg information locally maintained in dpaa2 driver. This\n- * is to optimize the PA_to_VA searches until a better mechanism (algo) is\n- * available.\n- */\n-struct dpaa2_memseg_list rte_dpaa2_memsegs\n-\t= TAILQ_HEAD_INITIALIZER(rte_dpaa2_memsegs);\n-\n TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev);\n static struct dpbp_dev_list dpbp_dev_list\n \t= TAILQ_HEAD_INITIALIZER(dpbp_dev_list); /*!< DPBP device list */\ndiff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h\nindex ec8f42806..7306d2598 100644\n--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h\n+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h\n@@ -9,6 +9,7 @@\n #define _DPAA2_HW_PVT_H_\n \n #include <rte_eventdev.h>\n+#include <dpaax_iova_table.h>\n \n #include <mc/fsl_mc_sys.h>\n #include <fsl_qbman_portal.h>\n@@ -277,42 +278,29 @@ enum qbman_fd_format {\n  */\n #define DPAA2_EQ_RESP_ALWAYS\t\t1\n \n-/* Various structures representing contiguous memory maps */\n-struct dpaa2_memseg {\n-\tTAILQ_ENTRY(dpaa2_memseg) next;\n-\tchar *vaddr;\n-\trte_iova_t iova;\n-\tsize_t len;\n-};\n-\n-TAILQ_HEAD(dpaa2_memseg_list, dpaa2_memseg);\n-extern struct dpaa2_memseg_list rte_dpaa2_memsegs;\n-\n #ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA\n extern uint8_t dpaa2_virt_mode;\n static void *dpaa2_mem_ptov(phys_addr_t paddr) __attribute__((unused));\n-/* todo - this is costly, need to write a fast coversion routine */\n+\n static void *dpaa2_mem_ptov(phys_addr_t paddr)\n {\n-\tstruct dpaa2_memseg *ms;\n+\tvoid *va;\n \n \tif (dpaa2_virt_mode)\n \t\treturn (void *)(size_t)paddr;\n \n-\t/* Check if the address is already part of the memseg list internally\n-\t * maintained by the dpaa2 driver.\n-\t */\n-\tTAILQ_FOREACH(ms, &rte_dpaa2_memsegs, next) {\n-\t\tif (paddr >= ms->iova && paddr <\n-\t\t\tms->iova + ms->len)\n-\t\t\treturn RTE_PTR_ADD(ms->vaddr, (uintptr_t)(paddr - ms->iova));\n-\t}\n+\tva = (void *)dpaax_iova_table_get_va(paddr);\n+\tif (likely(va != NULL))\n+\t\treturn va;\n \n \t/* If not, Fallback to full memseg list searching */\n-\treturn rte_mem_iova2virt(paddr);\n+\tva = rte_mem_iova2virt(paddr);\n+\n+\treturn va;\n }\n \n static phys_addr_t dpaa2_mem_vtop(uint64_t vaddr) __attribute__((unused));\n+\n static phys_addr_t dpaa2_mem_vtop(uint64_t vaddr)\n {\n \tconst struct rte_memseg *memseg;\ndiff --git a/drivers/crypto/dpaa2_sec/Makefile b/drivers/crypto/dpaa2_sec/Makefile\nindex da3d8f84f..1f951a14b 100644\n--- a/drivers/crypto/dpaa2_sec/Makefile\n+++ b/drivers/crypto/dpaa2_sec/Makefile\n@@ -51,5 +51,6 @@ LDLIBS += -lrte_bus_fslmc\n LDLIBS += -lrte_mempool_dpaa2\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_cryptodev\n+LDLIBS += -lrte_common_dpaax\n \n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/event/dpaa2/Makefile b/drivers/event/dpaa2/Makefile\nindex 46f7d061e..de6771551 100644\n--- a/drivers/event/dpaa2/Makefile\n+++ b/drivers/event/dpaa2/Makefile\n@@ -21,6 +21,7 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal\n LDLIBS += -lrte_eal -lrte_eventdev\n LDLIBS += -lrte_bus_fslmc -lrte_mempool_dpaa2 -lrte_pmd_dpaa2\n LDLIBS += -lrte_bus_vdev -lrte_pmd_dpaa2_sec\n+LDLIBS += -lrte_common_dpaax\n CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2\n CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2/mc\n CFLAGS += -I$(RTE_SDK)/drivers/crypto/dpaa2_sec\n@@ -39,4 +40,5 @@ CFLAGS += -DALLOW_EXPERIMENTAL_API\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_hw_dpcon.c\n SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_EVENTDEV) += dpaa2_eventdev.c\n \n+\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/mempool/dpaa2/Makefile b/drivers/mempool/dpaa2/Makefile\nindex 9e4c87d79..0fc69c3bf 100644\n--- a/drivers/mempool/dpaa2/Makefile\n+++ b/drivers/mempool/dpaa2/Makefile\n@@ -30,6 +30,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL) += dpaa2_hw_mempool.c\n \n LDLIBS += -lrte_bus_fslmc\n LDLIBS += -lrte_eal -lrte_mempool -lrte_ring\n+LDLIBS += -lrte_common_dpaax\n \n SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)-include := rte_dpaa2_mempool.h\n \ndiff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c\nindex 84ff12811..e74825598 100644\n--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c\n+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c\n@@ -30,6 +30,8 @@\n #include \"dpaa2_hw_mempool.h\"\n #include \"dpaa2_hw_mempool_logs.h\"\n \n+#include <dpaax_iova_table.h>\n+\n struct dpaa2_bp_info rte_dpaa2_bpid_info[MAX_BPID];\n static struct dpaa2_bp_list *h_bp_list;\n \n@@ -393,31 +395,8 @@ dpaa2_populate(struct rte_mempool *mp, unsigned int max_objs,\n \t      void *vaddr, rte_iova_t paddr, size_t len,\n \t      rte_mempool_populate_obj_cb_t *obj_cb, void *obj_cb_arg)\n {\n-\tstruct dpaa2_memseg *ms;\n-\n-\t/* For each memory chunk pinned to the Mempool, a linked list of the\n-\t * contained memsegs is created for searching when PA to VA\n-\t * conversion is required.\n-\t */\n-\tms = rte_zmalloc(NULL, sizeof(struct dpaa2_memseg), 0);\n-\tif (!ms) {\n-\t\tDPAA2_MEMPOOL_ERR(\"Unable to allocate internal memory.\");\n-\t\tDPAA2_MEMPOOL_WARN(\"Fast Physical to Virtual Addr translation would not be available.\");\n-\t\t/* If the element is not added, it would only lead to failure\n-\t\t * in searching for the element and the logic would Fallback\n-\t\t * to traditional DPDK memseg traversal code. So, this is not\n-\t\t * a blocking error - but, error would be printed on screen.\n-\t\t */\n-\t\treturn 0;\n-\t}\n-\n-\tms->vaddr = vaddr;\n-\tms->iova = paddr;\n-\tms->len = len;\n-\t/* Head insertions are generally faster than tail insertions as the\n-\t * buffers pinned are picked from rear end.\n-\t */\n-\tTAILQ_INSERT_HEAD(&rte_dpaa2_memsegs, ms, next);\n+\t/* Insert entry into the PA->VA Table */\n+\tdpaax_iova_table_add(paddr, vaddr, len);\n \n \treturn rte_mempool_op_populate_default(mp, max_objs, vaddr, paddr, len,\n \t\t\t\t\t       obj_cb, obj_cb_arg);\ndiff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile\nindex 42d45c1a8..59f7bf4a7 100644\n--- a/drivers/net/dpaa2/Makefile\n+++ b/drivers/net/dpaa2/Makefile\n@@ -41,5 +41,6 @@ LDLIBS += -lrte_bus_fslmc\n LDLIBS += -lrte_mempool_dpaa2\n LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring\n LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs\n+LDLIBS += -lrte_common_dpaax\n \n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/raw/dpaa2_cmdif/Makefile b/drivers/raw/dpaa2_cmdif/Makefile\nindex 9b863dda2..83b5ecb56 100644\n--- a/drivers/raw/dpaa2_cmdif/Makefile\n+++ b/drivers/raw/dpaa2_cmdif/Makefile\n@@ -21,6 +21,7 @@ LDLIBS += -lrte_eal\n LDLIBS += -lrte_kvargs\n LDLIBS += -lrte_mempool_dpaa2\n LDLIBS += -lrte_rawdev\n+LDLIBS += -lrte_common_dpaax\n \n EXPORT_MAP := rte_pmd_dpaa2_cmdif_version.map\n \n@@ -33,4 +34,5 @@ SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV) += dpaa2_cmdif.c\n \n SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF_RAWDEV)-include += rte_pmd_dpaa2_cmdif.h\n \n+\n include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/raw/dpaa2_qdma/Makefile b/drivers/raw/dpaa2_qdma/Makefile\nindex d88809ead..2f79a3f41 100644\n--- a/drivers/raw/dpaa2_qdma/Makefile\n+++ b/drivers/raw/dpaa2_qdma/Makefile\n@@ -22,6 +22,7 @@ LDLIBS += -lrte_mempool\n LDLIBS += -lrte_mempool_dpaa2\n LDLIBS += -lrte_rawdev\n LDLIBS += -lrte_ring\n+LDLIBS += -lrte_common_dpaax\n \n EXPORT_MAP := rte_pmd_dpaa2_qdma_version.map\n \ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex 89a008fe3..abfbe387c 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -119,6 +119,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_COMMON_DPAAX)   += -lrte_common_dpaax\n _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA_MEMPOOL)   += -lrte_mempool_dpaa\n endif\n ifeq ($(CONFIG_RTE_EAL_VFIO)$(CONFIG_RTE_LIBRTE_FSLMC_BUS),yy)\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_COMMON_DPAAX)   += -lrte_common_dpaax\n _LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL)  += -lrte_mempool_dpaa2\n endif\n \n",
    "prefixes": [
        "5/5"
    ]
}