24 Mar, 2008

1 commit


27 Feb, 2008

1 commit


29 Jan, 2008

5 commits

  • Create a specific helper for netlink kernel socket disposal. This just
    let the code look better and provides a ground for proper disposal
    inside a namespace.

    Signed-off-by: Denis V. Lunev
    Tested-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Denis V. Lunev
     
  • - 'cb' is a fake struct member. In a previous patch struct cn_callback
    was renamed to cn_callback_id, so 'cb' should have been deleted at that
    time.

    - 'nls' isn't used and is redundant, we can retrieve this data through
    cn_callback_entry.pdev->nls.

    - 'seq' and 'group' should be u32, as they are declared to be u32 in
    other places.

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     
  • Struct member netlink_groups is never used, and I don't see how it can
    be useful.

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     
  • - __cn_rx_skb() does nothing but calls cn_call_callback(), it doesn't
    check skb and msg sizes as the comment suggests, but cn_rx_skb() checks
    those sizes.

    - In cn_rx_skb() Local variable 'len' is not used. 'len' is probably
    intended to be passed to skb_pull(), but here skb_pull() is not needed,
    instead skb_free() is called.

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     
  • Each entry in the list has a unique id, so just break out of the
    loop if the matched id is found.

    Signed-off-by: Li Zefan
    Signed-off-by: David S. Miller

    Li Zefan
     

09 Jan, 2008

1 commit


04 Jan, 2008

1 commit


31 Oct, 2007

1 commit

  • Remove a spurious call to kfree_skb() in the connector rx_skb handler.

    This fixes a regression introduced by the '[NET]: make netlink user ->
    kernel interface synchronious' patch (cd40b7d3983c708aabe3d3008ec64ffce56d33b0)

    Signed-off-by: Michal Januszewski
    Signed-off-by: David S. Miller

    Michal Januszewski
     

11 Oct, 2007

2 commits

  • This patch make processing netlink user -> kernel messages synchronious.
    This change was inspired by the talk with Alexey Kuznetsov about current
    netlink messages processing. He says that he was badly wrong when introduced
    asynchronious user -> kernel communication.

    The call netlink_unicast is the only path to send message to the kernel
    netlink socket. But, unfortunately, it is also used to send data to the
    user.

    Before this change the user message has been attached to the socket queue
    and sk->sk_data_ready was called. The process has been blocked until all
    pending messages were processed. The bad thing is that this processing
    may occur in the arbitrary process context.

    This patch changes nlk->data_ready callback to get 1 skb and force packet
    processing right in the netlink_unicast.

    Kernel -> user path in netlink_unicast remains untouched.

    EINTR processing for in netlink_run_queue was changed. It forces rtnl_lock
    drop, but the process remains in the cycle until the message will be fully
    processed. So, there is no need to use this kludges now.

    Signed-off-by: Denis V. Lunev
    Acked-by: Alexey Kuznetsov
    Signed-off-by: David S. Miller

    Denis V. Lunev
     
  • Each netlink socket will live in exactly one network namespace,
    this includes the controlling kernel sockets.

    This patch updates all of the existing netlink protocols
    to only support the initial network namespace. Request
    by clients in other namespaces will get -ECONREFUSED.
    As they would if the kernel did not have the support for
    that netlink protocol compiled in.

    As each netlink protocol is updated to be multiple network
    namespace safe it can register multiple kernel sockets
    to acquire a presence in the rest of the network namespaces.

    The implementation in af_netlink is a simple filter implementation
    at hash table insertion and hash table look up time.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

17 Jul, 2007

1 commit

  • Use menuconfigs instead of menus, so the whole menu can be disabled at once
    instead of going through all options.

    Signed-off-by: Jan Engelhardt
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Engelhardt
     

26 Apr, 2007

2 commits


08 Mar, 2007

1 commit

  • When system under heavy stress and must allocate new work
    instead of reusing old one, new work must use correct
    completion callback.

    Patch is based on Philipp's and Lars' work.
    I only cleaned small stuff (and removed spaces instead of tabs).

    Signed-off-by: Philipp Reisner
    Signed-off-by: Lars Ellenberg
    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Philipp Reisner
     

06 Jan, 2007

1 commit

  • On ia64, the various functions that make up cn_proc.c cause kernel
    unaligned access errors.

    If you are using these, for example, to get notification about all tasks
    forking and exiting, you get multiple unaligned access errors per process.

    Use put_unaligned() in the appropriate palces to fix this.

    Signed-off-by: Erik Jacobson
    Cc: Evgeniy Polyakov
    Cc: "Luck, Tony"
    Cc:
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Erik Jacobson
     

18 Dec, 2006

2 commits


22 Nov, 2006

1 commit


01 Aug, 2006

