get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1152985,
    "url": "http://patchwork.ozlabs.org/api/patches/1152985/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20190826061705.92048-5-aik@ozlabs.ru/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/",
        "list_archive_url": "https://lore.kernel.org/linuxppc-dev/",
        "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/",
        "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"
    },
    "msgid": "<20190826061705.92048-5-aik@ozlabs.ru>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20190826061705.92048-5-aik@ozlabs.ru/",
    "date": "2019-08-26T06:17:05",
    "name": "[kernel,v2,4/4] powerpc/powernv/ioda: Remove obsolete iommu_table_ops::exchange callbacks",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "b15920e76ad769410df88427661149aabdd0b2e0",
    "submitter": {
        "id": 7621,
        "url": "http://patchwork.ozlabs.org/api/people/7621/?format=api",
        "name": "Alexey Kardashevskiy",
        "email": "aik@ozlabs.ru"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20190826061705.92048-5-aik@ozlabs.ru/mbox/",
    "series": [
        {
            "id": 127248,
            "url": "http://patchwork.ozlabs.org/api/series/127248/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=127248",
            "date": "2019-08-26T06:17:02",
            "name": "powerpc/powernv/kvm: Invalidate multiple TCEs at once",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/127248/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1152985/comments/",
    "check": "fail",
    "checks": "http://patchwork.ozlabs.org/api/patches/1152985/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "patchwork-incoming@ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (4096 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 46H29v4N1Wz9sN1\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 26 Aug 2019 16:27:47 +1000 (AEST)",
            "from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 46H29v326NzDqWQ\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 26 Aug 2019 16:27:47 +1000 (AEST)",
            "from ozlabs.ru (ozlabs.ru [107.173.13.209])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 46H1yY5MQ9zDqbW\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tMon, 26 Aug 2019 16:17:57 +1000 (AEST)",
            "from fstn1-p1.ozlabs.ibm.com (localhost [IPv6:::1])\n\tby ozlabs.ru (Postfix) with ESMTP id BD4BBAE805A5;\n\tMon, 26 Aug 2019 02:17:03 -0400 (EDT)"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=ozlabs.ru",
            "lists.ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=ozlabs.ru\n\t(client-ip=107.173.13.209; helo=ozlabs.ru; envelope-from=aik@ozlabs.ru;\n\treceiver=<UNKNOWN>)",
            "lists.ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=ozlabs.ru"
        ],
        "From": "Alexey Kardashevskiy <aik@ozlabs.ru>",
        "To": "linuxppc-dev@lists.ozlabs.org",
        "Subject": "[PATCH kernel v2 4/4] powerpc/powernv/ioda: Remove obsolete\n\tiommu_table_ops::exchange callbacks",
        "Date": "Mon, 26 Aug 2019 16:17:05 +1000",
        "Message-Id": "<20190826061705.92048-5-aik@ozlabs.ru>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20190826061705.92048-1-aik@ozlabs.ru>",
        "References": "<20190826061705.92048-1-aik@ozlabs.ru>",
        "X-BeenThere": "linuxppc-dev@lists.ozlabs.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>",
        "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>",
        "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>",
        "Cc": "kvm@vger.kernel.org, Alexey Kardashevskiy <aik@ozlabs.ru>,\n\tkvm-ppc@vger.kernel.org, Alex Williamson <alex.williamson@redhat.com>,\n\tAlistair Popple <alistair@popple.id.au>,\n\tDavid Gibson <david@gibson.dropbear.id.au>",
        "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org",
        "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"
    },
    "content": "As now we have xchg_no_kill/tce_kill, these are not used anymore so\nremove them.\n\nSigned-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>\n---\n arch/powerpc/include/asm/iommu.h          | 10 -----\n arch/powerpc/kernel/iommu.c               | 26 +-----------\n arch/powerpc/platforms/powernv/pci-ioda.c | 50 -----------------------\n 3 files changed, 1 insertion(+), 85 deletions(-)",
    "diff": "diff --git a/arch/powerpc/include/asm/iommu.h b/arch/powerpc/include/asm/iommu.h\nindex 837b5122f257..350101e11ddb 100644\n--- a/arch/powerpc/include/asm/iommu.h\n+++ b/arch/powerpc/include/asm/iommu.h\n@@ -48,16 +48,6 @@ struct iommu_table_ops {\n \t * returns old TCE and DMA direction mask.\n \t * @tce is a physical address.\n \t */\n-\tint (*exchange)(struct iommu_table *tbl,\n-\t\t\tlong index,\n-\t\t\tunsigned long *hpa,\n-\t\t\tenum dma_data_direction *direction);\n-\t/* Real mode */\n-\tint (*exchange_rm)(struct iommu_table *tbl,\n-\t\t\tlong index,\n-\t\t\tunsigned long *hpa,\n-\t\t\tenum dma_data_direction *direction);\n-\n \tint (*xchg_no_kill)(struct iommu_table *tbl,\n \t\t\tlong index,\n \t\t\tunsigned long *hpa,\ndiff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c\nindex 070492f9b46e..9704f3f76e63 100644\n--- a/arch/powerpc/kernel/iommu.c\n+++ b/arch/powerpc/kernel/iommu.c\n@@ -1013,30 +1013,6 @@ int iommu_tce_check_gpa(unsigned long page_shift, unsigned long gpa)\n }\n EXPORT_SYMBOL_GPL(iommu_tce_check_gpa);\n \n-long iommu_tce_xchg(struct mm_struct *mm, struct iommu_table *tbl,\n-\t\tunsigned long entry, unsigned long *hpa,\n-\t\tenum dma_data_direction *direction)\n-{\n-\tlong ret;\n-\tunsigned long size = 0;\n-\n-\tret = tbl->it_ops->exchange(tbl, entry, hpa, direction);\n-\n-\tif (!ret && ((*direction == DMA_FROM_DEVICE) ||\n-\t\t\t(*direction == DMA_BIDIRECTIONAL)) &&\n-\t\t\t!mm_iommu_is_devmem(mm, *hpa, tbl->it_page_shift,\n-\t\t\t\t\t&size))\n-\t\tSetPageDirty(pfn_to_page(*hpa >> PAGE_SHIFT));\n-\n-\t/* if (unlikely(ret))\n-\t\tpr_err(\"iommu_tce: %s failed on hwaddr=%lx ioba=%lx kva=%lx ret=%d\\n\",\n-\t\t\t__func__, hwaddr, entry << tbl->it_page_shift,\n-\t\t\t\thwaddr, ret); */\n-\n-\treturn ret;\n-}\n-EXPORT_SYMBOL_GPL(iommu_tce_xchg);\n-\n extern long iommu_tce_xchg_no_kill(struct mm_struct *mm,\n \t\tstruct iommu_table *tbl,\n \t\tunsigned long entry, unsigned long *hpa,\n@@ -1076,7 +1052,7 @@ int iommu_take_ownership(struct iommu_table *tbl)\n \t * requires exchange() callback defined so if it is not\n \t * implemented, we disallow taking ownership over the table.\n \t */\n-\tif (!tbl->it_ops->exchange)\n+\tif (!tbl->it_ops->xchg_no_kill)\n \t\treturn -EINVAL;\n \n \tspin_lock_irqsave(&tbl->large_pool.lock, flags);\ndiff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c\nindex 4e56b2c620ec..c28d0d9b7ee0 100644\n--- a/arch/powerpc/platforms/powernv/pci-ioda.c\n+++ b/arch/powerpc/platforms/powernv/pci-ioda.c\n@@ -1946,28 +1946,6 @@ static int pnv_ioda_tce_xchg_no_kill(struct iommu_table *tbl, long index,\n {\n \treturn pnv_tce_xchg(tbl, index, hpa, direction, !realmode);\n }\n-\n-static int pnv_ioda1_tce_xchg(struct iommu_table *tbl, long index,\n-\t\tunsigned long *hpa, enum dma_data_direction *direction)\n-{\n-\tlong ret = pnv_tce_xchg(tbl, index, hpa, direction, true);\n-\n-\tif (!ret)\n-\t\tpnv_pci_p7ioc_tce_invalidate(tbl, index, 1, false);\n-\n-\treturn ret;\n-}\n-\n-static int pnv_ioda1_tce_xchg_rm(struct iommu_table *tbl, long index,\n-\t\tunsigned long *hpa, enum dma_data_direction *direction)\n-{\n-\tlong ret = pnv_tce_xchg(tbl, index, hpa, direction, false);\n-\n-\tif (!ret)\n-\t\tpnv_pci_p7ioc_tce_invalidate(tbl, index, 1, true);\n-\n-\treturn ret;\n-}\n #endif\n \n static void pnv_ioda1_tce_free(struct iommu_table *tbl, long index,\n@@ -1981,8 +1959,6 @@ static void pnv_ioda1_tce_free(struct iommu_table *tbl, long index,\n static struct iommu_table_ops pnv_ioda1_iommu_ops = {\n \t.set = pnv_ioda1_tce_build,\n #ifdef CONFIG_IOMMU_API\n-\t.exchange = pnv_ioda1_tce_xchg,\n-\t.exchange_rm = pnv_ioda1_tce_xchg_rm,\n \t.xchg_no_kill = pnv_ioda_tce_xchg_no_kill,\n \t.tce_kill = pnv_pci_p7ioc_tce_invalidate,\n \t.useraddrptr = pnv_tce_useraddrptr,\n@@ -2113,30 +2089,6 @@ static int pnv_ioda2_tce_build(struct iommu_table *tbl, long index,\n \treturn ret;\n }\n \n-#ifdef CONFIG_IOMMU_API\n-static int pnv_ioda2_tce_xchg(struct iommu_table *tbl, long index,\n-\t\tunsigned long *hpa, enum dma_data_direction *direction)\n-{\n-\tlong ret = pnv_tce_xchg(tbl, index, hpa, direction, true);\n-\n-\tif (!ret)\n-\t\tpnv_pci_ioda2_tce_invalidate(tbl, index, 1, false);\n-\n-\treturn ret;\n-}\n-\n-static int pnv_ioda2_tce_xchg_rm(struct iommu_table *tbl, long index,\n-\t\tunsigned long *hpa, enum dma_data_direction *direction)\n-{\n-\tlong ret = pnv_tce_xchg(tbl, index, hpa, direction, false);\n-\n-\tif (!ret)\n-\t\tpnv_pci_ioda2_tce_invalidate(tbl, index, 1, true);\n-\n-\treturn ret;\n-}\n-#endif\n-\n static void pnv_ioda2_tce_free(struct iommu_table *tbl, long index,\n \t\tlong npages)\n {\n@@ -2148,8 +2100,6 @@ static void pnv_ioda2_tce_free(struct iommu_table *tbl, long index,\n static struct iommu_table_ops pnv_ioda2_iommu_ops = {\n \t.set = pnv_ioda2_tce_build,\n #ifdef CONFIG_IOMMU_API\n-\t.exchange = pnv_ioda2_tce_xchg,\n-\t.exchange_rm = pnv_ioda2_tce_xchg_rm,\n \t.xchg_no_kill = pnv_ioda_tce_xchg_no_kill,\n \t.tce_kill = pnv_pci_ioda2_tce_invalidate,\n \t.useraddrptr = pnv_tce_useraddrptr,\n",
    "prefixes": [
        "kernel",
        "v2",
        "4/4"
    ]
}