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 2
quoted
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