02 Nov, 2011

1 commit


26 Jul, 2011

1 commit

  • Fix this warning:

    arch/um/os-Linux/helper.c: In function `helper_child':
    arch/um/os-Linux/helper.c:38:7: warning: ignoring return value of `write', declared with attribute warn_unused_result

    [richard@nod.at: happens only with -D_FORTIFY_SOURCE=2]
    Signed-off-by: Vitaliy Ivanov
    Signed-off-by: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaliy Ivanov
     

19 Apr, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

20 Sep, 2009

1 commit


07 Jun, 2008

1 commit


13 May, 2008

1 commit

  • Reintroduce uml_kmalloc for the benefit of UML libc code. The
    previous tactic of declaring __kmalloc so it could be called directly
    from the libc side of the house turned out to be getting too intimate
    with slab, and it doesn't work with slob.

    So, the uml_kmalloc wrapper is back. It calls kmalloc or whatever
    that translates into, and libc code calls it.

    kfree is left alone since that still works, leaving a somewhat
    inconsistent API.

    Signed-off-by: Jeff Dike
    Cc: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

27 Apr, 2008

1 commit

  • fix:

    arch/um/os-Linux/helper.c: In function 'run_helper':
    arch/um/os-Linux/helper.c:73: error: 'PATH_MAX' undeclared (first use in this function)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

06 Feb, 2008

1 commit

  • Style fixes to arch/um/os/helper.c and tidying up the breakpoint fix a
    bit.

    helper.c gets all the usual style fixes -
    updated copyright
    all printks get severities

    Also -
    errval changes to err in helper_child
    fixed an obsolete comment
    run_helper was killing a child process which is guaranteed to
    be dead or dying anyway

    Removed the nohang and pname arguments from helper_wait and fixed the
    declaration and callers. nohang was used only in the slirp driver and
    I don't think it was needed. I think pname was a bit of overkill in
    putting out an error message when something goes wrong.

    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

18 Dec, 2007

1 commit

  • Sometimes when UML is debugged gdb miss breakpoints.

    When process traced by gdb do fork, debugger remove breakpoints from
    child address space. There is possibility to trace more than one fork,
    but this not work with UML, I guess (only guess) there is a deadlock -
    gdb waits for UML and UML waits for gdb.

    When clone() is called with SIGCHLD and CLONE_VM flags, gdb see this
    as PTRACE_EVENT_FORK not as PTRACE_EVENT_CLONE and remove breakpoints
    from child and at the same time from traced process, because either
    have the same address space.

    Maybe it is possible to do fix in gdb, but I'm not sure if there is
    easy way to find out if traced and child processes share memory. So I
    do fix for UML, it simply do not call clone() with both SIGCHLD and
    CLONE_VM flags together. Additionally __WALL flag is used for
    waitpid() to assure not miss clone and normal process events.

    [ jdike - checkpatch fixes ]

    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stanislaw Gruszka
     

17 Oct, 2007

1 commit

  • A number of files that were changed in the recent removal of tt mode
    are userspace files which call the os_* wrappers instead of calling
    libc directly. A few other files were affected by this, through

    This patch makes these call glibc directly.

    There are also style fixes in the affected areas.

    os_print_error has no remaining callers, so it is deleted.

    There is a interface change to os_set_exec_close, eliminating a
    parameter which was always the same. The callers are fixed as well.

    os_process_pc got its error path cleaned up.

    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

17 Jul, 2007

2 commits

  • UML had two wrapper procedures for kmalloc, um_kmalloc and um_kmalloc_atomic
    because the flag constants weren't available in userspace code.
    kern_constants.h had made kernel constants available for a long time, so there
    is no need for these wrappers any more. Rather, userspace code calls kmalloc
    directly with the userspace versions of the gfp flags.

    kmalloc isn't a real procedure, so I had to essentially copy the inline
    wrapper around __kmalloc.

    vmalloc also had its own wrapper for no good reason. This is now gone.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • run_helper and run_helper_thread had arguments which were the same in all
    callers. run_helper's stack_out was always NULL and run_helper_thread's
    stack_order was always 0. These are now gone, and the constants folded
    into the code.

    Also fixed leaks of the helper stack in the AIO and SIGIO code.

    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

08 May, 2007

5 commits

  • This patch converts calls in the os layer to os_{read,write}_file to calls
    directly to libc read() and write() where it is clear that the I/O buffer is
    in the kernel.

    We can do that here instead of calling os_{read,write}_file_k since we are in
    libc code and can call libc directly.

    With the change in the calls, error handling needs to be changed to refer to
    errno directly rather than the return value of the call.

    CATCH_EINTR wrappers were also added where needed.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • This patch lays some groundwork for the next one, which converts calls to
    os_{read,write}_file into {read,write}, by doing some tidying in the affected
    areas.

    do_not_aio gets restructured to make the final result a bit cleaner.

    There are also whitespace and other formatting fixes, fixes in error messages,
    and a typo fix.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • userspace code used to have to call the kernelspace function page_size() in
    order to determine the value of the kernel's PAGE_SIZE. Since this is now
    available directly from kern_constants.h as UM_KERN_PAGE_SIZE, page_size() can
    be deleted and calls changed to use the constant.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • user_util.h isn't needed any more, so delete it and remove all includes of it.

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     
  • Get rid of a bunch of unused stuff -
    cpu_feature had no users
    linux_prog is little-used, so its declaration is moved to the
    user for easy deletion when the whole file goes away
    a long-unused debugging aid in helper.c is gone

    Signed-off-by: Jeff Dike
    Cc: Paolo 'Blaisorblade' Giarrusso
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

26 Nov, 2006

1 commit

  • Reimplement execvp for our purposes - after we call fork() it is fundamentally
    unsafe to use the kernel allocator - current is not valid there. So we simply
    pass to our modified execvp() a preallocated buffer. This fixes a real bug
    and works very well in testing (I've seen indirectly warning messages from the
    forked thread - they went on the pipe connected to its stdout and where read
    as a number by UML, when calling read_output(). I verified the obtained
    number corresponded to "BUG:").

    The added use of __cant_sleep() is not a new bug since __cant_sleep() is
    already used in the same function - passing an atomicity parameter would be
    better but it would require huge change, stating that this function must not
    be called in atomic context and can sleep is a better idea (will make sure of
    this gradually).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Acked-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     

21 Oct, 2006

2 commits

  • Freeing the stack is left uselessly to the caller of run_helper in some cases
    - this is taken from run_helper_thread, but here it is useless, so no caller
    needs it and the only place where this happens has a potential leak - in case
    of error neither run_helper() nor xterm_open() call free_stack(). At this
    point passing a pointer is not needed - the stack pointer should be passed
    directly, but this change is not done here.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • Fix coding conventions violations is arch/um/os-Linux/helper.c.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     

26 Sep, 2006

1 commit

  • There were some bugs in handling failures to exec helper programs. errno was
    passed back from the child with the wrong sign. It was also ignored. In the
    case where it mattered, the errno from the (successful) read in the parent was
    used instead.

    Signed-off-by: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

11 Apr, 2006

1 commit


19 Jan, 2006

1 commit

  • Ugly trick to help make malloc not sleeping - we can't do anything else. But
    this is not yet optimal, since spinlock don't trigger in_atomic() when
    preemption is disabled.

    Also, even if ugly, this was already used in one place, and was even more
    bogus. Fix it.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     

07 Nov, 2005

1 commit