Re: [RFC c/r 2/4] [RFC] syscalls, x86: Add __NR_kcmp syscall v7

From: Cyrill Gorcunov
Date: Fri Jan 27 2012 - 15:47:12 EST


On Fri, Jan 27, 2012 at 03:19:07PM -0500, KOSAKI Motohiro wrote:
...
> > +
> > + if (filp1 && filp2)
> > + ret = kcmp_ptr((long)filp1, (long)filp2, KCMP_FILE);
> > + else
> > + ret = -ENOENT;
>
> If my remember is correct, Andrew pointed out EINVAL is better than ENOENT.
>

Phphphp :) there a version posted already which
returns -EBADFD (as Eric pointed me).

> > +#ifdef CONFIG_SYSVIPC
> > + ret = kcmp_ptr((long)task1->sysvsem.undo_list,
> > + (long)task2->sysvsem.undo_list,
> > + KCMP_SYSVSEM);
> > +#else
> > + ret = -EINVAL;
>
> ENOTSUP is better, I think. because of, EINVAL implicitly mean _caller_ is wrong.
> but in this case, it is not bad. only the kernel doesn't have enough feature.
>

I see.

>
> > + goto err;
>
> you don't need err label at all.
>

yeah, thanks.

> > +
> > + printf("pid1: %6d pid2: %6d FD: %2d FILES: %2d VM: %2d FS: %2d "
> > + "SIGHAND: %2d IO: %2d SYSVSEM: %2d INV: %2d\n",
> > + pid1, pid2,
> > + sys_kcmp(pid1, pid2, KCMP_FILE, fd1, fd2),
> > + sys_kcmp(pid1, pid2, KCMP_FILES, 0, 0),
> > + sys_kcmp(pid1, pid2, KCMP_VM, 0, 0),
> > + sys_kcmp(pid1, pid2, KCMP_FS, 0, 0),
> > + sys_kcmp(pid1, pid2, KCMP_SIGHAND, 0, 0),
> > + sys_kcmp(pid1, pid2, KCMP_IO, 0, 0),
> > + sys_kcmp(pid1, pid2, KCMP_SYSVSEM, 0, 0),.
>
> The best practice of auto test is
>
> AssertFooBar(expected_value, actual_value);
>
> and, just only print "correct or not". Only you know the correct value.
>

ok

Cyrill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/