From owner-freebsd-current@freebsd.org Wed Mar 14 22:43:54 2018 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2918CF4F3E4 for ; Wed, 14 Mar 2018 22:43:54 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C8C057AC17; Wed, 14 Mar 2018 22:43:53 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id 403FF5A9F12; Wed, 14 Mar 2018 22:43:47 +0000 (UTC) Date: Wed, 14 Mar 2018 22:43:47 +0000 From: Brooks Davis To: sobomax@freebsd.org Cc: freebsd-current@freebsd.org Subject: md(4) ioctl ABI broken by r322969 Message-ID: <20180314224347.GA46152@spindle.one-eyed-alien.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="0OAP2g/MAC+5xKAE" Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2018 22:43:54 -0000 --0OAP2g/MAC+5xKAE Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, I just noticed that r322969 consumed part of md_pad in struct md_ioctl. In moving the start of md_pad this broke the ABI of MDIOCLIST. At a glance it looks like the struct was sufficiently incompetently padded to begin with that the change of adding a char * and subtracting an int did not change the size of the struct and break all the ioctls, but this definitely warranted a comment in the commit. At this point I'm not sure what the right thing to do is. MDIOCLIST isn't used by anything in the base system and is broken by design so just deleting it might be acceptable. A somewhat better approach would be to delete it from public view and fix it up with a compatibility shim so it works for old code. We could put that under COMPAT11. I have a patch it the works that would make that easier to do. -- Brooks --0OAP2g/MAC+5xKAE Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJaqaWiAAoJEKzQXbSebgfAcnoH/Rsr7w96fpyiDTBwg8yOnNDv UBVdbjMuDorL0qbfkW0uQcXXyU1voVjFKwTMxyrEDNu84VdpwG9NrEn+wiB3HcI+ Ui6JI4YWENF4Ld+1aR6pqhgsr0kOMET+EkNdkid/X03Z8JAeyQfomZ5QN/WmmAE9 Fp5roHqbxJg2i1bo0xoRIVCEcBtn4Foe+hk2Mx/PEgIhXOQH+GYod4KGHzeOgGmF QzorryY/8DG1B/9gMTljzNwExtpdwWdtIeejoFWz4/ijEGaVk0xfcdRV0QoD4g7K 2jQmeV86tiSCQjMAQAH0bahR/jLLt0KhsHVNBuLJCIW7EWB29npzCqUfueAkkzs= =di4n -----END PGP SIGNATURE----- --0OAP2g/MAC+5xKAE--