Show a cover letter.

GET /api/1.2/covers/2230180/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2230180,
    "url": "http://patchwork.ozlabs.org/api/1.2/covers/2230180/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260429122617.7324-1-ilpo.jarvinen@linux.intel.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260429122617.7324-1-ilpo.jarvinen@linux.intel.com>",
    "list_archive_url": null,
    "date": "2026-04-29T12:26:06",
    "name": "[00/11] PCI: pci_resource_alignment() improvement + cleanups",
    "submitter": {
        "id": 83553,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/83553/?format=api",
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@linux.intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260429122617.7324-1-ilpo.jarvinen@linux.intel.com/mbox/",
    "series": [
        {
            "id": 502050,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/502050/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=502050",
            "date": "2026-04-29T12:26:06",
            "name": "PCI: pci_resource_alignment() improvement + cleanups",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/502050/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2230180/comments/",
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-53385-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=VQpPlTT1;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-53385-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"VQpPlTT1\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=192.198.163.18",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.intel.com"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5Gkz2jLPz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 22:26:51 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 6C8EC3016ED5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 12:26:32 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 09062399023;\n\tWed, 29 Apr 2026 12:26:31 +0000 (UTC)",
            "from mgamail.intel.com (mgamail.intel.com [192.198.163.18])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id E0A7A390235;\n\tWed, 29 Apr 2026 12:26:28 +0000 (UTC)",
            "from fmviesa006.fm.intel.com ([10.60.135.146])\n  by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Apr 2026 05:26:28 -0700",
            "from ijarvine-mobl1.ger.corp.intel.com (HELO localhost)\n ([10.245.245.212])\n  by fmviesa006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Apr 2026 05:26:24 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777465590; cv=none;\n b=qdfzP/UUtDp+p9ATH7EEiBB3SdYHJRWQdRAeVnK4MqpDJEhVGCudRBfrNWtXXh8bq5WJ9fx1bpx1WxE/VfUp6nX51tJfHT3gsqYepnwTzVjwzhFtkBgBVkmBCBdVYqiE1PWnX0y8aEqFf7X+aUO+FQC1mwWw+mwM86uz/DPpbvI=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777465590; c=relaxed/simple;\n\tbh=StUIvDAZe7jSwmt+KbusiTw3cp/VUh8LhDiUJd1ZEnM=;\n\th=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type;\n b=E5zQeAm10NwWGjqqtDvnQnSfsmmW7c5zWYABxQxc9GblndB81j6sfi00DhG4n3dsTbnkzGVN6tHPLrryQnNP0cDxbX0xzojS3pnDqMKkS4qT4XS7j9oyYStnrySyqfjlSyt/8HPt4BGxJyqmtdqswHJJ+3B4QRC3e0ItqBolkJQ=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com;\n spf=pass smtp.mailfrom=linux.intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=VQpPlTT1; arc=none smtp.client-ip=192.198.163.18",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1777465589; x=1809001589;\n  h=from:to:cc:subject:date:message-id:mime-version:\n   content-transfer-encoding;\n  bh=StUIvDAZe7jSwmt+KbusiTw3cp/VUh8LhDiUJd1ZEnM=;\n  b=VQpPlTT1VLTLo0P0/zRjuHxOVGv8C6pVOhYNAA9Y6Z0aLOWg9Zk17TWP\n   2iUHy1SlFYHe61LMOqCOBL3ZUoI4n+Cq4I59ywdOmWgSCg6XfM7DFVERV\n   AU6RCb8DaV1OEK596elepHGI8/vZeIOo2QOLzVtDDnyJpYeCQVcfWYJ1H\n   b/y4zp9K8sSRmkIOaMC+RYUUxGabLeUgEzSbox9DFz8g+B73T8QZOEoOU\n   Xj4aTJIV7GdH2HSVDM3Y9gnTNgCyq0RGD/J8GPrpjOT7uRXHWGlgHUmn+\n   m7QIHNylQ2xp6elUyFHPqvJ+qLQ5ZEUj4MOIr5GBIqwvrd7malHWSib/p\n   w==;",
        "X-CSE-ConnectionGUID": [
            "R19vFmwvS3eICsDRe9FlNw==",
            "e2ynKkGnQ/mCfV7EGabTDQ=="
        ],
        "X-CSE-MsgGUID": [
            "1u9xOIr3Q1+lHXTCppVi0Q==",
            "UMOQ/jvuTpGe6w8nQEajNg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11770\"; a=\"77557641\"",
            "E=Sophos;i=\"6.23,206,1770624000\";\n   d=\"scan'208\";a=\"77557641\"",
            "E=Sophos;i=\"6.23,206,1770624000\";\n   d=\"scan'208\";a=\"229669615\""
        ],
        "X-ExtLoop1": "1",
        "From": "=?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>",
        "To": "linux-pci@vger.kernel.org,\n\tBjorn Helgaas <bhelgaas@google.com>,\n\tShawn Jin <shawn.jin@asteralabs.com>,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tMadhavan Srinivasan <maddy@linux.ibm.com>,\n\tMichael Ellerman <mpe@ellerman.id.au>,\n\tNicholas Piggin <npiggin@gmail.com>",
        "Cc": "linux-kernel@vger.kernel.org,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>",
        "Subject": "[PATCH 00/11] PCI: pci_resource_alignment() improvement + cleanups",
        "Date": "Wed, 29 Apr 2026 15:26:06 +0300",
        "Message-Id": "<20260429122617.7324-1-ilpo.jarvinen@linux.intel.com>",
        "X-Mailer": "git-send-email 2.39.5",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "pci_resource_alignment() returns 0 when resource is already assigned\nand in case of disabled bridge windows. This has caused problems to\ncalculations relying on pci_resource_alignment():\n\nhttps://lore.kernel.org/linux-pci/LV8P221MB1472A24B9975F7C8E8D6BF929947A@LV8P221MB1472.NAMP221.PROD.OUTLOOK.COM/\n\nThis series reworks pci_resource_alignment() interface to return always\nnon-zero alignment if the resource exists. For assigned bridge windows,\nthe calculation is using heuristic based on size and start address\nalignment as calculating the alignment again is costly (would require\nsizing the entire sub-hierarchy).\n\nAs pci_resource_alignment() is becoming more complicated, it's also\nmoved to setup-res.c. While moving pci_resource_alignment()'s arguments\nare converted into const to tell compiler it can rely on resource\nremaining the same across the call.\n\nThis was intended to be part of a larger series that addresses some\nshortcomings in pci=realloc. The pci=realloc changes will recalculate\nbridge window sizes considering also assigned resources which required\nmaking these changes to pci_resource_alignment().\n\nAs this also relates to the issue linked above, I'm sending it already\nnow without pci=realloc changes that are still incomplete. The first\npatches originate from the large pci=realloc work but seem generally\nuseful even if independent of the alignment improvements so I've\nincluded them here without reorganizing the series to contain only\nalignment related changes.\n\nIlpo Järvinen (11):\n  PCI: Log all resource claims\n  PCI: Rename added to add_list\n  PCI: Consolidate add_list (aka realloc_head) empty sanity checks\n  PCI: Remove const removal cast\n  resource: Make resource_alignment() input const resource\n  powerpc/pseries: Make pseries_get_iov_fw_value() & pnv_iov_get()\n    pci_dev const\n  PCI: Make pci_sriov_resource_alignment() pci_dev const\n  PCI: Convert pci_resource_alignment() input parameters to const\n  PCI: Move pci_resource_alignment() to setup-res.c file\n  PCI: Lower bound bridge windown alignment\n  PCI: Return valid alignment for assigned resources\n\n arch/powerpc/include/asm/machdep.h         |  2 +-\n arch/powerpc/kernel/pci-common.c           |  2 +-\n arch/powerpc/platforms/powernv/pci-sriov.c |  4 +-\n arch/powerpc/platforms/powernv/pci.h       |  5 ++-\n arch/powerpc/platforms/pseries/setup.c     |  5 ++-\n drivers/pci/iov.c                          |  7 +--\n drivers/pci/pci.h                          | 24 ++++-------\n drivers/pci/setup-bus.c                    | 50 ++++++++++++----------\n drivers/pci/setup-cardbus.c                |  2 +-\n drivers/pci/setup-res.c                    | 37 ++++++++++++++++\n include/linux/ioport.h                     |  2 +-\n include/linux/pci.h                        |  8 ++--\n kernel/resource.c                          |  2 +-\n 13 files changed, 94 insertions(+), 56 deletions(-)\n\n\nbase-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731"
}