Skip to content
Snippets Groups Projects
  1. Feb 02, 2010
    • Evgeniy Polyakov's avatar
      connector: Delete buggy notification code. · f98bfbd7
      Evgeniy Polyakov authored
      
      On Tue, Feb 02, 2010 at 02:57:14PM -0800, Greg KH (gregkh@suse.de) wrote:
      > > There are at least two ways to fix it: using a big cannon and a small
      > > one. The former way is to disable notification registration, since it is
      > > not used by anyone at all. Second way is to check whether calling
      > > process is root and its destination group is -1 (kind of priveledged
      > > one) before command is dispatched to workqueue.
      > 
      > Well if no one is using it, removing it makes the most sense, right?
      > 
      > No objection from me, care to make up a patch either way for this?
      
      Getting it is not used, let's drop support for notifications about
      (un)registered events from connector.
      Another option was to check credentials on receiving, but we can always
      restore it without bugs if needed, but genetlink has a wider code base
      and none complained, that userspace can not get notification when some
      other clients were (un)registered.
      
      Kudos for Sebastian Krahmer <krahmer@suse.de>, who found a bug in the
      code.
      
      Signed-off-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f98bfbd7
  2. Oct 06, 2009
  3. Oct 02, 2009
  4. Sep 23, 2009
    • Scott James Remnant's avatar
      proc connector: add event for process becoming session leader · 02b51df1
      Scott James Remnant authored
      
      The act of a process becoming a session leader is a useful signal to a
      supervising init daemon such as Upstart.
      
      While a daemon will normally do this as part of the process of becoming a
      daemon, it is rare for its children to do so.  When the children do, it is
      nearly always a sign that the child should be considered detached from the
      parent and not supervised along with it.
      
      The poster-child example is OpenSSH; the per-login children call setsid()
      so that they may control the pty connected to them.  If the primary daemon
      dies or is restarted, we do not want to consider the per-login children
      and want to respawn the primary daemon without killing the children.
      
      This patch adds a new PROC_SID_EVENT and associated structure to the
      proc_event event_data union, it arranges for this to be emitted when the
      special PIDTYPE_SID pid is set.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: default avatarScott James Remnant <scott@ubuntu.com>
      Acked-by: default avatarMatt Helsley <matthltc@us.ibm.com>
      Cc: Oleg Nesterov <oleg@tv-sign.ru>
      Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
      Acked-by: default avatar"David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      02b51df1
  5. Jul 21, 2009
  6. Jul 17, 2009
    • Mike Frysinger's avatar
      connector: make callback argument type explicit · 0741241c
      Mike Frysinger authored
      
      The connector documentation states that the argument to the callback
      function is always a pointer to a struct cn_msg, but rather than encode it
      in the API itself, it uses a void pointer everywhere.  This doesn't make
      much sense to encode the pointer in documentation as it prevents proper C
      type checking from occurring and can easily allow people to use the wrong
      pointer type.  So convert the argument type to an explicit struct cn_msg
      pointer.
      
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0741241c
  7. Jun 12, 2009
  8. Feb 03, 2009
    • Frederic Weisbecker's avatar
      connector: create connector workqueue only while needed once · 1a5645bc
      Frederic Weisbecker authored
      
      The netlink connector uses its own workqueue to relay the datas sent
      from userspace to the appropriate callback.  If you launch the test
      from Documentation/connector and change it a bit to send a high flow
      of data, you will see thousands of events coming to the "cqueue"
      workqueue by looking at the workqueue tracer.
      
      This flow of events can be sent very quickly. So, to not encumber the
      kevent workqueue and delay other jobs, the "cqueue" workqueue should
      remain.
      
      But this workqueue is pointless most of the time, it will always be
      created (assuming you have built it of course) although only
      developpers with specific needs will use it.
      
      So avoid this "most of the time useless task", this patch proposes to
      create this workqueue only when needed once.  The first jobs to be
      sent to connector callbacks will be sent to kevent while the "cqueue"
      thread creation will be scheduled to kevent too.
      
      The following jobs will continue to be scheduled to keventd until the
      cqueue workqueue is created, and then the rest of the jobs will
      continue to perform as usual, through this dedicated workqueue.
      
      Each time I tested this patch, only the first event was sent to
      keventd, the rest has been sent to cqueue which have been created
      quickly.
      
      Also, this patch fixes some trailing whitespaces on the connector files.
      
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Acked-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1a5645bc
  9. Nov 13, 2008
  10. Jun 27, 2008
    • Li Zefan's avatar
      CONNECTOR: add a proc entry to list connectors · a0a61a60
      Li Zefan authored
      
      I got a problem when I wanted to check if the kernel supports process
      event connector, and It seems there's no way to do this check.
      
      At best I can check if the kernel supports connector or not, by looking
      into /proc/net/netlink, or maybe checking the return value of bind() to
      see if it's ENOENT.
      
      So it would be useful to add /proc/net/connector to list all supported
      connectors:
       # cat /proc/net/connector
       Name            ID
       connector       4294967295:4294967295
       cn_proc         1:1
       w1              3:1
      
      Changelog:
      - fix memory leak: s/seq_release/single_release
      - use spin_lock_bh instead of spin_lock_irqsave
      
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Acked-by: default avatarEvgeniy Polyakov <johnpol@2ka.mipt.ru>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a0a61a60
  11. Mar 23, 2008
  12. Feb 26, 2008
  13. Jan 28, 2008
  14. Jan 09, 2008
  15. Jan 04, 2008
  16. Oct 30, 2007
  17. Oct 10, 2007
    • Denis V. Lunev's avatar
      [NET]: make netlink user -> kernel interface synchronious · cd40b7d3
      Denis V. Lunev authored
      
      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: default avatarDenis V. Lunev <den@openvz.org>
      Acked-by: default avatarAlexey Kuznetsov <kuznet@ms2.inr.ac.ru>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd40b7d3
    • Eric W. Biederman's avatar
      [NET]: Support multiple network namespaces with netlink · b4b51029
      Eric W. Biederman authored
      
      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: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b4b51029
  18. Jul 16, 2007
  19. Apr 25, 2007
  20. Mar 07, 2007
  21. Jan 06, 2007
  22. Dec 18, 2006
  23. Dec 17, 2006
  24. Nov 22, 2006
  25. Jul 31, 2006
    • Chandra Seetharaman's avatar
      [PATCH] Process Events: Fix biarch compatibility issue. use __u64 timestamp · 822cfbff
      Chandra Seetharaman authored
      
      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: default avatarChandra Seetharaman <sekharan@us.ibm.com>
      Signed-off-by: default avatarMatt Helsley <matthltc@us.ibm.com>
      Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
      Cc: Guillaume Thouvenin <guillaume.thouvenin@bull.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      822cfbff
  26. Jun 23, 2006
  27. Jun 20, 2006
  28. Jun 17, 2006
  29. Mar 23, 2006
  30. Mar 20, 2006
Loading