1. 01 10月, 2005 7 次提交
    • Z
      [PATCH] aio: avoid extra aio_{read,write} call when ki_left == 0 · 353fb07e
      Zach Brown 提交于
      Recently aio_p{read,write} changed to perform retries internally rather
      than returning -EIOCBRETRY.  This inadvertantly resulted in always calling
      aio_{read,write} with ki_left at 0 which would in turn immediately return
      0.  Harmless, but we can avoid this call by checking in the caller.
      Signed-off-by: NZach Brown <zach.brown@oracle.com>
      Signed-off-by: NBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      353fb07e
    • Z
      [PATCH] aio: remove unlocked task_list test and resulting race · 897f15fb
      Zach Brown 提交于
      Only one of the run or kick path is supposed to put an iocb on the run
      list.  If both of them do it than one of them can end up referencing a
      freed iocb.  The kick path could delete the task_list item from the wait
      queue before getting the ctx_lock and putting the iocb on the run list.
      The run path was testing the task_list item outside the lock so that it
      could catch ki_retry methods that return -EIOCBRETRY *without* putting the
      iocb on a wait queue and promising to call kick_iocb.  This unlocked check
      could then race with the kick path to cause both to try and put the iocb on
      the run list.
      
      The patch stops the run path from testing task_list by requring that any
      ki_retry that returns -EIOCBRETRY *must* guarantee that kick_iocb() will be
      called in the future.  aio_p{read,write}, the only in-tree -EIOCBRETRY
      users, are updated.
      Signed-off-by: NZach Brown <zach.brown@oracle.com>
      Signed-off-by: NBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      897f15fb
    • Z
      [PATCH] aio: lock around kiocbTryKick() · 998765e5
      Zach Brown 提交于
      Only one of the run or kick path is supposed to put an iocb on the run
      list.  If both of them do it than one of them can end up referencing a
      freed iocb.  The kick patch could set the Kicked bit before acquiring the
      ctx_lock and putting the iocb on the run list.  The run path, while holding
      the ctx_lock, could see this partial kick and mistake it for a kick that
      was deferred while it was doing work with the run_list NULLed out.  It
      would then race with the kick thread to add the iocb to the run list.
      
      This patch moves the kick setting under the ctx_lock so that only one of
      the kick or run path queues the iocb on the run list, as intended.
      Signed-off-by: NZach Brown <zach.brown@oracle.com>
      Signed-off-by: NBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      998765e5
    • L
      Revert "x86-64: Reverse order of bootmem lists" · 6e3254c4
      Linus Torvalds 提交于
      As requested by Thomas Gleixner <tglx@linutronix.de>:
      
        "5d3d0f77 breaks a couple of ARM
         boards, which depend on the historical bootmem allocation order.
         There is a cleaner solution around to remove the pgdat list
         completely, but this is a topic for post 2.6.14
      
         Andi signalled ACK already."
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6e3254c4
    • J
      [PATCH] SELinux - fix SCTP socket bug and general IP protocol handling · 13402580
      James Morris 提交于
      The following patch updates the way SELinux classifies and handles IP
      based protocols.
      
      Currently, IP sockets are classified by SELinux as being either TCP, UDP
      or 'Raw', the latter being a default for IP socket that is not TCP or UDP.
      
      The classification code is out of date and uses only the socket type
      parameter to socket(2) to determine the class of IP socket.  So, any
      socket created with SOCK_STREAM will be classified by SELinux as TCP, and
      SOCK_DGRAM as UDP.  Also, other socket types such as SOCK_SEQPACKET and
      SOCK_DCCP are currently ignored by SELinux, which classifies them as
      generic sockets, which means they don't even get basic IP level checking.
      
      This patch changes the SELinux IP socket classification logic, so that
      only an IPPROTO_IP protocol value passed to socket(2) classify the socket
      as TCP or UDP.  The patch also drops the check for SOCK_RAW and converts
      it into a default, so that socket types like SOCK_DCCP and SOCK_SEQPACKET
      are classified as SECCLASS_RAWIP_SOCKET (instead of generic sockets).
      
      Note that protocol-specific support for SCTP, DCCP etc. is not addressed
      here, we're just getting these protocols checked at the IP layer.
      
      This fixes a reported problem where SCTP sockets were being recognized as
      generic SELinux sockets yet still being passed in one case to an IP level
      check, which then fails for generic sockets.
      
      It will also fix bugs where any SOCK_STREAM socket is classified as TCP or
      any SOCK_DGRAM socket is classified as UDP.
      
      This patch also unifies the way IP sockets classes are determined in
      selinux_socket_bind(), so we use the already calculated value instead of
      trying to recalculate it.
      Signed-off-by: NJames Morris <jmorris@namei.org>
      Signed-off-by: NStephen Smalley <sds@tycho.nsa.gov>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      13402580
    • N
      [PATCH] i386: include linux/irq.h rather than asm/hw_irq.h · b33fa1f3
      Nick Piggin 提交于
      I need the following patch to compile -git8 here, otherwise these
      files fail to compile (asm/hw_irq.h needs definitions from
      linux/irq.h and that file provides the required include ordering).
      
      I did not do a full audit, though there looks to be many other
      places that should get the same treatment, if this is  the right
      way to do it.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b33fa1f3
    • D
      [PATCH] usb/core/hcd-pci.c: don't free_irq() on suspend · 03cdc0c3
      Daniel Ritz 提交于
      the free_irq() in USB suspend breaks resume on some setups where USB
      (ohci/ehci) shares the interrupt with an other device.
      Signed-off-by: NDaniel Ritz <daniel.ritz@gmx.ch>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      03cdc0c3
  2. 30 9月, 2005 33 次提交