From nobody Wed May 14 00:31:13 2025 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org; Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 1488365191012718.1308374832524; Wed, 1 Mar 2017 02:46:31 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coresystems.de) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1cj1lt-0004RC-Rs; Wed, 01 Mar 2017 11:46:13 +0100 Received: from mail-ve1eur01on0130.outbound.protection.outlook.com ([104.47.1.130] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1cj1ll-0004Mo-P5 for seabios@seabios.org; Wed, 01 Mar 2017 11:46:12 +0100 Received: from rkaganb.sw.ru (195.214.232.6) by DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Wed, 1 Mar 2017 10:45:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=TWkJletDiEGEx9acuuN93uudvxQahHExvwfXMu6o4sQ=; b=TXIwOYNxSxUrpShZFZ8TExfQkkxTJWTTlkh8FXn1SQ3pNyYGSp6Go41pOiM2DDEvSK4iaMajYwfYf6t0/iHY5ENlp6VOSPzoh3cuXMjVcX6HNsYuEK+zUg2dY/CQqzxcDJ5x3KMaJluokT2z1WvpcuKqZ4sBrikJ94bl2FCUQkQ= Authentication-Results: seabios.org; dkim=none (message not signed) header.d=none;seabios.org; dmarc=none action=none header.from=virtuozzo.com; From: Roman Kagan To: Date: Wed, 1 Mar 2017 13:45:36 +0300 Message-ID: <20170301104542.7373-4-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170301104542.7373-1-rkagan@virtuozzo.com> References: <20170301104542.7373-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR03CA0038.eurprd03.prod.outlook.com (10.163.170.176) To DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) X-MS-Office365-Filtering-Correlation-Id: 794dd3f0-8336-448a-1d57-08d460901f46 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 3:qSjleckIFv6tOxt309apFtuIOlvd2rRq6I9STfz5U1EMSL7JgDmTl3e3I6seQ4Y05NQxL7km1qKCgAL0FrYp8raigsmT1X8M7BOUvNCSgdsJelEIYi7gsSwJ6mGeiteF9vgFSezbb1rN2o6SX51CT9UynsKAlW1PXko0JYVfmIMQpcshajh7jzWBn/20tfH0sq7QhGvnzgVDSjmfAg2kHsurJ+vZJOU68WIkGewy3KHGIisXEZs1nwQHurAqnYMobXX8uZBQiQr7yLqOccyo3Q==; 25:7SJXp22XckmkQxQa7VAoqUCRgJKZc5pEOI3gen+E+amBU7WA2KNruooDjuprOOVGSFn2T0RJmSYRxerlTHPGuI5cA3jblWT43gdNsepkOWgYb6FXTyQiUP+rVXYv9aDhhTdoKBB7pto3td/wfXq59RNolzjcckK0N2kMaBjHiUqWCEFo+ujxnQIpnjYgOgQEqpPDH7rO5hNbtJIkTyoaMqvKkyBaGbGdixi6YwwO1E0IOC9eGNOPRc3bJuTuaYrbx33rZeTYv4uSoiI50W+fExwcjsGubZdAkF7QSK0WgsOFZ/duUHalQugtqvhLY6nlX9sOApUCBa3HuJDl6juua1fHdP3f1VxHHbelnqBrbSi9YgBUfjY7mOF1fBNCPCiB9Zlz4ZgxyglYtSmKFLVdYChCpeI0cCexDOp1hVkoNTAoXmD6s4vhiTyhtM8e9kAbm5dp8AIAgbZZKcqWZPt/Bw== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 31:jbFmOzw2DQyurURiTRz7RjUes3MlrD3WCstw5AFdMbxDP4I7Kp+APfhFZNwUb1rfeFA9U5Blw8uYrQHN9/U0yLQflILvThCh4wmQqjJ4yvjFbnDl3y8z4zGl1FcaXIfTl//zY6Sf2wahuk+lbr1JU/owNY064uTG4SA4U6+47J19Rif2s5hyiVDFViH5hUEFzsQ14MxbOaLkVoIHoX1MLJcegnwVhMmgZv2TShC642FD6jJtKmqspu+URdpNiJuD0tVe5o8e7vlihYMTG96oEw==; 20:sZMC3YWZeAe1TVDMd8lkxLpBsb0pkDnMC1VEVYJ63bMwKK+CA9rejy14MbQfEVWz74hgMEq+6NfN47oD7WiU53vzNbikpQqWANaP93weXmA2zOBxGpitFSoGMDsU24J7/jwViO2C5n8bauuy0Uk3uRyP5+t5i2rhgZ5aT+B+wnW9GE7J8qteakMPDdkk+3V5LGQJqi3peFSeMG1NzlTNA/GdYPOaeRKP5Nas9XFyhwcaqKv6QvmBLCCBw35MS2FSRqMQ4W0Oi+G5/iI3nuut7RJPRcQHjqplaeW96XkWler8NATK1j9edn5WuZyygVoTBJ0a1yjLJcxQrzY9D22lFmJ21Yw8gAFoloEEytU9OD80cjut9x+JqCSkebhI7qnmDTpo1UUS2wlCucbSK3r0O90Ywpfk64I8ysLV68dyTU0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123558025)(20161123560025)(6072148); SRVR:DB6PR0802MB2469; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 4:1XJSWAnrN4jFAouhnpnopWih989YW2ApXDHR40ubnDKWv7V6T/Gg+OiBfRtlJf/Cvoxf47b8Y7y2kABHg882lPzhwrtNPqh9UudEhUCv2x7s9LMbeRgR1zvoZ3g0AQZlHiEFzpvAYCnPIHEXJsNnF+CBe9tOGkjqT+qAI1lU5nxsTb2x6p6mwoAWSOUv5VwYG2pepcsvZA7tLAquls4jA6HV8my2zZMn3mvhqXe+Mb+vRaiIEovyrsC2gJeDsINlm195VM+1C/siBlGZJvdN69LSnOt7xKI0jgOdSPZ3sXZzTE9g8y5fG5ztgorb2wuNosiAdH+4qT1KMBESdrNOL2dfPJmWCzE7yhy6WqGGexxQOX8AuY1/bSDXzJnEvI7mRJnKnwxBMxQmnMuBPIZLXMhsWhX/FB52edbMqPf1nTuzN5NoXSP1jZOFDnDafqUv9BCwXrBj9qFbcUPQuV7C4gKrrYaH79BbBCvSjU0DD/BQaFpLDd+OYq10ag1w4Yo6HXj0hoSgzWm6wYkrvUd98bm1F4RJwa2kv2sPuhnCI9+t9lRsH0hNGRgNKyVuvuQ+eMw7BBf5dfwgSnJEGhSOO5sAr8gg0ZtPfurbTTbEXHo= X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(39450400003)(36756003)(5660300001)(6486002)(5003940100001)(50986999)(76176999)(6512007)(2906002)(25786008)(2950100002)(450100001)(1076002)(6666003)(33646002)(6916009)(50466002)(6506006)(2351001)(42186005)(38730400002)(53936002)(305945005)(66066001)(92566002)(81166006)(8676002)(86362001)(53416004)(7736002)(110136004)(189998001)(47776003)(6116002)(3846002)(50226002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0802MB2469; H:rkaganb.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0802MB2469; 23:IyqLh/eV7kbAt6tybRouHW4jjPcQe2VWBUDwALu?= =?us-ascii?Q?L18C4B3FKeZTG91ytv7lN48R7LQUuhsrJBTq021Zfv3TpnfpvQ3tRs8H0meX?= =?us-ascii?Q?Cwz6iF+udFyUw/Afdhd4W65J2HkScnMtQkUCX3mE0syZHS+H7C14Blwuga0u?= =?us-ascii?Q?E1ep3IO9lYplgagTjSDzXN+eFNZc6pEi1K5SLzHO+/FhrL23oteVejHhyQIM?= =?us-ascii?Q?tRdFlrWa+9CRE/32jujvWyFqum8O5HGsTlYk5As+PpdYQMkJ/t/grBnoJILI?= =?us-ascii?Q?WrsJBT6DsDjR5yEq1wWmmCJOZqicGXv4HGuvF92PHtfiJ5bDCymTabLTRIFk?= =?us-ascii?Q?gUQ22gnPuQTMuIxIG6eXL1ZBw7y2Jm1AT2juFNNWuEAdN7fzellpBw7ndr37?= =?us-ascii?Q?1TJBz1L+ArKYe4uQ3aeMF0GvRRBC08FFGFVip9qxCQLvVu7cSj2eloR3kyTY?= =?us-ascii?Q?3cIPwB7EFCq8xFDNTwQlPid5ecCpBun2NlQ6J57yU2whe410WGQoofzCLWsd?= =?us-ascii?Q?DsO6C/pZtqXkJLQ7+YwT2m/17e4QBizm1guMO5VYP8t/0aAiJOPId2iFY9PC?= =?us-ascii?Q?LJ+4gdRp5nibGfFJZTEfVawDfYfOD64UiTNlektb+C4DD4SsS77xh2JkKQjN?= =?us-ascii?Q?Avm2QmoPSmSr+VMBkBSaWpr7bw7+4Hv1/Pc3PP2O9JH7u7dyl4YCUuwv1tbe?= =?us-ascii?Q?NsSSJ65Jq98tM+UDYsKlxY82/ywttTB9a5FTzHOLPeNpU2fjfY5+33J8iU9V?= =?us-ascii?Q?ey4w1Y1ElSISZ2KQOamWwueDyrXOBCQIBxCyZOCKQNBIT/AjPqFRkGPAU3SA?= =?us-ascii?Q?IkN88PmDkYeLQjWu0NQk8v6V5ur2rQzi+HN3ApVfcHnn7w7FvMAPeYkShgmq?= =?us-ascii?Q?MQx8v9UmHG6VjRdfYFYG50ILzaMmq+ThdyPrCK0wgqQ3P4C+fZ5lRsr8Wlg2?= =?us-ascii?Q?2KPyQDDUKEd2wOZJ6u/Iu25PpwNijMJ3wjcIIjT9Bpw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 6:VZ5cZefgzJC34Z37ZlTjLR5iqtw5hAucANohukNX1RaqNNKdgvkVCtgYJ4ftBfvP6Me/WQ9Mu8ijTfr8VgR3jmyo1MJdo2u+9ICEx5dH6bkMedO/LNRmbORbGvLvVW3bPQTE2cJPF6kJG1ElPnx4tp+EtLhjMANQZLz2iptxoudH6V7Vh6F07P4pugTcnmEt3Ex/yOJfFN5P4yZ8JC5pievl9z0UMQUYvjA9qr0QX1btddaC5EKf00yvJ1qEXcX2wyXFVlE8XCyzsnNDI3L6JBBAg2v2TLnren4x1Pt5tRg0pa+C1hNwyDXt0gI751+dIz7UbyhH9suhMTf9lk4zB3d3Y5LdgcbQ/AJEeKhriFw7EBZSnY52GWlc9FM4MIm7HyyZYEASvfl2ed8Q/yimGQ==; 5:+QAWIMjK7xQVs6WPosWYAZBq77Iqc2ZdAXgH4wQh7UL63w+4JyKrF/jWSrqpdoQ41XFSJkaFSg0FDEW/azzG1Qc/v5sD7Pn0zegDeGxpxAwCf9cmTwBBAZN0c15zPLpTV/T7AY9Pul6n4tPRQxoQDw==; 24:3Kad3e8wmkGqcHQvEF2BJhG1RvEHBQzJt7qOf4EiQQmczinUGF1DoyQHBdbYV/T5X6iWlqX6SZLNKA4NJDnAkUUk0WYysOM2NVmT8e0K1DE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 7:+OFfguSDMkhLhRS8C6rDcOLTi2UJX9ITNs14zFrNKe9VvUFw8CrYYODZCjX+K1Gofbztvdh2yfopvkMlu9aMA+9EaAZuhukd5Wn7oaSNaz8sejO/Pf2nxtkN79kiN+FhnO2zmZqOG3+0Ur6py9iJtJWeGhB61lCYpq4z/PqGaR7/PpWKYZ7AfsCFfVtwzI5dBmMkV8dvE1QT0OJlClGdUFzBHjPA3kQgh8bscxo+9rokURCu9kjxTMMLO05PYHNcIVSLWxTknRLFdmpK13lOpvnvEvKcmf0eM6ZoT25SEUaDTmtPTelqvYGNlfGz5CljrUDRObced0pd8vM9OU3bDg==; 20:YNcgPHOYJyrON5vJq84WNhJ9PZlUFe/zT1naF+M8ojlfRfLYtGZVmeH+eYrBK7CzGvGkXu5LqEwSCBRvBmG2NDqIVumRvElX0NRXuVlmQJiG+Kq5zTVBGaS6DJbMhJBKtf22sPLWHlC9nRvYne3tYweHtmnQnnmTIQdZwFRD84A= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 10:45:47.9966 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2469 X-Spam-Score: -6.6 (------) Subject: [SeaBIOS] [PATCH 3/9] virtio-scsi: enumerate luns with REPORT LUNS X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Roman Kagan --- src/hw/virtio-scsi.c | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/hw/virtio-scsi.c b/src/hw/virtio-scsi.c index 5fb9409..7490ec0 100644 --- a/src/hw/virtio-scsi.c +++ b/src/hw/virtio-scsi.c @@ -94,15 +94,11 @@ virtio_scsi_process_op(struct disk_op_s *op) return DISK_RET_EBADTRACK; } =20 -static int -virtio_scsi_add_lun(struct pci_device *pci, struct vp_device *vp, - struct vring_virtqueue *vq, u16 target, u16 lun) +static void +virtio_scsi_init_lun(struct virtio_lun_s *vlun, struct pci_device *pci, + struct vp_device *vp, struct vring_virtqueue *vq, + u16 target, u16 lun) { - struct virtio_lun_s *vlun =3D malloc_fseg(sizeof(*vlun)); - if (!vlun) { - warn_noalloc(); - return -1; - } memset(vlun, 0, sizeof(*vlun)); vlun->drive.type =3D DTYPE_VIRTIO_SCSI; vlun->drive.cntl_id =3D pci->bdf; @@ -111,8 +107,22 @@ virtio_scsi_add_lun(struct pci_device *pci, struct vp_= device *vp, vlun->vq =3D vq; vlun->target =3D target; vlun->lun =3D lun; +} =20 - int prio =3D bootprio_find_scsi_device(pci, target, lun); +static int +virtio_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv) +{ + struct virtio_lun_s *tmpl_vlun =3D + container_of(tmpl_drv, struct virtio_lun_s, drive); + struct virtio_lun_s *vlun =3D malloc_fseg(sizeof(*vlun)); + if (!vlun) { + warn_noalloc(); + return -1; + } + virtio_scsi_init_lun(vlun, tmpl_vlun->pci, tmpl_vlun->vp, tmpl_vlun->v= q, + tmpl_vlun->target, lun); + + int prio =3D bootprio_find_scsi_device(vlun->pci, vlun->target, vlun->= lun); int ret =3D scsi_drive_setup(&vlun->drive, "virtio-scsi", prio); if (ret) goto fail; @@ -127,9 +137,13 @@ static int virtio_scsi_scan_target(struct pci_device *pci, struct vp_device *vp, struct vring_virtqueue *vq, u16 target) { - /* TODO: send REPORT LUNS. For now, only LUN 0 is recognized. */ - int ret =3D virtio_scsi_add_lun(pci, vp, vq, target, 0); - return ret < 0 ? 0 : 1; + + struct virtio_lun_s vlun0; + + virtio_scsi_init_lun(&vlun0, pci, vp, vq, target, 0); + + int ret =3D scsi_rep_luns_scan(&vlun0.drive, virtio_scsi_add_lun); + return ret < 0 ? 0 : ret; } =20 static void --=20 2.9.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://www.coreboot.org/mailman/listinfo/seabios