A Andy Shevchenko #
Message details and related content
On Tue, Jun 12, 2018 at 5:20 PM, Andy Shevchenko [off-list ref] wrote:
On Tue, Jun 12, 2018 at 12:38 PM, Baoquan He [off-list ref] wrote:quoted
On 06/12/18 at 11:29am, Andy Shevchenko wrote:quoted
On Tue, Jun 12, 2018 at 6:28 AM, Baoquan He [off-list ref] wrote:quoted
quoted
quoted
+{quoted
+ for (pp = &parent->child; (p = *pp) != NULL; pp = &p->sibling) { + if (p->end < res->start) + continue; + if (res->end < p->start) + break;quoted
+ if (p->start < res->start || p->end > res->end) + return -1; /* not completely contained */Usually we are expecting real eeror codes.Hmm, I just copied it from arch/powerpc/kernel/pci-common.c. The function interface expects an integer returned value, not sure what a real error codes look like, could you give more hints? Will change accordingly.I briefly looked at the code and error codes we have, so, my proposal is one of the following
- use -ECANCELED (not the best choice for first occurrence here, though I can't find better)
Actually -ENOTSUPP might suit the first case (although the actual
would be something like -EOVERLAP, which we don't have)
- use positive integers (or enum), like #define RES_REPARENTED 0 #define RES_OVERLAPPED 1 #define RES_NOCONFLICT 2quoted
quoted
quoted
+ if (firstpp == NULL) + firstpp = pp; + }quoted
+ if (firstpp == NULL) + return -1; /* didn't find any conflicting entries? */Ditto.Ditto.quoted
quoted
quoted
+} +EXPORT_SYMBOL(reparent_resources);-- With Best Regards, Andy Shevchenko
-- With Best Regards, Andy Shevchenko