1. Oct 01, 2005
    • Zach Brown's avatar
      [PATCH] aio: avoid extra aio_{read,write} call when ki_left == 0 · 353fb07e
      Zach Brown authored
      
      
      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: default avatarZach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      353fb07e
    • Zach Brown's avatar
      [PATCH] aio: remove unlocked task_list test and resulting race · 897f15fb
      Zach Brown authored
      
      
      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: default avatarZach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      897f15fb
    • Zach Brown's avatar
      [PATCH] aio: lock around kiocbTryKick() · 998765e5
      Zach Brown authored
      
      
      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: default avatarZach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarBenjamin LaHaise <bcrl@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      998765e5
    • Linus Torvalds's avatar
      Revert "x86-64: Reverse order of bootmem lists" · 6e3254c4
      Linus Torvalds authored
      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: default avatarLinus Torvalds <torvalds@osdl.org>
      6e3254c4
    • James Morris's avatar
      [PATCH] SELinux - fix SCTP socket bug and general IP protocol handling · 13402580
      James Morris authored
      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_SE...
      13402580
    • Nick Piggin's avatar
      [PATCH] i386: include linux/irq.h rather than asm/hw_irq.h · b33fa1f3
      Nick Piggin authored
      
      
      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: default avatarLinus Torvalds <torvalds@osdl.org>
      b33fa1f3
    • Daniel Ritz's avatar
      [PATCH] usb/core/hcd-pci.c: don't free_irq() on suspend · 03cdc0c3
      Daniel Ritz authored
      
      
      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: default avatarDaniel Ritz <daniel.ritz@gmx.ch>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      03cdc0c3
  2. Sep 30, 2005