On 17-06-30 06:02:32, Jan Beulich wrote:
> >>> Yi Sun <yi.y....@linux.intel.com> 06/30/17 1:30 PM >>>
> >The input 'type' is CODE. The props->type[0] is DATA and props->type[1] is 
> >CODE.
> >In the first iteration, the props->type[0] is DATA so that it does not match
> >'type' and the second check is false too. If we use else branch here, it will
> >enter the branch and return -EVINVAL. But this is not we want, right? We hope
> >the second iteration should be executed to set CODE.
>  
> I see. That'll then call for yet another solution; I don't think the code 
> should
> stay as is.
> 
Then, how about ASSERT() at the beginning to check if input 'type' is correct?
    enum cbm_type {
        PSR_CBM_TYPE_L3,
        PSR_CBM_TYPE_L3_DATA,
        PSR_CBM_TYPE_L3_CODE,
        PSR_CBM_TYPE_L2,
    };

    ASSERT((type >= props->type[0] && type <= props->type[props->cos_num - 1]) 
||
           type == props->alt_type);

We don't need 'ret' anymore with above check.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to