mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

  • 27 participants
  • 18548 discussions
[openeuler:OLK-6.6 1613/1613] kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
by kernel test robot 15 Dec '24

15 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: 2e1dfc02d115143587ccfee1815ad295763050f2 [1613/1613] sched: Adjust wakeup cpu range according CPU util dynamicly config: loongarch-randconfig-r111-20241210 (https://download.01.org/0day-ci/archive/20241215/202412150117.ww1cPcQk-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce: (https://download.01.org/0day-ci/archive/20241215/202412150117.ww1cPcQk-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412150117.ww1cPcQk-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static? kernel/sched/fair.c:1256:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@ kernel/sched/fair.c:1256:34: sparse: expected struct sched_entity const *se kernel/sched/fair.c:1256:34: sparse: got struct sched_entity [noderef] __rcu * kernel/sched/fair.c:12740:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12740:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12740:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:6633:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:6633:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:6633:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:7964:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:7964:20: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:7964:20: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8258:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:8258:9: sparse: expected struct sched_domain *[assigned] tmp kernel/sched/fair.c:8258:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8367:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:8367:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:8367:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:8941:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:8941:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:8941:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:9934:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/fair.c:9934:40: sparse: expected struct sched_domain *child kernel/sched/fair.c:9934:40: sparse: got struct sched_domain [noderef] __rcu *child kernel/sched/fair.c:10571:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:10571:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:10571:22: sparse: struct task_struct * kernel/sched/fair.c:12012:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12012:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12012:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:11669:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:11669:44: sparse: expected struct sched_domain *sd_parent kernel/sched/fair.c:11669:44: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:12108:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12108:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12108:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/xarray.h, ...): include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false kernel/sched/fair.c:6555:35: sparse: sparse: marked inline, but without a definition kernel/sched/fair.c: note: in included file: kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct * kernel/sched/sched.h:2309:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2309:9: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2309:9: sparse: struct task_struct * kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct * kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct * vim +/sysctl_sched_util_low_pct +175 kernel/sched/fair.c 168 169 #ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY 170 /* 171 * Low utilization threshold for CPU 172 * 173 * (default: 85%), units: percentage of CPU utilization) 174 */ > 175 int sysctl_sched_util_low_pct = 85; 176 #endif 177 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1613/1613] drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: 8248d42b7c5f4338a54f26d8efebec8614b43466 [1613/1613] fbdev: add ls2k500sfb driver for ls2k500 bmc. config: loongarch-randconfig-r111-20241210 (https://download.01.org/0day-ci/archive/20241214/202412142141.pKNBHdWI-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce: (https://download.01.org/0day-ci/archive/20241214/202412142141.pKNBHdWI-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412142141.pKNBHdWI-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *static p @@ got void [noderef] __iomem * @@ drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: expected void *static p drivers/video/fbdev/ls2k500sfb.c:143:27: sparse: got void [noderef] __iomem * >> drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void *static p @@ drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:145:30: sparse: got void *static p >> drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *static p @@ drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:199:36: sparse: got void *static p >> drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:201:37: sparse: got void * >> drivers/video/fbdev/ls2k500sfb.c:254:13: sparse: sparse: symbol 'ls2k500sfb_interrupt' was not declared. Should it be static? drivers/video/fbdev/ls2k500sfb.c:320:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:320:22: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:320:22: sparse: got void * >> drivers/video/fbdev/ls2k500sfb.c:320:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:320:49: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:320:49: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:321:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:321:22: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:321:22: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:321:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:321:53: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:321:53: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:322:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:322:22: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:322:22: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:322:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:322:53: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:322:53: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:323:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:323:22: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:323:22: sparse: got void * drivers/video/fbdev/ls2k500sfb.c:323:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/video/fbdev/ls2k500sfb.c:323:51: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:323:51: sparse: got void * >> drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got char *preg @@ drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: expected void const volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:456:28: sparse: got char *preg >> drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got char *preg @@ drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: expected void volatile [noderef] __iomem *addr drivers/video/fbdev/ls2k500sfb.c:457:32: sparse: got char *preg >> drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@ drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: expected char *penv drivers/video/fbdev/ls2k500sfb.c:569:19: sparse: got void [noderef] __iomem * >> drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *preg @@ got void [noderef] __iomem * @@ drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: expected char *preg drivers/video/fbdev/ls2k500sfb.c:570:19: sparse: got void [noderef] __iomem * drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char *penv @@ got void [noderef] __iomem * @@ drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: expected char *penv drivers/video/fbdev/ls2k500sfb.c:671:14: sparse: got void [noderef] __iomem * drivers/video/fbdev/ls2k500sfb.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/umh.h, include/linux/kmod.h, ...): include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false vim +143 drivers/video/fbdev/ls2k500sfb.c 113 114 static void ls2k500sfb_events_fn(struct work_struct *work) 115 { 116 struct ls2k500sfb_struct *priv = container_of(work, struct ls2k500sfb_struct, work); 117 struct pci_dev *pdev = priv->dev; 118 struct pci_dev *ppdev = pdev->bus->self; 119 uint32_t i, d, timeout, retry = 0; 120 static const uint32_t index[] = { 121 0x10, 0x14, 0x18, 0x1c, 0x20, 0x24, 0x30, 0x3c, 0x54, 0x58, 0x78, 0x7c, 0x80, 4 122 }; 123 124 static uint32_t data[sizeof(index) / 4]; 125 static const uint32_t cindex[] = { 0x10, 0x3c, 4 }; 126 127 static uint32_t cdata[sizeof(cindex) / 4]; 128 static uint32_t d80c, d71c, ctrl; 129 static void *p; 130 131 if (!priv->running) { 132 for (i = 0; i < ARRAY_SIZE(index); i++) 133 pci_read_config_dword(ppdev, index[i], &data[i]); 134 for (i = 0; i < ARRAY_SIZE(cindex); i++) 135 pci_read_config_dword(pdev, cindex[i], &cdata[i]); 136 if (ppdev->vendor == 0x14) { 137 pci_read_config_dword(ppdev, 0x80c, &d80c); 138 d80c = (d80c & ~(3 << 17)) | (1 << 17); 139 140 pci_read_config_dword(ppdev, 0x71c, &d71c); 141 d71c |= 1 << 26; 142 > 143 p = pci_iomap(ppdev, 0, 0x100); 144 } > 145 ctrl = readl(p); 146 return; 147 } 148 local_bh_disable(); 149 pciebreak_smp_send_stop(100); 150 wmb(); /* flush all write before we disable pcie window */ 151 pci_write_config_dword(ppdev, 0x18, 0); 152 pci_write_config_dword(ppdev, 0x1c, 0); 153 pci_write_config_dword(ppdev, 0x20, 0); 154 atomic_set(&waiting_for_pciebreak_ipi, 0); 155 wmb(); /* flush all write after change pcie window */ 156 local_bh_enable(); 157 if (ppdev->vendor == 0x14) { 158 timeout = 10000; 159 while (timeout) { 160 pci_read_config_dword(ppdev, 0x10, &d); 161 d &= ~0xf; 162 if (!d) 163 break; 164 mdelay(1); 165 timeout--; 166 }; 167 if (!timeout) 168 pr_info("bar not clear 0\n"); 169 170 pci_read_config_dword(ppdev, 0x0, &d); 171 pr_info("pcie port deviceid=0x%x recover begin\n", d); 172 retrain: 173 while (1) { 174 pci_write_config_dword(ppdev, index[0], data[0]); 175 pci_read_config_dword(ppdev, index[0], &d); 176 d &= ~0xf; 177 if (d) 178 break; 179 mdelay(1); 180 } 181 182 while (1) { 183 for (i = 0; i < ARRAY_SIZE(index); i++) { 184 if (index[i] != 0x18 && index[i] != 0x1c && index[i] != 0x20) 185 pci_write_config_dword(ppdev, index[i], data[i]); 186 } 187 pci_write_config_dword(ppdev, 0x80c, d80c); 188 pci_write_config_dword(ppdev, 0x71c, d71c); 189 190 pci_read_config_dword(ppdev, 0x10, &d); 191 d &= ~0xf; 192 if (d) 193 break; 194 mdelay(1); 195 } 196 197 timeout = 10000; 198 > 199 writel(ctrl | 0x8, p); 200 while (1) { > 201 d = readl(p + 0xc); 202 if ((d & 0x11) == 0x11) { 203 break; 204 } else if (!timeout) { 205 pr_info("pcie train failed status=0x%x\n", d); 206 goto out; 207 } 208 mdelay(1); 209 timeout--; 210 } 211 212 213 pr_info("pcie recovered done\n"); 214 215 if (!retry) { 216 /*wait u-boot ddr config */ 217 set_current_state(TASK_UNINTERRUPTIBLE); 218 schedule_timeout(HZ*resetbootwait); 219 set_current_state(TASK_RUNNING); 220 pci_read_config_dword(ppdev, 0x10, &d); 221 d &= ~0xf; 222 if (!d) { 223 retry = 1; 224 goto retrain; 225 } 226 } 227 } else { 228 set_current_state(TASK_UNINTERRUPTIBLE); 229 schedule_timeout(HZ*resetbootwait); 230 set_current_state(TASK_RUNNING); 231 } 232 local_bh_disable(); 233 pciebreak_smp_send_stop(10000); 234 wmb(); /* flush all write before we update pcie window */ 235 for (i = 0; i < ARRAY_SIZE(index); i++) 236 pci_write_config_dword(ppdev, index[i], data[i]); 237 238 for (i = 0; i < ARRAY_SIZE(cindex); i++) 239 pci_write_config_dword(pdev, cindex[i], cdata[i]); 240 atomic_set(&waiting_for_pciebreak_ipi, 0); 241 wmb(); /* flush all write after we update pcie window */ 242 local_bh_enable(); 243 244 245 pr_info("redraw console\n"); 246 247 saved_console = fg_console; 248 switch_console(fg_console > 0?fg_console - 1 : fg_console + 1); 249 queue_delayed_work(priv->wq, &priv->redraw_work, HZ); 250 out: 251 priv->running = 0; 252 } 253 > 254 irqreturn_t ls2k500sfb_interrupt(int irq, void *arg) 255 { 256 struct ls2k500sfb_struct *priv = arg; 257 struct pci_dev *pdev = priv->dev; 258 259 if (irq == pdev->irq) 260 pr_info("ls2k500sfb pcie interrupt\n"); 261 else 262 pr_info("ls2k500sfb gpio interrupt\n"); 263 if (system_state != SYSTEM_RUNNING) 264 return IRQ_HANDLED; 265 266 if (!priv->running) { 267 if (!resetdelay || time_after(jiffies, priv->reset_time + resetdelay * HZ)) { 268 priv->running = 1; 269 queue_work(priv->wq, &priv->work); 270 } 271 priv->reset_time = jiffies; 272 } 273 return IRQ_HANDLED; 274 } 275 276 #ifdef CONFIG_LOONGARCH 277 #define GPIO_OEN ((void *)IO_BASE+0x1fe00000+0x500) 278 #define GPIO_FUNCEN ((void *)IO_BASE+0x1fe00000+0x504) 279 #define GPIO_OUT ((void *)IO_BASE+0x1fe00000+0x508) 280 #define GPIO_IN ((void *)IO_BASE+0x1fe00000+0x50c) 281 #define GPIO_INTPOL ((void *)IO_BASE+0x1fe00000+0x510) 282 #define GPIO_INTEN ((void *)IO_BASE+0x1fe00000+0x514) 283 284 static int gpiochip_match_name(struct gpio_chip *chip, void *data) 285 { 286 const char *name = data; 287 288 return !strcmp(chip->label, name); 289 } 290 static int get_gpio_irq_from_acpi_table(int gpio) 291 { 292 struct gpio_chip *chip; 293 struct gpio_desc *desc; 294 295 chip = gpiochip_find("LOON0007:00", gpiochip_match_name); 296 if (!chip) 297 return -ENOENT; 298 desc = gpiochip_request_own_desc(chip, gpio, "reboot", GPIO_LOOKUP_FLAGS_DEFAULT, GPIOD_IN); 299 if (!desc) 300 return -ENOENT; 301 return gpiod_to_irq(desc); 302 } 303 304 static int get_gpio_irq_from_acpi_gsi(int gpio) 305 { 306 int gsi = 16 + (gpio & 7); 307 308 return acpi_register_gsi(NULL, gsi, ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_LOW); 309 } 310 311 static int register_gpio_reboot_handler(struct ls2k500sfb_struct *priv) 312 { 313 int irq = get_gpio_irq_from_acpi_table(GPIO); 314 315 if (irq < 0) { 316 irq = get_gpio_irq_from_acpi_gsi(GPIO); 317 pr_notice("gsi gpio irq %d\n", irq); 318 } else 319 pr_notice("acpi gpio irq %d\n", irq); > 320 writel(readl(GPIO_OEN) | (0x1 << GPIO), GPIO_OEN); 321 writel(readl(GPIO_FUNCEN) & ~(0x1 << GPIO), GPIO_FUNCEN); > 322 writel(readl(GPIO_INTPOL) & ~(0x1 << GPIO), GPIO_INTPOL); > 323 writel(readl(GPIO_INTEN) | (0x1 << GPIO), GPIO_INTEN); 324 if (request_irq(irq, ls2k500sfb_interrupt, IRQF_SHARED | IRQF_TRIGGER_FALLING, 325 "ls2k500sfb", priv)) 326 pr_err("request_irq(%d) failed\n", irq); 327 return 0; 328 } 329 #endif 330 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH OLK-6.6] mm/dynamic_pool: use __GENKSYMS__ to revert the kabi change
by Liu Shixin 14 Dec '24

14 Dec '24
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAO6NS -------------------------------- Revert the kabi change introduced by including <linux/dynamic_pool.h> for kabi trustlist standardization. Fixes: 3b6fa5506d80 ("mm: limit order to 0 when allocated from dynamic pool") Signed-off-by: Liu Shixin <liushixin2(a)huawei.com> --- mm/filemap.c | 2 ++ mm/readahead.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mm/filemap.c b/mm/filemap.c index edc223834cde..77a8947b8e5e 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -47,7 +47,9 @@ #include <linux/splice.h> #include <linux/huge_mm.h> #include <linux/pgtable.h> +#ifndef __GENKSYMS__ #include <linux/dynamic_pool.h> +#endif #include <asm/pgalloc.h> #include <asm/tlbflush.h> #include "internal.h" diff --git a/mm/readahead.c b/mm/readahead.c index 2486c625e724..438f142a3e74 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -128,7 +128,9 @@ #include <linux/blk-cgroup.h> #include <linux/fadvise.h> #include <linux/sched/mm.h> +#ifndef __GENKSYMS__ #include <linux/dynamic_pool.h> +#endif #include "internal.h" -- 2.34.1
2 1
0 0
[openeuler:OLK-6.6 1613/1613] arch/loongarch/kernel/dma.c:37:42: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: 90d2bbc1ade2216bda17fb582a1aaabf7567478f [1613/1613] LoongArch: use arch specific phys_to_dma config: loongarch-randconfig-r111-20241210 (https://download.01.org/0day-ci/archive/20241214/202412141716.TzMSDkUc-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce: (https://download.01.org/0day-ci/archive/20241214/202412141716.TzMSDkUc-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412141716.TzMSDkUc-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> arch/loongarch/kernel/dma.c:37:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void volatile * @@ arch/loongarch/kernel/dma.c:37:42: sparse: expected void const volatile [noderef] __iomem *addr arch/loongarch/kernel/dma.c:37:42: sparse: got void volatile * arch/loongarch/kernel/dma.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/slab.h, ...): include/linux/page-flags.h:242:46: sparse: sparse: self-comparison always evaluates to false vim +37 arch/loongarch/kernel/dma.c 29 30 void acpi_arch_dma_setup(struct device *dev) 31 { 32 int ret; 33 u64 mask, end = 0; 34 const struct bus_dma_region *map = NULL; 35 36 if (node_id_offset == 0) { > 37 node_id_offset = ((readl(LS7A_DMA_CFG) & LS7A_DMA_NODE_MASK) >> LS7A_DMA_NODE_SHF); 38 node_id_offset += 36; 39 } 40 41 ret = acpi_dma_get_range(dev, &map); 42 if (!ret && map) { 43 const struct bus_dma_region *r = map; 44 45 for (end = 0; r->size; r++) { 46 if (r->dma_start + r->size - 1 > end) 47 end = r->dma_start + r->size - 1; 48 } 49 50 mask = DMA_BIT_MASK(ilog2(end) + 1); 51 dev->bus_dma_limit = end; 52 dev->dma_range_map = map; 53 dev->coherent_dma_mask = min(dev->coherent_dma_mask, mask); 54 *dev->dma_mask = min(*dev->dma_mask, mask); 55 } 56 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1636/1636] drivers/iommu/loongarch_iommu.c:610:6: warning: no previous prototype for 'domain_deattach_iommu'
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: 72fe4978ee346c10869113410da1b61710dd8d8f [1636/1636] LoongArch: add iommu support config: loongarch-allmodconfig (https://download.01.org/0day-ci/archive/20241214/202412141302.zMMD8AS7-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412141302.zMMD8AS7-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412141302.zMMD8AS7-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/iommu/loongarch_iommu.c:610:6: warning: no previous prototype for 'domain_deattach_iommu' [-Wmissing-prototypes] 610 | void domain_deattach_iommu(struct dom_info *priv, struct iommu_info *info) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:651:29: warning: no previous prototype for 'lookup_rlooptable' [-Wmissing-prototypes] 651 | struct iommu_rlookup_entry *lookup_rlooptable(int pcisegment) | ^~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:662:25: warning: no previous prototype for 'find_iommu_by_dev' [-Wmissing-prototypes] 662 | struct loongarch_iommu *find_iommu_by_dev(struct pci_dev *pdev) | ^~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:684:22: warning: no previous prototype for 'iommu_init_device' [-Wmissing-prototypes] 684 | struct iommu_device *iommu_init_device(struct device *dev) | ^~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:721:22: warning: no previous prototype for 'la_iommu_probe_device' [-Wmissing-prototypes] 721 | struct iommu_device *la_iommu_probe_device(struct device *dev) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:752:20: warning: no previous prototype for 'get_iommu_info_from_dom' [-Wmissing-prototypes] 752 | struct iommu_info *get_iommu_info_from_dom(struct dom_info *priv, struct loongarch_iommu *iommu) | ^~~~~~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:767:20: warning: no previous prototype for 'domain_attach_iommu' [-Wmissing-prototypes] 767 | struct iommu_info *domain_attach_iommu(struct dom_info *priv, struct loongarch_iommu *iommu) | ^~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:1197:25: warning: no previous prototype for 'loongarch_get_iommu_by_devid' [-Wmissing-prototypes] 1197 | struct loongarch_iommu *loongarch_get_iommu_by_devid(struct pci_dev *pdev) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:1215:6: warning: no previous prototype for 'check_device_compat' [-Wmissing-prototypes] 1215 | bool check_device_compat(struct pci_dev *pdev) | ^~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:1344:29: warning: no previous prototype for 'create_rlookup_entry' [-Wmissing-prototypes] 1344 | struct iommu_rlookup_entry *create_rlookup_entry(int pcisegment) | ^~~~~~~~~~~~~~~~~~~~ >> drivers/iommu/loongarch_iommu.c:1765:19: warning: 'la_iommu_setup' defined but not used [-Wunused-function] 1765 | static int __init la_iommu_setup(char *str) | ^~~~~~~~~~~~~~ -- >> drivers/iommu/loongarch_iommu.c:1663: warning: Function parameter or member 'ivrs' not described in 'get_highest_supported_ivhd_type' vim +/domain_deattach_iommu +610 drivers/iommu/loongarch_iommu.c 609 > 610 void domain_deattach_iommu(struct dom_info *priv, struct iommu_info *info) 611 { 612 if ((priv == NULL) || (info == NULL) || 613 (info->dev_cnt != 0) || (info->iommu == NULL)) { 614 pr_err("%s invalid parameter", __func__); 615 return; 616 } 617 del_domain_from_list(info->iommu, priv); 618 domain_id_free(info->iommu, info->id); 619 spin_lock(&priv->lock); 620 list_del(&info->list); 621 spin_unlock(&priv->lock); 622 kfree(info); 623 } 624 625 static void la_iommu_domain_free(struct iommu_domain *domain) 626 { 627 struct dom_info *priv; 628 struct loongarch_iommu *iommu = NULL; 629 struct iommu_info *info, *tmp; 630 631 priv = to_dom_info(domain); 632 spin_lock(&priv->lock); 633 list_for_each_entry_safe(info, tmp, &priv->iommu_devlist, list) { 634 if (info->dev_cnt > 0) 635 detach_all_dev_by_domain(info); 636 iommu = info->iommu; 637 spin_unlock(&priv->lock); 638 domain_deattach_iommu(priv, info); 639 spin_lock(&priv->lock); 640 iommu_flush_iotlb(iommu); 641 if (!has_dom(iommu)) 642 iommu_translate_disable(iommu); 643 } 644 spin_unlock(&priv->lock); 645 mutex_lock(&priv->ptl_lock); 646 iommu_free_pagetable(priv); 647 mutex_unlock(&priv->ptl_lock); 648 dom_info_free(priv); 649 } 650 > 651 struct iommu_rlookup_entry *lookup_rlooptable(int pcisegment) 652 { 653 struct iommu_rlookup_entry *rlookupentry = NULL; 654 655 list_for_each_entry(rlookupentry, &la_rlookup_iommu_list, list) { 656 if (rlookupentry->pcisegment == pcisegment) 657 return rlookupentry; 658 } 659 return NULL; 660 } 661 > 662 struct loongarch_iommu *find_iommu_by_dev(struct pci_dev *pdev) 663 { 664 int pcisegment; 665 unsigned short devid; 666 struct iommu_rlookup_entry *rlookupentry = NULL; 667 struct loongarch_iommu *iommu = NULL; 668 struct pci_bus *bus = pdev->bus; 669 670 devid = PCI_DEVID(bus->number, pdev->devfn); 671 pcisegment = pci_domain_nr(bus); 672 rlookupentry = lookup_rlooptable(pcisegment); 673 if (rlookupentry == NULL) { 674 pr_info("%s find segment %d rlookupentry failed\n", __func__, 675 pcisegment); 676 return iommu; 677 } 678 iommu = rlookupentry->rlookup_table[devid]; 679 if (iommu && (!iommu->confbase)) 680 iommu = NULL; 681 return iommu; 682 } 683 > 684 struct iommu_device *iommu_init_device(struct device *dev) 685 { 686 struct la_iommu_dev_data *dev_data; 687 struct pci_dev *pdev = to_pci_dev(dev); 688 struct pci_bus *bus = pdev->bus; 689 unsigned short devid; 690 struct loongarch_iommu *iommu = NULL; 691 struct iommu_device *iommu_dev = ERR_PTR(-ENODEV); 692 693 if (!dev_is_pci(dev)) 694 return iommu_dev; 695 696 if (dev->archdata.iommu != NULL || bus == NULL) { 697 pr_info("LA-IOMMU: bdf:0x%x has added\n", pdev->devfn); 698 return iommu_dev; 699 } 700 iommu = find_iommu_by_dev(pdev); 701 if (iommu == NULL) { 702 pci_info(pdev, "%s find iommu failed by dev\n", __func__); 703 return iommu_dev; 704 } 705 dev_data = kzalloc(sizeof(*dev_data), GFP_KERNEL); 706 if (!dev_data) 707 return iommu_dev; 708 devid = PCI_DEVID(bus->number, pdev->devfn); 709 dev_data->bdf = devid; 710 711 pci_info(pdev, "%s bdf %#x iommu dev id %#x\n", __func__, dev_data->bdf, iommu->devid); 712 /* The initial state is 0, and 1 is added only when attach dev */ 713 dev_data->count = 0; 714 dev_data->iommu = iommu; 715 dev_data->dev = dev; 716 dev->archdata.iommu = dev_data; 717 iommu_dev = &iommu->iommu_dev; 718 return iommu_dev; 719 } 720 > 721 struct iommu_device *la_iommu_probe_device(struct device *dev) 722 { 723 return iommu_init_device(dev); 724 } 725 726 static struct iommu_group *la_iommu_device_group(struct device *dev) 727 { 728 struct iommu_group *group; 729 730 /* 731 * We don't support devices sharing stream IDs other than PCI RID 732 * aliases, since the necessary ID-to-device lookup becomes rather 733 * impractical given a potential sparse 32-bit stream ID space. 734 */ 735 if (dev_is_pci(dev)) 736 group = pci_device_group(dev); 737 else 738 group = generic_device_group(dev); 739 return group; 740 } 741 742 static void la_iommu_remove_device(struct device *dev) 743 { 744 struct la_iommu_dev_data *dev_data; 745 746 iommu_group_remove_device(dev); 747 dev_data = dev->archdata.iommu; 748 dev->archdata.iommu = NULL; 749 kfree(dev_data); 750 } 751 > 752 struct iommu_info *get_iommu_info_from_dom(struct dom_info *priv, struct loongarch_iommu *iommu) 753 { 754 struct iommu_info *info; 755 756 spin_lock(&priv->lock); 757 list_for_each_entry(info, &priv->iommu_devlist, list) { 758 if (info->iommu == iommu) { 759 spin_unlock(&priv->lock); 760 return info; 761 } 762 } 763 spin_unlock(&priv->lock); 764 return NULL; 765 } 766 > 767 struct iommu_info *domain_attach_iommu(struct dom_info *priv, struct loongarch_iommu *iommu) 768 { 769 u32 dir_ctrl; 770 struct iommu_info *info; 771 unsigned long phys; 772 773 info = get_iommu_info_from_dom(priv, iommu); 774 if (info) 775 return info; 776 777 info = kzalloc(sizeof(struct iommu_info), GFP_KERNEL_ACCOUNT); 778 if (!info) 779 return NULL; 780 781 INIT_LIST_HEAD(&info->dev_list); 782 info->iommu = iommu; 783 info->id = domain_id_alloc(iommu); 784 if (info->id == -1) { 785 pr_info("%s alloc id for domain failed\n", __func__); 786 kfree(info); 787 return NULL; 788 } 789 790 phys = virt_to_phys(priv->pgd); 791 dir_ctrl = (IOMMU_LEVEL_STRIDE << 26) | (IOMMU_LEVEL_SHIFT(2) << 20); 792 dir_ctrl |= (IOMMU_LEVEL_STRIDE << 16) | (IOMMU_LEVEL_SHIFT(1) << 10); 793 dir_ctrl |= (IOMMU_LEVEL_STRIDE << 6) | IOMMU_LEVEL_SHIFT(0); 794 iommu_write_regl(iommu, LA_IOMMU_DIR_CTRL(info->id), dir_ctrl); 795 iommu_write_regl(iommu, LA_IOMMU_PGD_HI(info->id), phys >> 32); 796 iommu_write_regl(iommu, LA_IOMMU_PGD_LO(info->id), phys & UINT_MAX); 797 798 spin_lock(&priv->lock); 799 list_add(&info->list, &priv->iommu_devlist); 800 spin_unlock(&priv->lock); 801 add_domain_to_list(iommu, priv); 802 return info; 803 } 804 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 2579/2579] kernel/sched/relationship.c:46:51: error: 'struct task_struct' has no member named 'mems_allowed'
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 6c3413fbf8c430b89f5d23f465e10e99ea145199 commit: 2ac826b258e9aceefd719f7b0c3e3a9e73901ce5 [2579/2579] sched: Introduce task relationship by net and memory config: arm64-randconfig-004-20241213 (https://download.01.org/0day-ci/archive/20241214/202412141314.NmcppncZ-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412141314.NmcppncZ-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412141314.NmcppncZ-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from include/linux/sched.h:23, from arch/arm64/include/asm/compat.h:16, from arch/arm64/include/asm/stat.h:13, from include/linux/stat.h:6, from include/linux/module.h:13, from include/linux/bpf.h:20, from include/linux/bpf_sched.h:5, from kernel/sched/relationship.c:19: kernel/sched/relationship.c: In function 'task_relationship_supported': >> kernel/sched/relationship.c:46:51: error: 'struct task_struct' has no member named 'mems_allowed' 46 | !nodes_subset(node_online_map, tsk->mems_allowed) || | ^~ include/linux/nodemask.h:218:51: note: in definition of macro 'nodes_subset' 218 | __nodes_subset(&(src1), &(src2), MAX_NUMNODES) | ^~~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for PGP_KEY_PARSER Depends on [n]: CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] && ASYMMETRIC_PUBLIC_KEY_SUBTYPE [=n] Selected by [y]: - PGP_PRELOAD [=y] && CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] vim +46 kernel/sched/relationship.c 38 39 bool task_relationship_supported(struct task_struct *tsk) 40 { 41 if (!task_relationship_used()) 42 return false; 43 44 if (!tsk->rship || !tsk->mm || 45 !cpumask_subset(cpu_online_mask, tsk->cpus_ptr) || > 46 !nodes_subset(node_online_map, tsk->mems_allowed) || 47 get_task_policy(tsk)->mode == MPOL_BIND || 48 get_task_policy(tsk)->mode == MPOL_INTERLEAVE) 49 return false; 50 51 return true; 52 } 53 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH openEuler-1.0-LTS] netfilter: ipset: add missing range check in bitmap_ip_uadt
by Dong Chenchen 14 Dec '24

14 Dec '24
From: Jeongjun Park <aha310510(a)gmail.com> stable inclusion from stable-v4.19.325 commit 3c20b5948f119ae61ee35ad8584d666020c91581 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/IB9NOX CVE: CVE-2024-53141 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- commit 35f56c554eb1b56b77b3cf197a6b00922d49033d upstream. When tb[IPSET_ATTR_IP_TO] is not present but tb[IPSET_ATTR_CIDR] exists, the values of ip and ip_to are slightly swapped. Therefore, the range check for ip should be done later, but this part is missing and it seems that the vulnerability occurs. So we should add missing range checks and remove unnecessary range checks. Cc: <stable(a)vger.kernel.org> Reported-by: syzbot+58c872f7790a4d2ac951(a)syzkaller.appspotmail.com Fixes: 72205fc68bd1 ("netfilter: ipset: bitmap:ip set type support") Signed-off-by: Jeongjun Park <aha310510(a)gmail.com> Acked-by: Jozsef Kadlecsik <kadlec(a)blackhole.kfki.hu> Signed-off-by: Pablo Neira Ayuso <pablo(a)netfilter.org> Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org> Signed-off-by: Dong Chenchen <dongchenchen2(a)huawei.com> --- net/netfilter/ipset/ip_set_bitmap_ip.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/net/netfilter/ipset/ip_set_bitmap_ip.c b/net/netfilter/ipset/ip_set_bitmap_ip.c index e3257077158f..49a6eec6f12f 100644 --- a/net/netfilter/ipset/ip_set_bitmap_ip.c +++ b/net/netfilter/ipset/ip_set_bitmap_ip.c @@ -166,11 +166,8 @@ bitmap_ip_uadt(struct ip_set *set, struct nlattr *tb[], ret = ip_set_get_hostipaddr4(tb[IPSET_ATTR_IP_TO], &ip_to); if (ret) return ret; - if (ip > ip_to) { + if (ip > ip_to) swap(ip, ip_to); - if (ip < map->first_ip) - return -IPSET_ERR_BITMAP_RANGE; - } } else if (tb[IPSET_ATTR_CIDR]) { u8 cidr = nla_get_u8(tb[IPSET_ATTR_CIDR]); @@ -181,7 +178,7 @@ bitmap_ip_uadt(struct ip_set *set, struct nlattr *tb[], ip_to = ip; } - if (ip_to > map->last_ip) + if (ip < map->first_ip || ip_to > map->last_ip) return -IPSET_ERR_BITMAP_RANGE; for (; !before(ip_to, ip); ip += map->hosts) { -- 2.25.1
2 1
0 0
[PATCH openEuler-1.0-LTS] net: Fix icmp host relookup triggering ip_rt_bug
by Dong Chenchen 14 Dec '24

14 Dec '24
mainline inclusion from mainline-v6.13-rc2 commit c44daa7e3c73229f7ac74985acb8c7fb909c4e0a category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IB515T CVE: NA Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- arp link failure may trigger ip_rt_bug while xfrm enabled, call trace is: WARNING: CPU: 0 PID: 0 at net/ipv4/route.c:1241 ip_rt_bug+0x14/0x20 Modules linked in: CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.0-rc6-00077-g2e1b3cc9d7f7 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 RIP: 0010:ip_rt_bug+0x14/0x20 Call Trace: <IRQ> ip_send_skb+0x14/0x40 __icmp_send+0x42d/0x6a0 ipv4_link_failure+0xe2/0x1d0 arp_error_report+0x3c/0x50 neigh_invalidate+0x8d/0x100 neigh_timer_handler+0x2e1/0x330 call_timer_fn+0x21/0x120 __run_timer_base.part.0+0x1c9/0x270 run_timer_softirq+0x4c/0x80 handle_softirqs+0xac/0x280 irq_exit_rcu+0x62/0x80 sysvec_apic_timer_interrupt+0x77/0x90 The script below reproduces this scenario: ip xfrm policy add src 0.0.0.0/0 dst 0.0.0.0/0 \ dir out priority 0 ptype main flag localok icmp ip l a veth1 type veth ip a a 192.168.141.111/24 dev veth0 ip l s veth0 up ping 192.168.141.155 -c 1 icmp_route_lookup() create input routes for locally generated packets while xfrm relookup ICMP traffic.Then it will set input route (dst->out = ip_rt_bug) to skb for DESTUNREACH. For ICMP err triggered by locally generated packets, dst->dev of output route is loopback. Generally, xfrm relookup verification is not required on loopback interfaces (net.ipv4.conf.lo.disable_xfrm = 1). Skip icmp relookup for locally generated packets to fix it. Fixes: 8b7817f3a959 ("[IPSEC]: Add ICMP host relookup support") Signed-off-by: Dong Chenchen <dongchenchen2(a)huawei.com> Reviewed-by: David Ahern <dsahern(a)kernel.org> Reviewed-by: Eric Dumazet <edumazet(a)google.com> Link: https://patch.msgid.link/20241127040850.1513135-1-dongchenchen2@huawei.com Signed-off-by: Jakub Kicinski <kuba(a)kernel.org> Conflicts: net/ipv4/icmp.c [commit 913c83a610bb("ipv4: Convert icmp_route_lookup() to dscp_t") wasnt merged, which lead to context conflicts] Signed-off-by: Dong Chenchen <dongchenchen2(a)huawei.com> --- net/ipv4/icmp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 4cbc1bb85ac0..e03003a9c6b0 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -525,6 +525,9 @@ static struct rtable *icmp_route_lookup(struct net *net, if (!IS_ERR(rt)) { if (rt != rt2) return rt; + if (inet_addr_type_dev_table(net, route_lookup_dev, + fl4->daddr) == RTN_LOCAL) + return rt; } else if (PTR_ERR(rt) == -EPERM) { rt = NULL; } else -- 2.25.1
2 1
0 0
[openeuler:OLK-5.10 2579/2579] kernel/sched/core.c:8146:29: error: 'root_task_group' undeclared; did you mean 'task_group'?
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 6c3413fbf8c430b89f5d23f465e10e99ea145199 commit: 00d37128abe2687fac974c5d21aa67fac6518c7c [2579/2579] sched: Introduce smart grid scheduling strategy for cfs config: arm64-randconfig-004-20241213 (https://download.01.org/0day-ci/archive/20241214/202412141149.8BSY27XL-lkp@…) compiler: aarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412141149.8BSY27XL-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412141149.8BSY27XL-lkp@intel.com/ All errors (new ones prefixed by >>): kernel/sched/core.c:2746:6: warning: no previous prototype for 'sched_set_stop_task' [-Wmissing-prototypes] 2746 | void sched_set_stop_task(int cpu, struct task_struct *stop) | ^~~~~~~~~~~~~~~~~~~ kernel/sched/core.c: In function 'sched_cpu_activate': kernel/sched/core.c:8012:9: error: implicit declaration of function 'tg_update_affinity_domains'; did you mean 'irq_update_affinity_desc'? [-Werror=implicit-function-declaration] 8012 | tg_update_affinity_domains(cpu, 1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | irq_update_affinity_desc kernel/sched/core.c: In function 'sched_init_smp': kernel/sched/core.c:8146:9: error: implicit declaration of function 'init_auto_affinity'; did you mean 'irq_set_affinity'? [-Werror=implicit-function-declaration] 8146 | init_auto_affinity(&root_task_group); | ^~~~~~~~~~~~~~~~~~ | irq_set_affinity >> kernel/sched/core.c:8146:29: error: 'root_task_group' undeclared (first use in this function); did you mean 'task_group'? 8146 | init_auto_affinity(&root_task_group); | ^~~~~~~~~~~~~~~ | task_group kernel/sched/core.c:8146:29: note: each undeclared identifier is reported only once for each function it appears in cc1: some warnings being treated as errors Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for PGP_KEY_PARSER Depends on [n]: CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] && ASYMMETRIC_PUBLIC_KEY_SUBTYPE [=n] Selected by [y]: - PGP_PRELOAD [=y] && CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] vim +8146 kernel/sched/core.c 8121 8122 void __init sched_init_smp(void) 8123 { 8124 sched_init_numa(); 8125 set_sched_cluster(); 8126 8127 /* 8128 * There's no userspace yet to cause hotplug operations; hence all the 8129 * CPU masks are stable and all blatant races in the below code cannot 8130 * happen. 8131 */ 8132 mutex_lock(&sched_domains_mutex); 8133 sched_init_domains(cpu_active_mask); 8134 mutex_unlock(&sched_domains_mutex); 8135 8136 /* Move init over to a non-isolated CPU */ 8137 if (set_cpus_allowed_ptr(current, housekeeping_cpumask(HK_FLAG_DOMAIN)) < 0) 8138 BUG(); 8139 sched_init_granularity(); 8140 8141 init_sched_rt_class(); 8142 init_sched_dl_class(); 8143 8144 sched_smp_initialized = true; 8145 > 8146 init_auto_affinity(&root_task_group); 8147 } 8148 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1636/1636] arch/loongarch/kernel/paravirt.c:302:35: error: 'mp_ops' undeclared; did you mean 'smp_ops'?
by kernel test robot 14 Dec '24

14 Dec '24
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: d68dc6ee371ec5466be9b2d76bdca0b360940adc commit: b6239f748d0d896e39b9d41f108163bdb235b8bd [1636/1636] LoongArch: Fix AP booting issue in VM mode config: loongarch-randconfig-002-20241213 (https://download.01.org/0day-ci/archive/20241214/202412141010.py9YL9Li-lkp@…) compiler: loongarch64-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241214/202412141010.py9YL9Li-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202412141010.py9YL9Li-lkp@intel.com/ All errors (new ones prefixed by >>): | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:335:27: note: previous definition of '__setup_str_parse_no_stealacc' with type 'const char[13]' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:30:1: note: in expansion of macro 'early_param' 30 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: error: redefinition of '__setup_parse_no_stealacc' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: note: previous definition of '__setup_parse_no_stealacc' with type 'struct obs_kernel_param' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:30:1: note: in expansion of macro 'early_param' 30 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:103:13: error: redefinition of 'steal_acc' 103 | static bool steal_acc = true; | ^~~~~~~~~ arch/loongarch/kernel/paravirt.c:75:13: note: previous definition of 'steal_acc' with type 'bool' {aka '_Bool'} 75 | static bool steal_acc = true; | ^~~~~~~~~ arch/loongarch/kernel/paravirt.c:105:19: error: redefinition of 'parse_no_stealacc' 105 | static int __init parse_no_stealacc(char *arg) | ^~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:77:19: note: previous definition of 'parse_no_stealacc' with type 'int(char *)' 77 | static int __init parse_no_stealacc(char *arg) | ^~~~~~~~~~~~~~~~~ include/linux/init.h:335:27: error: redefinition of '__setup_str_parse_no_stealacc' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:110:1: note: in expansion of macro 'early_param' 110 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:335:27: note: previous definition of '__setup_str_parse_no_stealacc' with type 'const char[13]' 335 | static const char __setup_str_##unique_id[] __initconst \ | ^~~~~~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: error: redefinition of '__setup_parse_no_stealacc' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:110:1: note: in expansion of macro 'early_param' 110 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ include/linux/init.h:337:40: note: previous definition of '__setup_parse_no_stealacc' with type 'struct obs_kernel_param' 337 | static struct obs_kernel_param __setup_##unique_id \ | ^~~~~~~~ include/linux/init.h:357:9: note: in expansion of macro '__setup_param' 357 | __setup_param(str, fn, fn, 1) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:82:1: note: in expansion of macro 'early_param' 82 | early_param("no-steal-acc", parse_no_stealacc); | ^~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:112:12: error: redefinition of 'paravt_steal_clock' 112 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:84:12: note: previous definition of 'paravt_steal_clock' with type 'u64(int)' {aka 'long long unsigned int(int)'} 84 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c: In function 'pv_send_ipi_single': arch/loongarch/kernel/paravirt.c:149:24: error: 'KVM_HCALL_FUNC_PV_IPI' undeclared (first use in this function); did you mean 'KVM_HCALL_FUNC_IPI'? 149 | kvm_hypercall3(KVM_HCALL_FUNC_PV_IPI, 1, 0, min); | ^~~~~~~~~~~~~~~~~~~~~ | KVM_HCALL_FUNC_IPI arch/loongarch/kernel/paravirt.c:149:24: note: each undeclared identifier is reported only once for each function it appears in arch/loongarch/kernel/paravirt.c: In function 'pv_send_ipi_mask': arch/loongarch/kernel/paravirt.c:188:40: error: 'KVM_HCALL_FUNC_PV_IPI' undeclared (first use in this function); did you mean 'KVM_HCALL_FUNC_IPI'? 188 | kvm_hypercall3(KVM_HCALL_FUNC_PV_IPI, | ^~~~~~~~~~~~~~~~~~~~~ | KVM_HCALL_FUNC_IPI arch/loongarch/kernel/paravirt.c: In function 'pv_ipi_init': >> arch/loongarch/kernel/paravirt.c:302:35: error: 'mp_ops' undeclared (first use in this function); did you mean 'smp_ops'? 302 | native_ops = mp_ops; | ^~~~~~ | smp_ops arch/loongarch/kernel/paravirt.c: At top level: arch/loongarch/kernel/paravirt.c:385:13: error: redefinition of 'pv_disable_steal_time' 385 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:239:13: note: previous definition of 'pv_disable_steal_time' with type 'void(void)' 239 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:415:13: error: redefinition of 'pv_cpu_reboot' 415 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:311:13: note: previous definition of 'pv_cpu_reboot' with type 'void(void *)' 311 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:420:12: error: redefinition of 'pv_reboot_notify' 420 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:316:12: note: previous definition of 'pv_reboot_notify' with type 'int(struct notifier_block *, long unsigned int, void *)' 316 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:426:30: error: redefinition of 'pv_reboot_nb' 426 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:323:30: note: previous definition of 'pv_reboot_nb' with type 'struct notifier_block' 323 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:430:12: error: redefinition of 'pv_time_init' 430 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:327:12: note: previous definition of 'pv_time_init' with type 'int(void)' 327 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:469:12: error: redefinition of 'pv_enable_steal_time' 469 | static int pv_enable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:361:12: note: previous definition of 'pv_enable_steal_time' with type 'int(void)' 361 | static int pv_enable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:493:13: error: redefinition of 'pv_disable_steal_time' 493 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:385:13: note: previous definition of 'pv_disable_steal_time' with type 'void(void)' 385 | static void pv_disable_steal_time(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:500:12: error: redefinition of 'pv_time_cpu_online' 500 | static int pv_time_cpu_online(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:392:12: note: previous definition of 'pv_time_cpu_online' with type 'int(unsigned int)' 392 | static int pv_time_cpu_online(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:511:12: error: redefinition of 'pv_time_cpu_down_prepare' 511 | static int pv_time_cpu_down_prepare(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:403:12: note: previous definition of 'pv_time_cpu_down_prepare' with type 'int(unsigned int)' 403 | static int pv_time_cpu_down_prepare(unsigned int cpu) | ^~~~~~~~~~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:523:13: error: redefinition of 'pv_cpu_reboot' 523 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:415:13: note: previous definition of 'pv_cpu_reboot' with type 'void(void *)' 415 | static void pv_cpu_reboot(void *unused) | ^~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:528:12: error: redefinition of 'pv_reboot_notify' 528 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:420:12: note: previous definition of 'pv_reboot_notify' with type 'int(struct notifier_block *, long unsigned int, void *)' 420 | static int pv_reboot_notify(struct notifier_block *nb, unsigned long code, void *unused) | ^~~~~~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:534:30: error: redefinition of 'pv_reboot_nb' 534 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:426:30: note: previous definition of 'pv_reboot_nb' with type 'struct notifier_block' 426 | static struct notifier_block pv_reboot_nb = { | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:538:12: error: redefinition of 'pv_time_init' 538 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:327:12: note: previous definition of 'pv_time_init' with type 'int(void)' 327 | int __init pv_time_init(void) | ^~~~~~~~~~~~ arch/loongarch/kernel/paravirt.c:84:12: warning: 'paravt_steal_clock' defined but not used [-Wunused-function] 84 | static u64 paravt_steal_clock(int cpu) | ^~~~~~~~~~~~~~~~~~ vim +302 arch/loongarch/kernel/paravirt.c 295 296 int __init pv_ipi_init(void) 297 { 298 if (!kvm_para_has_feature(KVM_FEATURE_IPI)) 299 return 0; 300 301 #ifdef CONFIG_SMP > 302 native_ops = mp_ops; 303 smp_ops.init_ipi = pv_init_ipi; 304 smp_ops.send_ipi_single = pv_send_ipi_single; 305 smp_ops.send_ipi_mask = pv_send_ipi_mask; 306 #endif 307 308 return 0; 309 } 310 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • ...
  • 1855
  • Older →

HyperKitty Powered by HyperKitty