1. 19 6月, 2008 1 次提交
  2. 17 6月, 2008 2 次提交
  3. 13 6月, 2008 4 次提交
    • D
      pagemap: pass mm into pagewalkers · 2165009b
      Dave Hansen 提交于
      We need this at least for huge page detection for now, because powerpc
      needs the vm_area_struct to be able to determine whether a virtual address
      is referring to a huge page (its pmd_huge() doesn't work).
      
      It might also come in handy for some of the other users.
      Signed-off-by: NDave Hansen <dave@linux.vnet.ibm.com>
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2165009b
    • M
      cciss: add new hardware support · 24aac480
      Mike Miller 提交于
      Add support for the next generation of HP Smart Array SAS/SATA
      controllers.  Shipping date is late Fall 2008.
      
      Bump the driver version to 3.6.20 to reflect the new hardware support from
      patch 1 of this set.
      Signed-off-by: NMike Miller <mike.miller@hp.com>
      Cc: Jens Axboe <jens.axboe@oracle.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      24aac480
    • B
      proc_fs.h: move struct mm_struct forward-declaration · 57d3c64f
      Ben Nizette 提交于
      Move the forward-declaration of struct mm_struct a little way up
      proc_fs.h.  This fixes a bunch of "'struct mm_struct' declared inside
      parameter list" warnings with CONFIG_PROC_FS=n
      Signed-off-by: NBen Nizette <bn@niasdigital.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57d3c64f
    • D
      tcp: Revert 'process defer accept as established' changes. · ec0a1966
      David S. Miller 提交于
      This reverts two changesets, ec3c0982
      ("[TCP]: TCP_DEFER_ACCEPT updates - process as established") and
      the follow-on bug fix 9ae27e0a
      ("tcp: Fix slab corruption with ipv6 and tcp6fuzz").
      
      This change causes several problems, first reported by Ingo Molnar
      as a distcc-over-loopback regression where connections were getting
      stuck.
      
      Ilpo Järvinen first spotted the locking problems.  The new function
      added by this code, tcp_defer_accept_check(), only has the
      child socket locked, yet it is modifying state of the parent
      listening socket.
      
      Fixing that is non-trivial at best, because we can't simply just grab
      the parent listening socket lock at this point, because it would
      create an ABBA deadlock.  The normal ordering is parent listening
      socket --> child socket, but this code path would require the
      reverse lock ordering.
      
      Next is a problem noticed by Vitaliy Gusev, he noted:
      
      ----------------------------------------
      >--- a/net/ipv4/tcp_timer.c
      >+++ b/net/ipv4/tcp_timer.c
      >@@ -481,6 +481,11 @@ static void tcp_keepalive_timer (unsigned long data)
      > 		goto death;
      > 	}
      >
      >+	if (tp->defer_tcp_accept.request && sk->sk_state == TCP_ESTABLISHED) {
      >+		tcp_send_active_reset(sk, GFP_ATOMIC);
      >+		goto death;
      
      Here socket sk is not attached to listening socket's request queue. tcp_done()
      will not call inet_csk_destroy_sock() (and tcp_v4_destroy_sock() which should
      release this sk) as socket is not DEAD. Therefore socket sk will be lost for
      freeing.
      ----------------------------------------
      
      Finally, Alexey Kuznetsov argues that there might not even be any
      real value or advantage to these new semantics even if we fix all
      of the bugs:
      
      ----------------------------------------
      Hiding from accept() sockets with only out-of-order data only
      is the only thing which is impossible with old approach. Is this really
      so valuable? My opinion: no, this is nothing but a new loophole
      to consume memory without control.
      ----------------------------------------
      
      So revert this thing for now.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec0a1966
  4. 12 6月, 2008 6 次提交
  5. 11 6月, 2008 4 次提交
  6. 10 6月, 2008 3 次提交
    • O
      sched: fix TASK_WAKEKILL vs SIGKILL race · 16882c1e
      Oleg Nesterov 提交于
      schedule() has the special "TASK_INTERRUPTIBLE && signal_pending()" case,
      this allows us to do
      
      	current->state = TASK_INTERRUPTIBLE;
      	schedule();
      
      without fear to sleep with pending signal.
      
      However, the code like
      
      	current->state = TASK_KILLABLE;
      	schedule();
      
      is not right, schedule() doesn't take TASK_WAKEKILL into account. This means
      that mutex_lock_killable(), wait_for_completion_killable(), down_killable(),
      schedule_timeout_killable() can miss SIGKILL (and btw the second SIGKILL has
      no effect).
      
      Introduce the new helper, signal_pending_state(), and change schedule() to
      use it. Hopefully it will have more users, that is why the task's state is
      passed separately.
      
      Note this "__TASK_STOPPED | __TASK_TRACED" check in signal_pending_state().
      This is needed to preserve the current behaviour (ptrace_notify). I hope
      this check will be removed soon, but this (afaics good) change needs the
      separate discussion.
      
      The fast path is "(state & (INTERRUPTIBLE | WAKEKILL)) + signal_pending(p)",
      basically the same that schedule() does now. However, this patch of course
      bloats schedule().
      Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      16882c1e
    • A
      include/linux/ssb/ssb_driver_gige.h typo fix · 585c5434
      Adrian Bunk 提交于
      This patch fixes a typo in the name of a config variable.
      Reported-by: NRobert P. J. Day <rpjday@crashcourse.ca>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Reviewed-by: NMichael Buesch <mb@bu3sch.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      585c5434
    • R
      mm: Minor clean-up of page flags in mm/page_alloc.c · dfa7e20c
      Russ Anderson 提交于
      Minor source code cleanup of page flags in mm/page_alloc.c.
      Move the definition of the groups of bits to page-flags.h.
      
      The purpose of this clean up is that the next patch will
      conditionally add a page flag to the groups.  Doing that
      in a header file is cleaner than adding #ifdefs to the
      C code.
      Signed-off-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dfa7e20c
  7. 09 6月, 2008 2 次提交
  8. 07 6月, 2008 6 次提交
  9. 05 6月, 2008 1 次提交
    • D
      V4L/DVB (7166): [v4l] Add new user class controls and deprecate others · 39028ec6
      David Woodhouse 提交于
      These were removed in commit 26d507fc:
      
      > -#define V4L2_CID_HCENTER               (V4L2_CID_BASE+22)
      > -#define V4L2_CID_VCENTER               (V4L2_CID_BASE+23)
      > -#define V4L2_CID_LASTP1                        (V4L2_CID_BASE+24) /*
      > last CID + 1 */
      > +
      > +/* Deprecated, use V4L2_CID_PAN_RESET and V4L2_CID_TILT_RESET */
      > +#define V4L2_CID_HCENTER_DEPRECATED    (V4L2_CID_BASE+22)
      > +#define V4L2_CID_VCENTER_DEPRECATED    (V4L2_CID_BASE+23)
      
      But there was no warning in Documentation/feature-removal-schedule.txt
      and I'm receiving reports that it's breaking userspace apps (the
      gstreamer-v4l2 plugin breaks in Fedora rawhide). You can't just pull
      things from the published userspace API like that.
      
      Please can we revert the addition of _DEPRECATED to these ioctl
      definitions. Perhaps we can add a runtime warning if they actually get
      used? Or a compile-time warning if we can manage that?
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
      39028ec6
  10. 04 6月, 2008 5 次提交
  11. 03 6月, 2008 2 次提交
  12. 01 6月, 2008 1 次提交
    • A
      capabilities: remain source compatible with 32-bit raw legacy capability support. · ca05a99a
      Andrew G. Morgan 提交于
      Source code out there hard-codes a notion of what the
      _LINUX_CAPABILITY_VERSION #define means in terms of the semantics of the
      raw capability system calls capget() and capset().  Its unfortunate, but
      true.
      
      Since the confusing header file has been in a released kernel, there is
      software that is erroneously using 64-bit capabilities with the semantics
      of 32-bit compatibilities.  These recently compiled programs may suffer
      corruption of their memory when sys_getcap() overwrites more memory than
      they are coded to expect, and the raising of added capabilities when using
      sys_capset().
      
      As such, this patch does a number of things to clean up the situation
      for all. It
      
        1. forces the _LINUX_CAPABILITY_VERSION define to always retain its
           legacy value.
      
        2. adopts a new #define strategy for the kernel's internal
           implementation of the preferred magic.
      
        3. deprecates v2 capability magic in favor of a new (v3) magic
           number. The functionality of v3 is entirely equivalent to v2,
           the only difference being that the v2 magic causes the kernel
           to log a "deprecated" warning so the admin can find applications
           that may be using v2 inappropriately.
      
      [User space code continues to be encouraged to use the libcap API which
      protects the application from details like this.  libcap-2.10 is the first
      to support v3 capabilities.]
      
      Fixes issue reported in https://bugzilla.redhat.com/show_bug.cgi?id=447518.
      Thanks to Bojan Smojver for the report.
      
      [akpm@linux-foundation.org: s/depreciate/deprecate/g]
      [akpm@linux-foundation.org: be robust about put_user size]
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NAndrew G. Morgan <morgan@kernel.org>
      Cc: Serge E. Hallyn <serue@us.ibm.com>
      Cc: Bojan Smojver <bojan@rexursive.com>
      Cc: stable@kernel.org
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      ca05a99a
  13. 30 5月, 2008 3 次提交
    • H
      Input: rename SW_RADIO to SW_RFKILL_ALL · 5adad013
      Henrique de Moraes Holschuh 提交于
      The SW_RADIO code for EV_SW events has a name that is not descriptive
      enough of its intended function, and could induce someone to think
      KEY_RADIO is its EV_KEY counterpart, which is false.
      
      Rename it to SW_RFKILL_ALL, and document what this event is for.  Keep
      the old name around, to avoid userspace ABI breaks.
      
      The SW_RFKILL_ALL event is meant to be used by rfkill master switches.  It
      is not bound to a particular radio switch type, and usually applies to all
      types.  It is semantically tied to master rfkill switches that enable or
      disable every radio in a system.
      Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      5adad013
    • R
      virtio: force callback on empty. · b4f68be6
      Rusty Russell 提交于
      virtio allows drivers to suppress callbacks (ie. interrupts) for
      efficiency (no locking, it's just an optimization).
      
      There's a similar mechanism for the host to suppress notifications
      coming from the guest: in that case, we ignore the suppression if the
      ring is completely full.
      
      It turns out that life is simpler if the host similarly ignores
      callback suppression when the ring is completely empty: the network
      driver wants to free up old packets in a timely manner, and otherwise
      has to use a timer to poll.
      
      We have to remove the code which ignores interrupts when the driver
      has disabled them (again, it had no locking and hence was unreliable
      anyway).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      b4f68be6
    • C
      virtio_blk: fix endianess annotations · 7757f09c
      Christian Borntraeger 提交于
      Since commit 72e61eb4 (virtio: change config
      to guest endian) config space is no longer fixed endian.
      
      Lets change the virtio_blk_config variables.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      7757f09c