1. 06 2月, 2009 1 次提交
    • P
      netlink: change return-value logic of netlink_broadcast() · ff491a73
      Pablo Neira Ayuso 提交于
      Currently, netlink_broadcast() reports errors to the caller if no
      messages at all were delivered:
      
      1) If, at least, one message has been delivered correctly, returns 0.
      2) Otherwise, if no messages at all were delivered due to skb_clone()
         failure, return -ENOBUFS.
      3) Otherwise, if there are no listeners, return -ESRCH.
      
      With this patch, the caller knows if the delivery of any of the
      messages to the listeners have failed:
      
      1) If it fails to deliver any message (for whatever reason), return
         -ENOBUFS.
      2) Otherwise, if all messages were delivered OK, returns 0.
      3) Otherwise, if no listeners, return -ESRCH.
      
      In the current ctnetlink code and in Netfilter in general, we can add
      reliable logging and connection tracking event delivery by dropping the
      packets whose events were not successfully delivered over Netlink. Of
      course, this option would be settable via /proc as this approach reduces
      performance (in terms of filtered connections per seconds by a stateful
      firewall) but providing reliable logging and event delivery (for
      conntrackd) in return.
      
      This patch also changes some clients of netlink_broadcast() that
      may report ENOBUFS errors via printk. This error handling is not
      of any help. Instead, the userspace daemons that are listening to
      those netlink messages should resync themselves with the kernel-side
      if they hit ENOBUFS.
      
      BTW, netlink_broadcast() clients include those that call
      cn_netlink_send(), nlmsg_multicast() and genlmsg_multicast() since they
      internally call netlink_broadcast() and return its error value.
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ff491a73
  2. 17 10月, 2008 1 次提交
  3. 25 7月, 2008 1 次提交
  4. 28 4月, 2008 2 次提交
  5. 24 2月, 2008 1 次提交
    • S
      drivers/video/uvesafb.c: fix section mismatch warning in param_set_scroll() · 79306a34
      Sergio Luis 提交于
      Fix following warnings:
      WARNING: drivers/video/built-in.o(.text+0x7c64a): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/video/built-in.o(.text+0x7c65d): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/video/built-in.o(.text+0x7c679): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/video/built-in.o(.text+0x7c699): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/video/built-in.o(.text+0x7c69f): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/built-in.o(.text+0xa3676): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/built-in.o(.text+0xa3689): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/built-in.o(.text+0xa36a5): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/built-in.o(.text+0xa36c5): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: drivers/built-in.o(.text+0xa36cb): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: vmlinux.o(.text+0x4a079a): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: vmlinux.o(.text+0x4a07ad): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: vmlinux.o(.text+0x4a07c9): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: vmlinux.o(.text+0x4a07e9): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      WARNING: vmlinux.o(.text+0x4a07ef): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:ypan
      
      Remove __devinitdata annotation from the variable ypan.
      Signed-off-by: NSergio Luis <sergio@larces.uece.br>
      Cc: Michal Januszewski <spock@gentoo.org>
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      79306a34
  6. 07 2月, 2008 1 次提交
  7. 15 1月, 2008 1 次提交
    • R
      uvesafb: fix section mismatch warnings · 27b526a0
      Randy Dunlap 提交于
      Mark uvesafb_init_mtrr() as __devinit since its caller is __devinit
      and since it accesses __devinitdata.
      
      WARNING: vmlinux.o(.text+0x4df80e): Section mismatch: reference to .init.data: (between 'uvesafb_init_mtrr' and 'uvesafb_show_vbe_ver')
      
      Variable 'blank' cannot be __devinitdata since it is referenced in an
      fb_ops method that could be called at any time.
      
      WARNING: vmlinux.o(.text+0x4dfc1e): Section mismatch: reference to .init.data:blank (between 'param_set_scroll' and 'vesa_setpalette')
      WARNING: vmlinux.o(.text+0x4dfc24): Section mismatch: reference to .init.data:blank (between 'param_set_scroll' and 'vesa_setpalette')
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: "Antonino A. Daplas" <adaplas@pol.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      27b526a0
  8. 15 11月, 2007 1 次提交
  9. 17 10月, 2007 1 次提交
    • M
      uvesafb: the driver core · 8bdb3a2d
      Michal Januszewski 提交于
      uvesafb is an enhanced version of vesafb.  It uses a userspace helper (v86d)
      to execute calls to the x86 Video BIOS functions.  The driver is not limited
      to any specific arch and whether it works on a given arch or not depends on
      that arch being supported by the userspace daemon.  It has been tested on
      x86_32 and x86_64.
      
      A single BIOS call is represented by an instance of the uvesafb_ktask
      structure.  This structure contains a buffer, a completion struct and a
      uvesafb_task substructure, containing the values of the x86 registers, a flags
      field and a field indicating the length of the buffer.  Whenever a BIOS call
      is made in the driver, uvesafb_exec() builds a message using the uvesafb_task
      substructure and the contents of the buffer.  This message is then assigned a
      random ack number and sent to the userspace daemon using the connector
      interface.
      
      The message's sequence number is used as an index for the uvfb_tasks array,
      which provides a mapping from the messages coming from userspace to the
      in-kernel uvesafb_ktask structs.
      
      The userspace daemon performs the requested operation and sends a reply in the
      form of a uvesafb_task struct and, optionally, a buffer.  The seq and ack
      numbers in the reply should be exactly the same as those in the request.
      
      Each message from userspace is processed by uvesafb_cn_callback() and after
      passing a few sanity checks leads to the completion of a BIOS call request.
      Signed-off-by: NMichal Januszewski <spock@gentoo.org>
      Signed-off-by: NAntonino Daplas <adaplas@gmail.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Paulo Marques <pmarques@grupopie.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8bdb3a2d