1 commit

  • Events sent by Process Events Connector from a 64-bit kernel are not binary
    compatible with a 32-bit userspace program because the "timestamp" field
    (struct timespec) is not arch independent. This affects the fields that
    follow "timestamp" as they will be be off by 8 bytes.

    This is a problem for 32-bit userspace programs running with 64-bit kernels
    on ppc64, s390, x86-64.. any "biarch" system.

    Matt had submitted a different solution to lkml as an RFC earlier. We have
    since switched to a solution recommended by Evgeniy Polyakov.

    This patch fixes the problem by changing the timestamp to be a __u64, which
    stores the number of nanoseconds.

    Tested on a x86_64 system with both 32 bit application and 64 bit
    application and on a i386 system.

    Signed-off-by: Chandra Seetharaman
    Signed-off-by: Matt Helsley
    Cc: Evgeniy Polyakov
    Cc: Guillaume Thouvenin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chandra Seetharaman
     

23 Jun, 2006

2 commits

  • Put the connector exports at the functions so people can see them in context.

    Cc: Evgeniy Polyakov
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Move connector header include to precisely where it's needed.

    Remove unused time.h header file as well. This was leftover from previous
    iterations of the process events patches.

    Signed-off-by: Matt Helsley
    Cc: Guillaume Thouvenin
    Cc: Nguyen Anh Quynh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

20 Jun, 2006

1 commit


18 Jun, 2006

1 commit

  • cn_queue.c:130: warning: value computed is not used

    There is no point in testing the atomic value if the result is thrown
    away.

    From Evgeniy:

    It was created to put implicit smp barrier, but it is not needed there.

    Signed-off-by: Andreas Schwab
    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Andreas Schwab
     

23 Mar, 2006

1 commit


21 Mar, 2006

1 commit


11 Jan, 2006

1 commit

  • Use ktime_get_ts() to take the timestamp instead of getnstimestamp(). This
    patch prepares to remove getnstimestamp() by switching its only user to a
    different function with almost exactly the same code.

    Signed-off-by: Matt Helsley
    Cc: john stultz
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

09 Jan, 2006

1 commit

  • The parameter to put_cpu_var() is unreferenced by the implementation, and
    the compiler doesn't try to comprehend comments, so this wouldn't cause any
    problem, but if bugged me enough to post a fix :-)

    Signed-off-by: David S. Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David S. Miller
     

13 Dec, 2005

1 commit

  • This adds a timestamp field to the events sent via the process event
    connector. The timestamp allows listeners to accurately account the
    duration(s) between a process' events and offers strong means with which
    to determine the order of events with respect to a given task while also
    avoiding the addition of per-task data.

    This alters the size and layout of the event structure and hence would
    break compatibility if process events connector as it stands in 2.6.15-rc2
    were released as a mainline kernel.

    Signed-off-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

07 Nov, 2005

1 commit

  • This patch adds a connector that reports fork, exec, id change, and exit
    events for all processes to userspace. It replaces the fork_advisor patch
    that ELSA is currently using. Applications that may find these events
    useful include accounting/auditing (e.g. ELSA), system activity monitoring
    (e.g. top), security, and resource management (e.g. CKRM).

    Signed-off-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Helsley
     

09 Oct, 2005

1 commit

  • - added typedef unsigned int __nocast gfp_t;

    - replaced __nocast uses for gfp flags with gfp_t - it gives exactly
    the same warnings as far as sparse is concerned, doesn't change
    generated code (from gcc point of view we replaced unsigned int with
    typedef) and documents what's going on far better.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

05 Oct, 2005

1 commit

  • Fix implicit nocast warnings in connector code:
    drivers/connector/connector.c:102:24: warning: implicit cast to nocast type
    drivers/connector/connector.c:114:45: warning: implicit cast to nocast type

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     

27 Sep, 2005

1 commit

  • If input message rate from userspace is too high, do not drop them,
    but try to deliver using work queue allocation.

    Failing there is some kind of congestion control.

    It also removes warn_on on this condition, which scares people.

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: David S. Miller

    Evgeniy Polyakov
     

12 Sep, 2005

1 commit

  • Kernel connector - new userspace kernel space easy to use
    communication module which implements easy to use bidirectional
    message bus using netlink as it's backend. Connector was created to
    eliminate complex skb handling both in send and receive message bus
    direction.

    Connector driver adds possibility to connect various agents using as
    one of it's backends netlink based network. One must register
    callback and identifier. When driver receives special netlink message
    with appropriate identifier, appropriate callback will be called.

    From the userspace point of view it's quite straightforward:

    socket();
    bind();
    send();
    recv();

    But if kernelspace want to use full power of such connections, driver
    writer must create special sockets, must know about struct sk_buff
    handling... Connector allows any kernelspace agents to use netlink
    based networking for inter-process communication in a significantly
    easier way:

    int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
    void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);

    struct cb_id
    {
    __u32 idx;
    __u32 val;
    };

    idx and val are unique identifiers which must be registered in
    connector.h for in-kernel usage. void (*callback) (void *) - is a
    callback function which will be called when message with above idx.val
    will be received by connector core.

    Using connector completely hides low-level transport layer from it's
    users.

    Connector uses new netlink ability to have many groups in one socket.

    [ Incorporating many cleanups and fixes by myself and
    Andrew Morton -DaveM ]

    Signed-off-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Evgeniy Polyakov