1. 17 10月, 2007 20 次提交
    • A
      sparsemem: clean up spelling error in comments · cd881a6b
      Andy Whitcroft 提交于
      SPARSEMEM is a pretty nice framework that unifies quite a bit of code over all
      the arches.  It would be great if it could be the default so that we can get
      rid of various forms of DISCONTIG and other variations on memory maps.  So far
      what has hindered this are the additional lookups that SPARSEMEM introduces
      for virt_to_page and page_address.  This goes so far that the code to do this
      has to be kept in a separate function and cannot be used inline.
      
      This patch introduces a virtual memmap mode for SPARSEMEM, in which the memmap
      is mapped into a virtually contigious area, only the active sections are
      physically backed.  This allows virt_to_page page_address and cohorts become
      simple shift/add operations.  No page flag fields, no table lookups, nothing
      involving memory is required.
      
      The two key operations pfn_to_page and page_to_page become:
      
         #define __pfn_to_page(pfn)      (vmemmap + (pfn))
         #define __page_to_pfn(page)     ((page) - vmemmap)
      
      By having a virtual mapping for the memmap we allow simple access without
      wasting physical memory.  As kernel memory is typically already mapped 1:1
      this introduces no additional overhead.  The virtual mapping must be big
      enough to allow a struct page to be allocated and mapped for all valid
      physical pages.  This vill make a virtual memmap difficult to use on 32 bit
      platforms that support 36 address bits.
      
      However, if there is enough virtual space available and the arch already maps
      its 1-1 kernel space using TLBs (f.e.  true of IA64 and x86_64) then this
      technique makes SPARSEMEM lookups even more efficient than CONFIG_FLATMEM.
      FLATMEM needs to read the contents of the mem_map variable to get the start of
      the memmap and then add the offset to the required entry.  vmemmap is a
      constant to which we can simply add the offset.
      
      This patch has the potential to allow us to make SPARSMEM the default (and
      even the only) option for most systems.  It should be optimal on UP, SMP and
      NUMA on most platforms.  Then we may even be able to remove the other memory
      models: FLATMEM, DISCONTIG etc.
      
      The current aim is to bring a common virtually mapped mem_map to all
      architectures.  This should facilitate the removal of the bespoke
      implementations from the architectures.  This also brings performance
      improvements for most architecture making sparsmem vmemmap the more desirable
      memory model.  The ultimate aim of this work is to expand sparsemem support to
      encompass all the features of the other memory models.  This could allow us to
      drop support for and remove the other models in the longer term.
      
      Below are some comparitive kernbench numbers for various architectures,
      comparing default memory model against SPARSEMEM VMEMMAP.  All but ia64 show
      marginal improvement; we expect the ia64 figures to be sorted out when the
      larger mapping support returns.
      
      x86-64 non-NUMA
                   Base    VMEMAP    % change (-ve good)
      User        85.07     84.84    -0.26
      System      34.32     33.84    -1.39
      Total      119.38    118.68    -0.59
      
      ia64
                   Base    VMEMAP    % change (-ve good)
      User      1016.41   1016.93    0.05
      System      50.83     51.02    0.36
      Total     1067.25   1067.95    0.07
      
      x86-64 NUMA
                   Base   VMEMAP    % change (-ve good)
      User        30.77   431.73     0.22
      System      45.39    43.98    -3.11
      Total      476.17   475.71    -0.10
      
      ppc64
                   Base   VMEMAP    % change (-ve good)
      User       488.77   488.35    -0.09
      System      56.92    56.37    -0.97
      Total      545.69   544.72    -0.18
      
      Below are some AIM bencharks on IA64 and x86-64 (thank Bob).  The seems
      pretty much flat as you would expect.
      
      ia64 results 2 cpu non-numa 4Gb SCSI disk
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	extreme	Jun  1 07:17:24 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	98.9		100	58.9	1.3	1.6482
      101	5547.1		95	106.0	79.4	0.9154
      201	6377.7		95	183.4	158.3	0.5288
      301	6932.2		95	252.7	237.3	0.3838
      401	7075.8		93	329.8	316.7	0.2941
      501	7235.6		94	403.0	396.2	0.2407
      600	7387.5		94	472.7	475.0	0.2052
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	vmemmap	Jun  1 09:59:04 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	99.1		100	58.8	1.2	1.6509
      101	5480.9		95	107.2	79.2	0.9044
      201	6490.3		95	180.2	157.8	0.5382
      301	6886.6		94	254.4	236.8	0.3813
      401	7078.2		94	329.7	316.0	0.2942
      501	7250.3		95	402.2	395.4	0.2412
      600	7399.1		94	471.9	473.9	0.2055
      
      open power 710 2 cpu, 4 Gb, SCSI and configured physically
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	extreme	May 29 15:42:53 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	25.7		100	226.3	4.3	0.4286
      101	1096.0		97	536.4	199.8	0.1809
      201	1236.4		96	946.1	389.1	0.1025
      301	1280.5		96	1368.0	582.3	0.0709
      401	1270.2		95	1837.4	771.0	0.0528
      501	1251.4		96	2330.1	955.9	0.0416
      601	1252.6		96	2792.4	1139.2	0.0347
      701	1245.2		96	3276.5	1334.6	0.0296
      918	1229.5		96	4345.4	1728.7	0.0223
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	vmemmap	May 30 07:28:26 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	25.6		100	226.9	4.3	0.4275
      101	1049.3		97	560.2	198.1	0.1731
      201	1199.1		97	975.6	390.7	0.0994
      301	1261.7		96	1388.5	591.5	0.0699
      401	1256.1		96	1858.1	771.9	0.0522
      501	1220.1		96	2389.7	955.3	0.0406
      601	1224.6		96	2856.3	1133.4	0.0340
      701	1252.0		96	3258.7	1314.1	0.0298
      915	1232.8		96	4319.7	1704.0	0.0225
      
      amd64 2 2-core, 4Gb and SATA
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	extreme	Jun  2 03:59:48 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	13.0		100	446.4	2.1	0.2173
      101	533.4		97	1102.0	110.2	0.0880
      201	578.3		97	2022.8	220.8	0.0480
      301	583.8		97	3000.6	332.3	0.0323
      401	580.5		97	4020.1	442.2	0.0241
      501	574.8		98	5072.8	558.8	0.0191
      600	566.5		98	6163.8	671.0	0.0157
      
      Benchmark	Version	Machine	Run Date
      AIM Multiuser Benchmark - Suite VII	"1.1"	vmemmap	Jun  3 04:19:31 2007
      
      Tasks	Jobs/Min	JTI	Real	CPU	Jobs/sec/task
      1	13.0		100	447.8	2.0	0.2166
      101	536.5		97	1095.6	109.7	0.0885
      201	567.7		97	2060.5	219.3	0.0471
      301	582.1		96	3009.4	330.2	0.0322
      401	578.2		96	4036.4	442.4	0.0240
      501	585.1		98	4983.2	555.1	0.0195
      600	565.5		98	6175.2	660.6	0.0157
      
      This patch:
      
      Fix some spelling errors.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Acked-by: NMel Gorman <mel@csn.ul.ie>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd881a6b
    • C
      x86: optimize page faults like all other achitectures and kill notifier cruft · 74a0b576
      Christoph Hellwig 提交于
      x86(-64) are the last architectures still using the page fault notifier
      cruft for the kprobes page fault hook.  This patch converts them to the
      proper direct calls, and removes the now unused pagefault notifier bits
      aswell as the cruft in kprobes.c that was related to this mess.
      
      I know Andi didn't really like this, but all other architecture maintainers
      agreed the direct calls are much better and besides the obvious cruft
      removal a common way of dealing with kprobes across architectures is
      important aswell.
      
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc64]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: Andi Kleen <ak@suse.de>
      Cc: <linux-arch@vger.kernel.org>
      Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com>
      Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
      Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      74a0b576
    • M
      Convert cpu_sibling_map to be a per cpu variable · d5a7430d
      Mike Travis 提交于
      Convert cpu_sibling_map from a static array sized by NR_CPUS to a per_cpu
      variable.  This saves sizeof(cpumask_t) * NR unused cpus.  Access is mostly
      from startup and CPU HOTPLUG functions.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d5a7430d
    • M
      x86: Convert cpu_core_map to be a per cpu variable · 08357611
      Mike Travis 提交于
      This is from an earlier message from 'Christoph Lameter':
      
          cpu_core_map is currently an array defined using NR_CPUS. This means that
          we overallocate since we will rarely really use maximum configured cpu.
      
          If we put the cpu_core_map into the per cpu area then it will be allocated
          for each processor as it comes online.
      
          This means that the core map cannot be accessed until the per cpu area
          has been allocated. Xen does a weird thing here looping over all processors
          and zeroing the masks that are not yet allocated and that will be zeroed
          when they are allocated. I commented the code out.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NMike Travis <travis@sgi.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08357611
    • M
      Add support for Wacom WACF007 and WACF008 to serial pnp driver · cc84634f
      Maik Broemme 提交于
      Notebook manufacturer seems to built a newer Wacom pen enabled tablet to
      recent tablet pcs which are not recognized by the serial pnp driver.
      
      Attached is a patch which makes the newer Wacom WACF007 and WACF008 tablets
      useable with the serial driver.  The device is fully compatible with it.
      Signed-off-by: NMaik Broemme <mbroemme@plusserver.de>
      Cc: Andrey Panin <pazke@orbita1.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cc84634f
    • A
      serial_txx9: Use UPF_FIXED_PORT · 37a6c7d0
      Atsushi Nemoto 提交于
      The UPF_FIXED_PORT flags was introduced in 2.6.22 and it can be used
      instead of the driver specific verify_port routine.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      37a6c7d0
    • G
      wake up from a serial port · b3b708fa
      Guennadi Liakhovetski 提交于
      Enable wakeup from serial ports, make it run-time configurable over sysfs,
      e.g.,
      
      echo enabled > /sys/devices/platform/serial8250.0/tty/ttyS0/power/wakeup
      
      Requires
      
      # CONFIG_SYSFS_DEPRECATED is not set
      
      Following suggestions from Alan and Russell moved the may_wake_up checks
      to serial_core.c. This time actually tested - it does even work. Could
      someone, please, verify, that put_device after device_find_child is
      correct?
      
      Also would be nice to test with a Natsemi UART, that can wake up the system,
      if such systems exist.
      
      For this you just have to apply the patch below, issue the above "echo"
      command to one of your Natsemi port, suspend and resume your system, and
      verify that your Natsemi port still works.  If you are actually capable of
      waking up the system from that port, would be nice to test that as well.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b3b708fa
    • G
      provide stubs for enable_irq_wake() and disable_irq_wake() · aa5346a2
      Guennadi Liakhovetski 提交于
      Provide {enable,disable}_irq_wakeup dummies for undefined
      cross-compilers for platforms without CONFIG_GENERIC_IRQ.
      
      Needed by wake-up-from-a-serial-port.patch
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      aa5346a2
    • A
      8250_pci: Autodetect mainpine cards · bf0df636
      Alan Cox 提交于
      Add support for a whole range of boards. Some are partly autodetected but
      not fully correctly others (PCI Express notably) not at all. Stick all
      the right entries in.
      
      Thanks to Mainpine for information and testing.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bf0df636
    • A
      serial_txx9: cleanup includes · 7201863c
      Atsushi Nemoto 提交于
      Do not include some header files already indluded by serial_core.h.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7201863c
    • J
      pcmcia: use DMA_MASK_NONE for the default for all pcmcia devices · 43d9f7fd
      James Bottomley 提交于
      Most non cardbus devices can't do dma, so flag them as such in the device
      creation routine.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Natalie Protasevich <protasnb@gmail.com>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      43d9f7fd
    • J
      introduce DMA_MASK_NONE as a signal for unable to do DMA · 32e8f702
      James Bottomley 提交于
      Some devices are incapable of DMA and need to be recognised as such.
      Introduce a NONE dma mask to facilitate this plus an inline function:
      is_device_dma_capable() to check this.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Natalie Protasevich <protasnb@gmail.com>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      32e8f702
    • E
      Add support for PCMCIA card Sierra WIreless AC850 · 64da82ef
      Eric Leblond 提交于
      Add support for Sierra Wireless AC850 which has the same Ids as the
      AC710/750 but has a different firmware.
      
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      64da82ef
    • D
      pcmcia: cistpl: use get_unaligned() in CIS parsing · dc0cf6a2
      Daniel Ritz 提交于
      Based on a patch by Haavard Skinnemoen posted to linux-pcmcia, but using
      static inlines for readability reasons.  this should fix PCMCIA an AVR32
      Signed-off-by: NDaniel Ritz <daniel.ritz@gmx.ch>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dc0cf6a2
    • Y
      move a few definitions to au1000_xxs1500.c · b5446b51
      Yoichi Yuasa 提交于
      Only a few definitions is in xxs1500.h .
      They can be move to au1000_xxs1500.c .
      
      [m.kozlowski@tuxland.pl: fix unbalanced parenthesis]
      Signed-off-by: NYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NMariusz Kozlowski <m.kozlowski@tuxland.pl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b5446b51
    • M
      pxa2xx PCMCIA timing issue on iPAQ H5550 · 24d6572b
      Milan Plzik 提交于
      Recently I've been trying to get working PCMCIA interface on H5000 ipaq
      series, using dual PCMCIA sleeve.  So far things work correctly, but I had
      to do one modification to drivers/pcmcia/pxa2xx_base.c to get the interface
      working with orinoco gold PCMCIA card (wired pcnet_cs ethernet card worked
      even without this modification).
      
      The issue has something to do with assert time on PCMCIA bus, but I'm not
      really sure what -- I found the working value just by trial&error approach.
       I'm not sure how is the assert value in pxa2xx_mcxx_asst calculated (I
      know, simple formula, but the reason why is it calculated that way is not
      obvious for me), neither that my modification is correct.  It just works
      with iPAQ.
      
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      24d6572b
    • J
      Use menuconfig objects: PCMCIA · 42c5323c
      Jan Engelhardt 提交于
      Use menuconfigs instead of menus, so the whole menu can be disabled at once
      instead of going through all options.
      Signed-off-by: NJan Engelhardt <jengelh@gmx.de>
      Cc: Dominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      42c5323c
    • R
      Add assembler equivalents to __init{,date}_refok · 0322a2b8
      Ralf Baechle 提交于
      I need __INIT_REFOK to fix a MODPOST warning for a few MIPS configs which
      have to call init code from .text very early in the game due to bootloader
      issues.  __INITDATA_REFOK is just for consistency.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0322a2b8
    • R
      slow down printk during boot · bfe8df3d
      Randy Dunlap 提交于
      Optionally add a boot delay after each kernel printk() call, crudely
      measured in milliseconds, with a maximum delay of 10 seconds per printk.
      
      Enable CONFIG_BOOT_PRINTK_DELAY=y and then add (e.g.):
      "lpj=loops_per_jiffy boot_delay=100"
      to the kernel command line.
      
      It has been useful in cases like "during boot, my machine just reboots or the
      screen goes black" by slowing down printk, (and adding initcall_debug), we can
      usually see the last thing that happened before the lights went out which is
      usually a valuable clue.
      
      [akpm@linux-foundation.org: not all architectures implement CONFIG_HZ]
      [akpm@linux-foundation.org: fix lots of stuff]
      [bunk@stusta.de: kernel/printk.c: make 2 variables static]
      [heiko.carstens@de.ibm.com: fix slow down printk on boot compile error]
      Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bfe8df3d
    • A
      Consolidate PTRACE_DETACH · 1bcf5482
      Alexey Dobriyan 提交于
      Identical handlers of PTRACE_DETACH go into ptrace_request().
      Not touching compat code.
      Not touching archs that don't call ptrace_request.
      Signed-off-by: NAlexey Dobriyan <adobriyan@sw.ru>
      Acked-by: NChristoph Hellwig <hch@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1bcf5482
  2. 16 10月, 2007 20 次提交