|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH 4/4] xen: address violations of MISRA C:2012 Rule 13.1
On 18.10.2023 16:18, Simone Ballarin wrote:
> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -1504,6 +1504,8 @@ long vcpu_yield(void)
> {
> struct vcpu * v=current;
> spinlock_t *lock;
> + domid_t domain_id;
> + int vcpu_id;
While I realize that the field this variable is initialized from is
plain "int", I still think that being wrong means the new variables
here and below want to be "unsigned int".
> @@ -1515,7 +1517,9 @@ long vcpu_yield(void)
>
> SCHED_STAT_CRANK(vcpu_yield);
>
> - TRACE_2D(TRC_SCHED_YIELD, current->domain->domain_id, current->vcpu_id);
> + domain_id = current->domain->domain_id;
> + vcpu_id = current->vcpu_id;
> + TRACE_2D(TRC_SCHED_YIELD, domain_id, vcpu_id);
If you touch this, I think you ought to also switch to using "v" in
place of "current" (making the supposed side effect go away aiui).
Yet then (for the further changes to this file) - what persistent
side effect does reading "current" have? Clarification of that is
part of the justification for this change, and hence ought to be
spelled out in the description.
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -445,10 +445,12 @@ static void __init cf_check ns16550_init_postirq(struct
> serial_port *port)
> struct msi_info msi = {
> .sbdf = PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1],
> uart->ps_bdf[2]),
> - .irq = rc = uart->irq,
> + .irq = uart->irq,
> .entry_nr = 1
> };
>
> + rc = uart->irq;
> +
> if ( rc > 0 )
If this needs transforming, I think we'd better switch it to
rc = 0;
if ( uart->irq > 0 )
thus matching what we have elsewhere in the function.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |