From patchwork Tue Dec 6 15:41:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 9462791 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C1BF560231 for ; Tue, 6 Dec 2016 15:41:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B2469283F9 for ; Tue, 6 Dec 2016 15:41:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A69F228428; Tue, 6 Dec 2016 15:41:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 09FDE283F9 for ; Tue, 6 Dec 2016 15:41:15 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CA7B06E3B6; Tue, 6 Dec 2016 15:41:13 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6C39D6E3B6 for ; Tue, 6 Dec 2016 15:41:12 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1C3C620253; Tue, 6 Dec 2016 15:41:11 +0000 (UTC) Received: from redhat.com (pool-173-76-102-160.bstnma.fios.verizon.net [173.76.102.160]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9001F20155; Tue, 6 Dec 2016 15:41:06 +0000 (UTC) Date: Tue, 6 Dec 2016 17:41:05 +0200 From: "Michael S. Tsirkin" To: linux-kernel@vger.kernel.org Subject: [PATCH 10/10] virtio: enable endian checks for sparse builds Message-ID: <1481038106-24899-11-git-send-email-mst@redhat.com> References: <1481038106-24899-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1481038106-24899-1-git-send-email-mst@redhat.com> X-Mailer: git-send-email 2.8.0.287.g0deeb61 X-Mutt-Fcc: =sent X-Virus-Scanned: ClamAV using ClamSMTP Cc: kvm@vger.kernel.org, Neil Armstrong , Jason Wang , linux-remoteproc@vger.kernel.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, Gerd Hoffmann , linux-s390@vger.kernel.org, "James E.J. Bottomley" , Herbert Xu , linux-scsi@vger.kernel.org, Christian Borntraeger , v9fs-developer@lists.sourceforge.net, Asias He , Ohad Ben-Cohen , Arnd Bergmann , linux-kbuild@vger.kernel.org, Jens Axboe , Michal Marek , Stefan Hajnoczi , Matt Mackall , Cornelia Huck , Greg Kroah-Hartman , linux-crypto@vger.kernel.org, netdev@vger.kernel.org, "David S. Miller" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP __CHECK_ENDIAN__ isn't on by default presumably because it triggers too many sparse warnings for correct code. But virtio is now clean of these warnings, and we want to keep it this way - enable this for sparse builds. Signed-off-by: Michael S. Tsirkin Reviewed-by: Jason Wang Reviewed-by: Stefan Hajnoczi --- It seems that there should be a better way to do it, but this works too. drivers/block/Makefile | 1 + drivers/char/Makefile | 1 + drivers/char/hw_random/Makefile | 2 ++ drivers/gpu/drm/virtio/Makefile | 1 + drivers/net/Makefile | 3 +++ drivers/net/caif/Makefile | 1 + drivers/rpmsg/Makefile | 1 + drivers/s390/virtio/Makefile | 2 ++ drivers/scsi/Makefile | 1 + drivers/vhost/Makefile | 1 + drivers/virtio/Makefile | 3 +++ net/9p/Makefile | 1 + net/packet/Makefile | 1 + net/vmw_vsock/Makefile | 2 ++ 14 files changed, 21 insertions(+) diff --git a/drivers/block/Makefile b/drivers/block/Makefile index 1e9661e..597481c 100644 --- a/drivers/block/Makefile +++ b/drivers/block/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_BLK_DEV_OSD) += osdblk.o obj-$(CONFIG_BLK_DEV_UMEM) += umem.o obj-$(CONFIG_BLK_DEV_NBD) += nbd.o obj-$(CONFIG_BLK_DEV_CRYPTOLOOP) += cryptoloop.o +CFLAGS_virtio_blk.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o obj-$(CONFIG_BLK_DEV_SX8) += sx8.o diff --git a/drivers/char/Makefile b/drivers/char/Makefile index 6e6c244..a99467d 100644 --- a/drivers/char/Makefile +++ b/drivers/char/Makefile @@ -6,6 +6,7 @@ obj-y += mem.o random.o obj-$(CONFIG_TTY_PRINTK) += ttyprintk.o obj-y += misc.o obj-$(CONFIG_ATARI_DSP56K) += dsp56k.o +CFLAGS_virtio_console.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_VIRTIO_CONSOLE) += virtio_console.o obj-$(CONFIG_RAW_DRIVER) += raw.o obj-$(CONFIG_SGI_SNSC) += snsc.o snsc_event.o diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile index 5f52b1e..a2b0931 100644 --- a/drivers/char/hw_random/Makefile +++ b/drivers/char/hw_random/Makefile @@ -17,6 +17,8 @@ obj-$(CONFIG_HW_RANDOM_IXP4XX) += ixp4xx-rng.o obj-$(CONFIG_HW_RANDOM_OMAP) += omap-rng.o obj-$(CONFIG_HW_RANDOM_OMAP3_ROM) += omap3-rom-rng.o obj-$(CONFIG_HW_RANDOM_PASEMI) += pasemi-rng.o +CFLAGS_virtio_transport.o += -D__CHECK_ENDIAN__ +CFLAGS_virtio-rng.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_HW_RANDOM_VIRTIO) += virtio-rng.o obj-$(CONFIG_HW_RANDOM_TX4939) += tx4939-rng.o obj-$(CONFIG_HW_RANDOM_MXC_RNGA) += mxc-rnga.o diff --git a/drivers/gpu/drm/virtio/Makefile b/drivers/gpu/drm/virtio/Makefile index 3fb8eac..1162366 100644 --- a/drivers/gpu/drm/virtio/Makefile +++ b/drivers/gpu/drm/virtio/Makefile @@ -3,6 +3,7 @@ # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. ccflags-y := -Iinclude/drm +ccflags-y += -D__CHECK_ENDIAN__ virtio-gpu-y := virtgpu_drv.o virtgpu_kms.o virtgpu_drm_bus.o virtgpu_gem.o \ virtgpu_fb.o virtgpu_display.o virtgpu_vq.o virtgpu_ttm.o \ diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 7336cbd..3f587de 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -12,6 +12,7 @@ obj-$(CONFIG_EQUALIZER) += eql.o obj-$(CONFIG_IFB) += ifb.o obj-$(CONFIG_MACSEC) += macsec.o obj-$(CONFIG_MACVLAN) += macvlan.o +CFLAGS_macvtap.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_MACVTAP) += macvtap.o obj-$(CONFIG_MII) += mii.o obj-$(CONFIG_MDIO) += mdio.o @@ -20,8 +21,10 @@ obj-$(CONFIG_NETCONSOLE) += netconsole.o obj-$(CONFIG_PHYLIB) += phy/ obj-$(CONFIG_RIONET) += rionet.o obj-$(CONFIG_NET_TEAM) += team/ +CFLAGS_tun.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_TUN) += tun.o obj-$(CONFIG_VETH) += veth.o +CFLAGS_virtio_net.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_VIRTIO_NET) += virtio_net.o obj-$(CONFIG_VXLAN) += vxlan.o obj-$(CONFIG_GENEVE) += geneve.o diff --git a/drivers/net/caif/Makefile b/drivers/net/caif/Makefile index 9bbd453..d1a922c 100644 --- a/drivers/net/caif/Makefile +++ b/drivers/net/caif/Makefile @@ -12,3 +12,4 @@ obj-$(CONFIG_CAIF_HSI) += caif_hsi.o # Virtio interface obj-$(CONFIG_CAIF_VIRTIO) += caif_virtio.o +CFLAGS_caif_virtio.o += -D__CHECK_ENDIAN__ diff --git a/drivers/rpmsg/Makefile b/drivers/rpmsg/Makefile index ae9c913..23c8b66 100644 --- a/drivers/rpmsg/Makefile +++ b/drivers/rpmsg/Makefile @@ -1,3 +1,4 @@ obj-$(CONFIG_RPMSG) += rpmsg_core.o obj-$(CONFIG_RPMSG_QCOM_SMD) += qcom_smd.o obj-$(CONFIG_RPMSG_VIRTIO) += virtio_rpmsg_bus.o +CFLAGS_virtio_rpmsg_bus.o += -D__CHECK_ENDIAN__ diff --git a/drivers/s390/virtio/Makefile b/drivers/s390/virtio/Makefile index df40692..270ada5 100644 --- a/drivers/s390/virtio/Makefile +++ b/drivers/s390/virtio/Makefile @@ -6,6 +6,8 @@ # it under the terms of the GNU General Public License (version 2 only) # as published by the Free Software Foundation. +CFLAGS_virtio_ccw.o += -D__CHECK_ENDIAN__ +CFLAGS_kvm_virtio.o += -D__CHECK_ENDIAN__ s390-virtio-objs := virtio_ccw.o ifdef CONFIG_S390_GUEST_OLD_TRANSPORT s390-virtio-objs += kvm_virtio.o diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile index 38d938d..9f70d46 100644 --- a/drivers/scsi/Makefile +++ b/drivers/scsi/Makefile @@ -135,6 +135,7 @@ obj-$(CONFIG_SCSI_BNX2_ISCSI) += libiscsi.o bnx2i/ obj-$(CONFIG_BE2ISCSI) += libiscsi.o be2iscsi/ obj-$(CONFIG_SCSI_ESAS2R) += esas2r/ obj-$(CONFIG_SCSI_PMCRAID) += pmcraid.o +CFLAGS_virtio_scsi.o += -D__CHECK_ENDIAN__ obj-$(CONFIG_SCSI_VIRTIO) += virtio_scsi.o obj-$(CONFIG_VMWARE_PVSCSI) += vmw_pvscsi.o obj-$(CONFIG_XEN_SCSI_FRONTEND) += xen-scsifront.o diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile index 6b012b9..619e2cd 100644 --- a/drivers/vhost/Makefile +++ b/drivers/vhost/Makefile @@ -1,3 +1,4 @@ +ccflags-y := -D__CHECK_ENDIAN__ obj-$(CONFIG_VHOST_NET) += vhost_net.o vhost_net-y := net.o diff --git a/drivers/virtio/Makefile b/drivers/virtio/Makefile index 41e30e3..d331f19 100644 --- a/drivers/virtio/Makefile +++ b/drivers/virtio/Makefile @@ -1,3 +1,6 @@ +#virtio must be kept clean wrt endian tags, +#otherwise we'll get to maintain broken host/guest ABIs +ccflags-y := -D__CHECK_ENDIAN__ obj-$(CONFIG_VIRTIO) += virtio.o virtio_ring.o obj-$(CONFIG_VIRTIO_MMIO) += virtio_mmio.o obj-$(CONFIG_VIRTIO_PCI) += virtio_pci.o diff --git a/net/9p/Makefile b/net/9p/Makefile index a0874cc..acf1225 100644 --- a/net/9p/Makefile +++ b/net/9p/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_NET_9P_RDMA) += 9pnet_rdma.o trans_fd.o \ trans_common.o \ +CFLAGS_trans_virtio.o += -D__CHECK_ENDIAN__ 9pnet_virtio-objs := \ trans_virtio.o \ diff --git a/net/packet/Makefile b/net/packet/Makefile index 9df6134..a13bcb3 100644 --- a/net/packet/Makefile +++ b/net/packet/Makefile @@ -2,6 +2,7 @@ # Makefile for the packet AF. # +ccflags-y := -D__CHECK_ENDIAN__ obj-$(CONFIG_PACKET) += af_packet.o obj-$(CONFIG_PACKET_DIAG) += af_packet_diag.o af_packet_diag-y += diag.o diff --git a/net/vmw_vsock/Makefile b/net/vmw_vsock/Makefile index bc27c70..a61eccb 100644 --- a/net/vmw_vsock/Makefile +++ b/net/vmw_vsock/Makefile @@ -8,6 +8,8 @@ vsock-y += af_vsock.o vsock_addr.o vmw_vsock_vmci_transport-y += vmci_transport.o vmci_transport_notify.o \ vmci_transport_notify_qstate.o +CFLAGS_virtio_transport.o += -D__CHECK_ENDIAN__ +CFLAGS_virtio_transport_common.o += -D__CHECK_ENDIAN__ vmw_vsock_virtio_transport-y += virtio_transport.o vmw_vsock_virtio_transport_common-y += virtio_transport_common.o