From 4b27e6e80eaca9d38b6b256f8bd1ddf9f1891240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=99=AF=E5=AE=87?= <2537738252@qq.com> Date: Fri, 16 Jan 2026 22:47:45 +0800 Subject: [PATCH 1/2] change EXTRA_CFLAGS to Kbuild ccflags-y --- driver/Makefile | 15 +++++++-------- driver/hvisor.c | 4 ++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/driver/Makefile b/driver/Makefile index e61af0b..77c3312 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -1,13 +1,16 @@ obj-m += hvisor.o obj-m += ivc.o -EXTRA_CFLAGS += " +ccflags-y += -I$(src)/../include +ccflags-y += -Wno-unused-variable +ccflags-y += -Wno-unused-function +ccflags-y += -fno-stack-protector ifeq ($(ARCH), arm64) COMPILE := aarch64-none-linux-gnu- OBJDUMP := aarch64-none-linux-gnu-objdump else ifeq ($(ARCH), riscv) - COMPILE := riscv64-unknown-linux-gnu- - OBJDUMP := riscv64-unknown-linux-gnu-objdump + COMPILE := riscv64-linux-gnu- + OBJDUMP := riscv64-linux-gnu-objdump else ifeq ($(ARCH), loongarch) COMPILE := loongarch64-unknown-linux-gnu- OBJDUMP := loongarch64-unknown-linux-gnu-objdump @@ -19,20 +22,16 @@ else COMPILE := endif -EXTRA_CFLAGS += -I$(PWD)/include -Wno-unused-variable -Wno-unused-function -fno-stack-protector - ivc-y := ivc_driver.o .SECONDARY: \ $(obj)/hivc_template.dtb.S \ $(obj)/hivc_template.dtb -EXTRA_CFLAGS += " - .PHONY: all clean all: - make ARCH=$(ARCH) CROSS_COMPILE=$(COMPILE) -C $(KDIR) M=$(shell pwd) EXTRA_CFLAGS=$(EXTRA_CFLAGS) modules + make ARCH=$(ARCH) CROSS_COMPILE=$(COMPILE) -C $(KDIR) M=$(shell pwd) modules clean: make -C $(KDIR) M=$(shell pwd) clean \ No newline at end of file diff --git a/driver/hvisor.c b/driver/hvisor.c index 767918b..6929d5f 100644 --- a/driver/hvisor.c +++ b/driver/hvisor.c @@ -321,7 +321,7 @@ static irqreturn_t virtio_irq_handler(int irq, void *dev_id) { static int __init hvisor_init(void) { int err; struct device_node *node = NULL; - u32 *irq; + // u32 *irq; err = misc_register(&hvisor_misc_dev); if (err) { pr_err("hvisor_misc_register failed!!!\n"); @@ -352,7 +352,7 @@ static int __init hvisor_init(void) { of_node_put(node); #else // we don't use device tree in x86_64, so we have to get IRQ using hypercall - irq = kmalloc(sizeof(u32), GFP_KERNEL); + u32 *irq = kmalloc(sizeof(u32), GFP_KERNEL); err = hvisor_call(HVISOR_HC_GET_VIRTIO_IRQ, __pa(irq), 0); virtio_irq = *irq; err = request_irq(virtio_irq, virtio_irq_handler, IRQF_SHARED, From 3437861e21b7b27fca5ca79389c2a2424a0feade Mon Sep 17 00:00:00 2001 From: Jingyu Liu <86109975+liulog@users.noreply.github.com> Date: Sat, 17 Jan 2026 17:01:45 +0800 Subject: [PATCH 2/2] Fix Makefile syntax for LOONGARCH64 flags --- driver/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/driver/Makefile b/driver/Makefile index 77c3312..c2215c8 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -14,7 +14,7 @@ else ifeq ($(ARCH), riscv) else ifeq ($(ARCH), loongarch) COMPILE := loongarch64-unknown-linux-gnu- OBJDUMP := loongarch64-unknown-linux-gnu-objdump - EXTRA_CFLAGS += -DLOONGARCH64 + ccflags-y += -DLOONGARCH64 else ifeq ($(ARCH), x86_64) COMPILE := x86_64-linux-gnu- OBJDUMP := x86_64-linux-gnu-objdump @@ -34,4 +34,4 @@ all: make ARCH=$(ARCH) CROSS_COMPILE=$(COMPILE) -C $(KDIR) M=$(shell pwd) modules clean: - make -C $(KDIR) M=$(shell pwd) clean \ No newline at end of file + make -C $(KDIR) M=$(shell pwd) clean