diff --git a/driver/Makefile b/driver/Makefile index e61af0b..c2215c8 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -1,17 +1,20 @@ 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 - EXTRA_CFLAGS += -DLOONGARCH64 + ccflags-y += -DLOONGARCH64 else ifeq ($(ARCH), x86_64) COMPILE := x86_64-linux-gnu- OBJDUMP := x86_64-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 + make -C $(KDIR) M=$(shell pwd) clean 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,