Hello Dan,
Thanks for your email. By reading the code I think "break" was not the
intension, rather to restart from "do {" the timer instance "ampopts"
property is 0. The purpose was to scan for the next GPTIMER instance,
therefore nnp is set to np.
Best Regards,
Daniel Hellstrom
Software Section Head
Cobham Gaisler
T : +46 (0) 31 775 8657
F : +46 (0) 31 421407
daniel.hellstrom@xxxxxxxxxxx
Cobham Gaisler AB, Kungsgatan 12, SE-411 19, GÖTEBORG, Sweden.
+46 (0) 31 775 8650, www.cobham.com/gaisler
Please consider the environment before printing this email
This e-mail and any files transmitted with it ("E-mail") is intended solely for the addressee(s) and may contain confidential and/or legally privileged information. If you are not the addressee(s), any disclosure,
reproduction, copying, distribution or other use of the E-mail is prohibited. If you have received this E-mail in error, please delete it and notify the sender immediately via our switchboard or return e-mail.
Neither the company nor any subsidiary or affiliate or associated company nor any individual sending this Email accepts any liability in respect of the content (including errors and omissions) nor shall this e-mail be deemed to enter the company or any subsidiary or affiliate or associated company into a contract or to create any legally binding obligations unless expressly agreed to in writing under separate cover and timeliness of the E-mail which arise as a result of transmission. If verification is required, please request a hard copy version from the sender.
On 2016-11-24 13:19, Dan Carpenter wrote:
Hello Daniel Hellstrom,
The patch 2791c1a43900: "SPARC/LEON: added support for selecting
Timer Core and Timer within core" from Jan 4, 2011, leads to the
following static checker warning:
arch/sparc/kernel/leon_kernel.c:368 leon_init_timers()
warn: continue to end of do { ... } while(0); loop
arch/sparc/kernel/leon_kernel.c
350 /* Find GPTIMER Timer Registers base address otherwise bail out. */
351 nnp = rootnp;
352 do {
353 np = of_find_node_by_name(nnp, "GAISLER_GPTIMER");
354 if (!np) {
355 np = of_find_node_by_name(nnp, "01_011");
356 if (!np)
357 goto bad;
358 }
359
360 ampopts = 0;
361 pp = of_find_property(np, "ampopts", &len);
362 if (pp) {
363 ampopts = *(int *)pp->value;
364 if (ampopts == 0) {
365 /* Skip this instance, resource already
366 * allocated by other OS */
367 nnp = np;
368 continue;
"continue" and "break" mean the same thing here. Please use break, if
that's what was intended.
369 }
370 }
371
372 /* Select Timer-Instance on Timer Core. Default is zero */
373 leon3_gptimer_idx = ampopts & 0x7;
374
375 pp = of_find_property(np, "reg", &len);
376 if (pp)
377 leon3_gptimer_regs = *(struct leon3_gptimer_regs_map **)
378 pp->value;
379 pp = of_find_property(np, "interrupts", &len);
380 if (pp)
381 leon3_gptimer_irq = *(unsigned int *)pp->value;
382 } while (0);
regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html