get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 18188,
    "url": "http://patches.dpdk.org/api/patches/18188/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com",
    "date": "2016-12-19T20:54:12",
    "name": "[dpdk-dev,PATCHv2,33/34] bus/fslmc: add support for dmamap to ARM SMMU",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "38854e584215a9d2faf3f8823dd4c18f3d8d1512",
    "submitter": {
        "id": 477,
        "url": "http://patches.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/18188/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/18188/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id BA58DFAD5;\n\tMon, 19 Dec 2016 16:23:07 +0100 (CET)",
            "from NAM02-BL2-obe.outbound.protection.outlook.com\n\t(mail-bl2nam02on0074.outbound.protection.outlook.com [104.47.38.74])\n\tby dpdk.org (Postfix) with ESMTP id A3B20FA3E\n\tfor <dev@dpdk.org>; Mon, 19 Dec 2016 16:22:31 +0100 (CET)",
            "from BN6PR03CA0021.namprd03.prod.outlook.com (10.168.230.159) by\n\tBN1PR0301MB0737.namprd03.prod.outlook.com (10.160.78.144) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.789.14; Mon, 19 Dec 2016 15:22:30 +0000",
            "from BY2FFO11FD035.protection.gbl (2a01:111:f400:7c0c::192) by\n\tBN6PR03CA0021.outlook.office365.com (2603:10b6:404:23::31) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via\n\tFrontend Transport; Mon, 19 Dec 2016 15:22:30 +0000",
            "from az84smr01.freescale.net (192.88.158.2) by\n\tBY2FFO11FD035.mail.protection.outlook.com (10.1.14.220) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.789.10\n\tvia Frontend Transport; Mon, 19 Dec 2016 15:22:26 +0000",
            "from bf-netperf1.idc ([10.232.134.28])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tuBJFKMhw029110; Mon, 19 Dec 2016 08:22:22 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com;\n\tnxp.com; \n\tdkim=none (message not signed) header.d=none;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.freescale.net;",
        "From": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas.monjalon@6wind.com>, <bruce.richardson@intel.com>,\n\t<shreyansh.jain@nxp.com>, <john.mcnamara@intel.com>,\n\t<ferruh.yigit@intel.com>, <jerin.jacob@caviumnetworks.com>,\n\tHemant Agrawal <hemant.agrawal@nxp.com>",
        "Date": "Tue, 20 Dec 2016 02:24:12 +0530",
        "Message-ID": "<1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "References": "<1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com>\n\t<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131266345494111938;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(7916002)(39410400002)(39860400002)(39380400002)(39840400002)(39850400002)(39400400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(33646002)(36756003)(2906002)(77096006)(104016004)(68736007)(4326007)(85426001)(38730400001)(47776003)(356003)(8666005)(189998001)(81166006)(50466002)(8676002)(97736004)(6666003)(2950100002)(81156014)(76176999)(50986999)(305945005)(110136003)(48376002)(50226002)(5003940100001)(86362001)(5660300001)(2351001)(626004)(6916009)(92566002)(69596002)(105606002)(8936002)(106466001)(7059030);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0737;\n\tH:az84smr01.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BY2FFO11FD035;\n\t1:G70reMqe36BO0ICybLpj1w6llKtaWwEgQFVlTeFJs/1Yl5kf0zBdwgV+Mw73T/r0EYT4ISW35e910DESBlzwkq9SkUc26GKcpOE6bl3kYoVeecINNbtjPZu4POLrqoKMDL2SmhtYC5vdQDRVeuC/xffjgJG+H4W2oZ5lKq2z96gm4vPMxIcIFWOjEA0aK/Io0Rl1yWKVbIZeBg4Ry0Gm3aMMLrBAY3ZKQmTe/VALWVQNPaLvBBpeGOC6PK/EnC6E3xMjkwJVP3GZhMAYwyP6zqLIW4w0sKzow/KHxyx4y+w2Q/SE30qHqwcKLV58K+BFFvnW4w3/8SBwp/BZsj6lPCJt0w2JdhkN1WXXjxAbd2NbD0bryww9311yfEdw+TMmiXuV020DyLPTn88NucukpVa+7fZCIoSOX5SVFcDD8hOvvNz2sdFc0BZ6e3Oo6omEMQAGaQ0GpR1k5SPALDLa1I1XBWujborUxnETjavcrMnSEmkhWLgfDrS+8DmihYaoGoOhM1mrhHel5TPTMQGRi+AlBdxa1o5K+a1iN8ft+LX4pNwEbPhg1ttgjVABjO6HSltDasL0aDCs199cloLVTeLsu7A8u9hhuPgtRrcpqZOaAUJPuPu4kUVGT485WKx1k9PSaMAabs3sbbe4aXmc4a0+ZGeilgIkTTBsH5knq2ZNoPlupiF7wcx1f30YRhfIsAteLOw4uoaXxc7clpGbm/0/7Y8o9HEwoQTFGtICIVkbO6YRznYxfC4igPRBMX1+tTX3brJyvseqUBEEb0kxAw==",
            "1; BN1PR0301MB0737;\n\t3:AH4yXrsyKvNCh0bN2Cp9Gw5qkPBgB6x2BuHZUYcEGBEhoG0EvIglCJ/gtHS38IxfCljEiJ8hsboj20uJaBJmfRYwPdfc4TW3u3cDRLCahbZjj+GNuUsUdKVGqpT07YtbFCFyi724UljDPnB0+XzAh1al8IZvt+y2ewAvP3mrhw9QBQZ99kbpwzAGJJjbEsvFAXE2McWj2ibA9iaxXQQ1u++iEyjlo65tj+H95FsZ42T2cOYYbqTHGRj0KdRzW+2iogH8F/bkXnUGWEPmM3tRAomba2s1lPCsxrz34rF1jar5e5Dkr2V/hJNVeE6V7hZC5TR4A/TH+1SKDEnG9Hf4t1Yzz25BqeoWA+r9De/JAPsOtuSFXcpLl+Sjop/bE13F",
            "1; BN1PR0301MB0737;\n\t25:xrj5lRDm4dJ5I7pv6BZOyf6xXFB5TtRJpkYBKccf7C8E+4pjGNVNhpwZG6MbxyNIBHLLZ7JBB8R0jz3unVPhLDX+bOrYduGwtkM+DgqghWb9ZsLrvNtUIqwPZEWcOSJsy497mfXGzSm/3nMv+gXhs+arosLglq6GX71Ks+m+ReYkHLIbEJwCyfaych2835OQz9nmYMicG5eCUOREOAjnJ6GbF9wGb4PZNwNFSv8eHnclXqO6cjXAUYjNh2ZntK9AaADnREj/yANgMIX7Xmp4ia0JU3eyTCeFxXAGjtW77LzL/HKxwroli4VQkRe4Z/Hatrf3eeiKoEHZFf+gRTRoiIQH1+vN6ItdeGMUF3z8Hq80lJw8AUud+oh9Rhm6NcncngmcAqmlI3jZjZCtFiOF/WR9+LbtvIQnJzpqY3n0TbTTPc0qgyphXihnFo8i7FEq1CiZVwbeknbj8t829Knd+V7hgXK9WWAXNFcI8b0dU595Me9Xafi/Z+vS/8TayVOyjzxCobdg3qG3ZuIVhehYoDHRzBxuEKYb3iYqexnzDy8yduqnY9xo7o0o8pkRJu4r7G3Wi8POIrYzcMsndtshh5Tzo24cw1hPELATq/GVdBSa8QsOJ441x2qmHbEFSIJzWZP0fPh/tJSwgPPcbrmGQ5OifD2UkoOrRPQhZHjxd1txH6k94o4okBESHJfUd0S/H8y6Qa1azQfiNzNXL1AkTysw+PTW+7+fexuOETGhACmC4NfZVyqvVUTdLz0BoEA2+kgLcpSUzSjSEQFqKDkNVA==",
            "1; BN1PR0301MB0737;\n\t31:IGjMSY2ZKDhXYXpcsibcxnuXd0Eo8z+0hs0FjfpK55qnFc8pzINkwmP1saprxzn5SWPQerFZ+U26ClTdNlc2UB9aCAcyo/WQOGZYobuWYN/MFsI9TVUkFm79SwalLePdNNI5dgyHq+WZG5ZG7pURQeuLOTj55oCGuCgVXVTKM2kN+d/CS7Q3QnE27L4yhyEtuQnZhJqTaKgEmHUYaMv3ip0XE4mbm7/55Nar0SyQ1v+6nsLVBkz/JXMFlSqu7hbd/4cb2ax1r6iL+Dl6rGJYxA==",
            "1; BN1PR0301MB0737;\n\t4:lJcdd77D5jBiLKAWfixQWQxw1RX1cZG8iIL3L3o6OSYw8vSiNYIvRDSonrGA4E94uou0BLah+gHUMyaAK5tpKRZMHIGNOK/9De8zvayT0pHJZu57DSKWX/qsbSmBbldrGk4rnC/GgPvO6B5IdhGeZX1pJuuZEky1mFjcYyT86Xx3DCZPWUUBU0d73+QcJo/3vakKZZU+3X2r4eMtwLa9T2zHKXd5ePM/2gA3LWSnLkJon3I9VHK4kuADgEgFEzb2HfjWBLSME3f2udpeaKdzKmYBH/zc1UrLO9UlFnEbdVeLHJGRRW6QO20G7XzW/KL79kIvFV8GWvWvSgUR1FsIvWKqEj5wEB9vjzGHrtbRXZ7HB7BNwZ05dsZDQLo6SBHGtqh45lDlqy4E86WfhD0J2jygfO2FMxk6E+h4c6jn+JzcsnTPzV4o1KqjuEz43tEECWEaFnnpqap42awVt1WtMoY+kglWWGTt8oCh/F9rM8+4CX84uPIF5Gk+q38C0El/pUkE7cLx9GjAaWCwKTCBtkxaG7lp2v/w+0EyptobPh1F4b/43qmlFimtkkvpSejZ8gIUf5D1ARF42R37FiTaRBUDRt+4EOMQcovPVYho33DxFunsjqCcN1U1lieN0O4J09YTQLGW5ry8d5AhaDMkSOvPZxZqG6sPec3gQhWaYvNekuQQVceYdnhb7kPUgeakgNY2DpSGdfWMMguvomeCuCjlNNj0TPahlRJ/BCWS6k7kfpqa1EybEgHvV7eV4TwW",
            "=?us-ascii?Q?1; BN1PR0301MB0737;\n\t23:qcNDXTllQ5IgMxQjkjAOgq9tkQckRsFdqX1MtGf?=\n\t+nN0WiawFOp511B315w1812MIO17D+gwkl1Iz/p23LaY/O1M9LdJXcyzP/9+qgli44dKVk3FmZHLmGyNhTyk1ttJafOtYMczzvRN90pIrpY2Tgfc93t55024q38x1dOafHVA4/pMGr3zWSvIEAngSYshtSp1yNOS7hmEM4jDqFp0/Liwyn/j70WTBE4nU/JV6D0MFCpfyD8OfgYe8kMRAOo/iLjP5trG3nRJTEnQat/l8PObgluk3+jvQhVbIK+NH5aaGWkay6upWOyeANIiSLqnCLdxBFpy6Zl/UxXLoyJ0LhZE0gjAwcG89NOSrKJZl7gErVqd1I3Twe6oAy15EXCZGEecxQ1yvWodQIJHzUQK0BMirDgSAFiD49pqN2ioRtYr4cuSp3G0XJdyp+v1e0XpK4oDxFNSKC5MYHw4YCJZRLfo5INlsZxKePYBfZx0yv9VnGtiYU8XYX/f5ssDSVIDI9VR/cdlSFJBiWLx+lpa46j4ZJcSfZ/upvxHDf7lIbW6ltcPXVXHMr/16rFP0eoeZL69+W8c0i2Qo9YiX33Rbvtqzif6QPrJ7hg+oHjdD+A2ndrXrHSYjtRuonUfhCB0doz2sVvg7eCC8W7v2rv9KuufTpv9PdTl0AsTIR8+2Hnj6+2HyqGjwtYOBQnEIj9C269P93t5K6Om8pKkxC1Sk0mFYwM1gTZpVpL7m1/e22C3Hxng97YXWP78BYAjqXRNMJ1ClavLNzQwNdtCKD+SesmFspbvDRrOHYRHH4q4rWZhXktPtOM5VmlP0Q3bVI617eMBFGqklTrWax9+S+1l0wiNCwPint3F4oka6PEqU/x2Qq92degCR9S6Q+H30r3KhnlryZyDMmeXxS5EIc2FmUXpEA4cTPYp8Mczcr8hxKERinbYhasel3VM/y+kG86kEphJa0Y9jmN6k5ock3/fk0gNG13WrMz4csq0BPLuRZhj6c6KVv2hF7ii4slhqOcPwjhDr0it1Cu9RSjGcH2NjXfKFnnqko/vwIei1fHlCnv9arH4IKPfetlRkjss2SEOpnUH8BoAQKu7xRxsmwO9VFu+JFUNeQ7Q+yKb+HKncisdfDOG2I6ZfVRj/cg6oG3rFR9WkEIC0nvIqxW3gRTDeef7FdU/lJ6vTmWNdX2bAQw0XE7qYf70DtVY4yg4dR05sHsUng7NKLMe7JaItoxnPrkZZ2WdYlqYjymElvEKiR/ItJsDVW4/ZJ3SXqGZKHOmJrROw5FnuE8kKfPpEd20kC/mvR2q9KhtOc+C+72Ma5GQ=",
            "1; BN1PR0301MB0737;\n\t6:KKc0quaJoD9A0PvpEwHQHP4BhpwvfnPD4uPLPmdbsHM5Rios6daoCdGlA/u+j215nsMwHc96ToVhVtuNU/EcPrWDAnBLKQ5Wmiin9E/Ox/4SiBX8HK6hR0oOy7OVKWc18bYZUVqryjSWxSQfNcnjcB665vbWbmu+0nGEkzJDqrjdN7t+mV+9+csHO7rruxJL8qbHFv536kWxIuyW1F70cu4YY256eFr/gqxf4aXtLU3CRXIsJwQ7UNEF+00xkMVjw7r1oj24F0iVee1zhGB25IynVgqxRLnn7bNMkeq2N7UBC6rlKD6DMowJr7McNKQvg+qsZxIL8zuBhjVDWvKeAHhRWjcs15n5eO+aJ4U3V2XQ85MEMckdzOEhnUs+qlcZR5H/ou3KvrJ1V7VTn06C+rx7IARjIH/BxEyoj/H1uL/C0OfzTtxxbFPPACRtntxO;\n\t5:Ac0Wz0Sq/5ZXzX6zmoJXKaKgRjDuXhmi5GhP1kxrWM5V5PvsOHIk/YCzhxqsXF2QhnYnVrlWW5MnpibfHjZRME9A6esmx3Gmbu5L8TI6yGId/ibgw9KzuKD5qpr3HjBBzwW6Y96KpYmmpyFxXHqCffc8xE81bOKYvYtt2Ai6yDTyc4LmNrs02pVUAzDG5NOF;\n\t24:QDYUD0LtWS+D1+p4ogLC5Q/zt/vd0GNBHWBgOXONV7t/vOKO0KA7AzpAbX3Ef9KD0zHnc7ycodsgxsHytUDVCVGHUZsbr1uMNfjtlTePX3g=",
            "1; BN1PR0301MB0737;\n\t7:FMwnJBeNTDi+DIfx5tlkVdnbehjookZ5yQQbNJx2DkN5vnS4WTq4CTTLuoza+7x4oWUnVXkxMI/7Y7tLqjKkcpax63uP/IWwtGyBo24pPVKwVieU7YQt4Q3qqwVDu+wWPHiYD39e0DqA2q36zVMgh5OOCQxdUGLnRW1TlAx4Tj42nHq0wFrTV8nz87VLm94kUMJqJycIJEDP7nUANGH5A6xAjX7nMNv+mQx0jhuqQp32PG3gK+Ags0rI+o0yCqrkS9kAYH/QPwewgTuG5BSEUTtH0sRDl+QLovOHbLOWb2wRDtRJlcOC2WdFzzx1fDA9hrkksoOnfBFZiBEKRfxK3WE3fgagUp/g08tizTuGjimBTzWGQXyTftRScq6+gxPj7I7UtnMnCZCXL3P6cLi3M76jjk2r4nJiqtgxBb8eTphPwwrRx9vh6T6XxKMSGYJG2Vl2ghGIoyEL2pzN1XHqPg=="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "1969ec50-cf76-4d9f-8561-08d42822d898",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:BN1PR0301MB0737; ",
        "X-Microsoft-Antispam-PRVS": "<BN1PR0301MB07375E7F6DBCED01AD3CED9589910@BN1PR0301MB0737.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6095060)(601004)(2401047)(8121501046)(13018025)(13015025)(5005006)(13024025)(13023025)(13017025)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123565025)(20161123556025)(20161123563025);\n\tSRVR:BN1PR0301MB0737; BCL:0; PCL:0; RULEID:(400006);\n\tSRVR:BN1PR0301MB0737; ",
        "X-Forefront-PRVS": "01613DFDC8",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Dec 2016 15:22:26.4471\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.158.2]; \n\tHelo=[az84smr01.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN1PR0301MB0737",
        "Subject": "[dpdk-dev] [PATCHv2 33/34] bus/fslmc: add support for dmamap to ARM\n\tSMMU",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n drivers/bus/fslmc/fslmc_vfio.c   | 97 ++++++++++++++++++++++++++++++++++++++++\n drivers/bus/fslmc/fslmc_vfio.h   |  1 +\n drivers/net/dpaa2/dpaa2_ethdev.c |  2 +\n 3 files changed, 100 insertions(+)",
    "diff": "diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c\nindex 8d6a3eb..44cf3d1 100644\n--- a/drivers/bus/fslmc/fslmc_vfio.c\n+++ b/drivers/bus/fslmc/fslmc_vfio.c\n@@ -77,8 +77,10 @@\n static struct fslmc_vfio_group vfio_groups[VFIO_MAX_GRP];\n static struct fslmc_vfio_container vfio_containers[VFIO_MAX_CONTAINERS];\n static int container_device_fd;\n+static uint32_t *msi_intr_vaddr;\n void *(*mcp_ptr_list);\n static uint32_t mcp_id;\n+static int is_dma_done;\n \n static int vfio_connect_container(struct fslmc_vfio_group *vfio_group)\n {\n@@ -148,6 +150,35 @@ static int vfio_connect_container(struct fslmc_vfio_group *vfio_group)\n \treturn 0;\n }\n \n+static int vfio_map_irq_region(struct fslmc_vfio_group *group)\n+{\n+\tint ret;\n+\tunsigned long *vaddr = NULL;\n+\tstruct vfio_iommu_type1_dma_map map = {\n+\t\t.argsz = sizeof(map),\n+\t\t.flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE,\n+\t\t.vaddr = 0x6030000,\n+\t\t.iova = 0x6030000,\n+\t\t.size = 0x1000,\n+\t};\n+\n+\tvaddr = (unsigned long *)mmap(NULL, 0x1000, PROT_WRITE |\n+\t\tPROT_READ, MAP_SHARED, container_device_fd, 0x6030000);\n+\tif (vaddr == MAP_FAILED) {\n+\t\tFSLMC_VFIO_LOG(ERR, \"Unable to map region (errno = %d)\", errno);\n+\t\treturn -errno;\n+\t}\n+\n+\tmsi_intr_vaddr = (uint32_t *)((char *)(vaddr) + 64);\n+\tmap.vaddr = (unsigned long)vaddr;\n+\tret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA, &map);\n+\tif (ret == 0)\n+\t\treturn 0;\n+\n+\tFSLMC_VFIO_LOG(ERR, \"VFIO_IOMMU_MAP_DMA fails (errno = %d)\", errno);\n+\treturn -errno;\n+}\n+\n int vfio_dmamap_mem_region(uint64_t vaddr,\n \t\t\t   uint64_t iova,\n \t\t\t   uint64_t size)\n@@ -170,6 +201,72 @@ int vfio_dmamap_mem_region(uint64_t vaddr,\n \t}\n \treturn 0;\n }\n+\n+int fslmc_vfio_dmamap(void)\n+{\n+\tint ret;\n+\tstruct fslmc_vfio_group *group;\n+\tstruct vfio_iommu_type1_dma_map dma_map = {\n+\t\t.argsz = sizeof(struct vfio_iommu_type1_dma_map),\n+\t\t.flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE,\n+\t};\n+\n+\tint i;\n+\tconst struct rte_memseg *memseg;\n+\n+\tif (is_dma_done)\n+\t\treturn 0;\n+\tis_dma_done = 1;\n+\n+\tfor (i = 0; i < RTE_MAX_MEMSEG; i++) {\n+\t\tmemseg = rte_eal_get_physmem_layout();\n+\t\tif (memseg == NULL) {\n+\t\t\tFSLMC_VFIO_LOG(ERR, \"Cannot get physical layout.\");\n+\t\t\treturn -ENODEV;\n+\t\t}\n+\n+\t\tif (memseg[i].addr == NULL && memseg[i].len == 0)\n+\t\t\tbreak;\n+\n+\t\tdma_map.size = memseg[i].len;\n+\t\tdma_map.vaddr = memseg[i].addr_64;\n+#ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA\n+\t\tdma_map.iova = memseg[i].phys_addr;\n+#else\n+\t\tdma_map.iova = dma_map.vaddr;\n+#endif\n+\n+\t\t/* SET DMA MAP for IOMMU */\n+\t\tgroup = &vfio_groups[0];\n+\n+\t\tif (!group->container) {\n+\t\t\tFSLMC_VFIO_LOG(ERR, \"Container is not connected \");\n+\t\t\treturn -1;\n+\t\t}\n+\n+\t\tFSLMC_VFIO_LOG(DEBUG, \"-->Initial SHM Virtual ADDR %llX\",\n+\t\t\t     dma_map.vaddr);\n+\t\tFSLMC_VFIO_LOG(DEBUG, \"-----> DMA size 0x%llX\\n\", dma_map.size);\n+\t\tret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA,\n+\t\t\t    &dma_map);\n+\t\tif (ret) {\n+\t\t\tFSLMC_VFIO_LOG(ERR, \"VFIO_IOMMU_MAP_DMA API\"\n+\t\t\t\t       \"(errno = %d)\", errno);\n+\t\t\treturn ret;\n+\t\t}\n+\t\tFSLMC_VFIO_LOG(DEBUG, \"-----> dma_map.vaddr = 0x%llX\",\n+\t\t\t     dma_map.vaddr);\n+\t}\n+\n+\t/* TODO - This is a W.A. as VFIO currently does not add the mapping of\n+\t * the interrupt region to SMMU. This should be removed once the\n+\t * support is added in the Kernel.\n+\t */\n+\tvfio_map_irq_region(group);\n+\n+\treturn 0;\n+}\n+\n static int64_t vfio_map_mcp_obj(struct fslmc_vfio_group *group, char *mcp_obj)\n {\n \tint64_t v_addr = (int64_t)MAP_FAILED;\ndiff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h\nindex c5a42fe..83a7c68 100644\n--- a/drivers/bus/fslmc/fslmc_vfio.h\n+++ b/drivers/bus/fslmc/fslmc_vfio.h\n@@ -70,5 +70,6 @@ int vfio_dmamap_mem_region(\n \n int fslmc_vfio_setup_group(void);\n int fslmc_vfio_process_group(struct rte_bus *bus);\n+int fslmc_vfio_dmamap(void);\n \n #endif /* _FSLMC_VFIO_H_ */\ndiff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c\nindex d1456d5..3a90e7c 100644\n--- a/drivers/net/dpaa2/dpaa2_ethdev.c\n+++ b/drivers/net/dpaa2/dpaa2_ethdev.c\n@@ -911,6 +911,8 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)\n \n \teth_dev->rx_pkt_burst = dpaa2_dev_rx;\n \teth_dev->tx_pkt_burst = dpaa2_dev_tx;\n+\tfslmc_vfio_dmamap();\n+\n \treturn 0;\n }\n \n",
    "prefixes": [
        "dpdk-dev",
        "PATCHv2",
        "33/34"
    ]
}