1. 30 6月, 2006 9 次提交
    • M
      [PATCH] KConfig: Spellchecking 'similarity' and 'independent' · 1f1332f7
      Matt LaPlante 提交于
      Several KConfig files had 'similarity' and 'independent' spelled incorrectly...
      Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1f1332f7
    • I
      [PATCH] genirq MSI fixes · dae86204
      Ingo Molnar 提交于
      This is a fixed up and cleaned up replacement for genirq-msi-fixes.patch,
      which should solve the i386 4KSTACKS problem.  I also added Ben's idea of
      pushing the __do_IRQ() check into generic_handle_irq().
      
      I booted this with MSI enabled, but i only have MSI devices, not MSI-X
      devices.  I'd still expect MSI-X to work now.
      
      irqchip migration helper: call __do_IRQ() if a descriptor is attached to an
      irqtype-style controller.  This also fixes MSI-X IRQ handling on i386 and
      x86_64.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      dae86204
    • I
      [PATCH] genirq: add ->retrigger() irq op to consolidate hw_irq_resend() · c0ad90a3
      Ingo Molnar 提交于
      Add ->retrigger() irq op to consolidate hw_irq_resend() implementations.
      (Most architectures had it defined to NOP anyway.)
      
      NOTE: ia64 needs testing. i386 and x86_64 tested.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c0ad90a3
    • I
      [PATCH] genirq: cleanup: merge pending_irq_cpumask[] into irq_desc[] · cd916d31
      Ingo Molnar 提交于
      Consolidation: remove the pending_irq_cpumask[NR_IRQS] array and move it into
      the irq_desc[NR_IRQS].pending_mask field.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cd916d31
    • I
      [PATCH] genirq: cleanup: merge irq_affinity[] into irq_desc[] · a53da52f
      Ingo Molnar 提交于
      Consolidation: remove the irq_affinity[NR_IRQS] array and move it into the
      irq_desc[NR_IRQS].affinity field.
      
      [akpm@osdl.org: sparc64 build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a53da52f
    • I
      [PATCH] genirq: rename desc->handler to desc->chip · d1bef4ed
      Ingo Molnar 提交于
      This patch-queue improves the generic IRQ layer to be truly generic, by adding
      various abstractions and features to it, without impacting existing
      functionality.
      
      While the queue can be best described as "fix and improve everything in the
      generic IRQ layer that we could think of", and thus it consists of many
      smaller features and lots of cleanups, the one feature that stands out most is
      the new 'irq chip' abstraction.
      
      The irq-chip abstraction is about describing and coding and IRQ controller
      driver by mapping its raw hardware capabilities [and quirks, if needed] in a
      straightforward way, without having to think about "IRQ flow"
      (level/edge/etc.) type of details.
      
      This stands in contrast with the current 'irq-type' model of genirq
      architectures, which 'mixes' raw hardware capabilities with 'flow' details.
      The patchset supports both types of irq controller designs at once, and
      converts i386 and x86_64 to the new irq-chip design.
      
      As a bonus side-effect of the irq-chip approach, chained interrupt controllers
      (master/slave PIC constructs, etc.) are now supported by design as well.
      
      The end result of this patchset intends to be simpler architecture-level code
      and more consolidation between architectures.
      
      We reused many bits of code and many concepts from Russell King's ARM IRQ
      layer, the merging of which was one of the motivations for this patchset.
      
      This patch:
      
      rename desc->handler to desc->chip.
      
      Originally i did not want to do this, because it's a big patch.  But having
      both "desc->handler", "desc->handle_irq" and "action->handler" caused a
      large degree of confusion and made the code appear alot less clean than it
      truly is.
      
      I have also attempted a dual approach as well by introducing a
      desc->chip alias - but that just wasnt robust enough and broke
      frequently.
      
      So lets get over with this quickly.  The conversion was done automatically
      via scripts and converts all the code in the kernel.
      
      This renaming patch is the first one amongst the patches, so that the
      remaining patches can stay flexible and can be merged and split up
      without having some big monolithic patch act as a merge barrier.
      
      [akpm@osdl.org: build fix]
      [akpm@osdl.org: another build fix]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d1bef4ed
    • A
      [PATCH] arch/i386/mach-visws/setup.c: remove dummy function calls · 0e41142b
      Adrian Bunk 提交于
      Thankfully, these dummy function calls are no longer required to avoid
      warnings - if they weren't eliminated as dead code but accidentially executed
      there would be a guaranteed NULL dereference.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0e41142b
    • Y
      [PATCH] solve config broken: undefined reference to `online_page' · cc57637b
      Yasunori Goto 提交于
      Memory hotplug code of i386 adds memory to only highmem.  So, if
      CONFIG_HIGHMEM is not set, CONFIG_MEMORY_HOTPLUG shouldn't be set.
      Otherwise, it causes compile error.
      
      In addition, many architecture can't use memory hotplug feature yet.  So, I
      introduce CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG.
      Signed-off-by: NYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cc57637b
    • A
      [PATCH] fix sgivwfb compile · 0686cd8f
      Adrian Bunk 提交于
      drivers/built-in.o: In function `sgivwfb_set_par':
      sgivwfb.c:(.text+0x88583): undefined reference to `sgivwfb_mem_phys'
      sgivwfb.c:(.text+0x88596): undefined reference to `sgivwfb_mem_phys'
      sgivwfb.c:(.text+0x885a8): undefined reference to `sgivwfb_mem_phys'
      drivers/built-in.o: In function `sgivwfb_check_var':
      sgivwfb.c:(.text+0x88ad0): undefined reference to `sgivwfb_mem_size'
      drivers/built-in.o: In function `sgivwfb_mmap':
      sgivwfb.c:(.text+0x88c75): undefined reference to `sgivwfb_mem_size'
      sgivwfb.c:(.text+0x88c7f): undefined reference to `sgivwfb_mem_phys'
      drivers/built-in.o: In function `sgivwfb_probe':
      sgivwfb.c:(.init.text+0x4060): undefined reference to `sgivwfb_mem_size'
      sgivwfb.c:(.init.text+0x4065): undefined reference to `sgivwfb_mem_phys'
      sgivwfb.c:(.init.text+0x4076): undefined reference to `sgivwfb_mem_phys'
      sgivwfb.c:(.init.text+0x409c): undefined reference to `sgivwfb_mem_size'
      sgivwfb.c:(.init.text+0x410e): undefined reference to `sgivwfb_mem_size'
      sgivwfb.c:(.init.text+0x4113): undefined reference to `sgivwfb_mem_phys'
      sgivwfb.c:(.init.text+0x4162): undefined reference to `sgivwfb_mem_size'
      sgivwfb.c:(.init.text+0x4168): undefined reference to `sgivwfb_mem_phys'
      make: *** [.tmp_vmlinux1] Error 1
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0686cd8f
  2. 29 6月, 2006 2 次提交
  3. 28 6月, 2006 29 次提交
    • J
      [PATCH] voyager: add cpu_present_map · 3c101cf0
      James Bottomley 提交于
      Voyager stopped booting some time in the 2.6.16-2.6.17 timeframe;
      the reason was that it doesn't have a cpu_present_map, so add
      one.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3c101cf0
    • A
      [PATCH] do_IRQ() warning fix · 91bf4602
      Andrew Morton 提交于
      arch/i386/kernel/irq.c: In function 'do_IRQ':
      arch/i386/kernel/irq.c:104: warning: suggest parentheses around arithmetic in operand of |
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      91bf4602
    • I
      [PATCH] pi-futex: introduce debug_check_no_locks_freed() · f9b8404c
      Ingo Molnar 提交于
      Add debug_check_no_locks_freed(), as a central inline to add
      bad-lock-free-debugging functionality to.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f9b8404c
    • S
      [PATCH] sched: mc/smt power savings sched policy · 5c45bf27
      Siddha, Suresh B 提交于
      sysfs entries 'sched_mc_power_savings' and 'sched_smt_power_savings' in
      /sys/devices/system/cpu/ control the MC/SMT power savings policy for the
      scheduler.
      
      Based on the values (1-enable, 0-disable) for these controls, sched groups
      cpu power will be determined for different domains.  When power savings
      policy is enabled and under light load conditions, scheduler will minimize
      the physical packages/cpu cores carrying the load and thus conserving
      power(with a perf impact based on the workload characteristics...  see OLS
      2005 CMP kernel scheduler paper for more details..)
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Cc: Con Kolivas <kernel@kolivas.org>
      Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5c45bf27
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: replace spinlocks w mutexes · 8bcf6135
      Jim Cromie 提交于
      Replace spinlocks guarding gpio config ops with mutexes.  This is a me-too
      patch, and is justifiable insofar as mutexes have stricter semantics and
      better debugging support, so are preferred where they are applicable.
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8bcf6135
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: migrate gpio_dump to common module · 0e41ef3c
      Jim Cromie 提交于
      Since the meaning of config-bits is the same for scx200 and pc8736x _gpios, we
      can share a function to deliver this to user.  Since it is called via the
      vtable, its also completely replaceable.  For now, we keep using printk...
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0e41ef3c
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: refactor scx200_probe to better... · 9b170b8f
      Jim Cromie 提交于
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: refactor scx200_probe to better segregate _gpio initialization
      
      Pull shadow-reg initialization into separate function now, rather than doing
      it 2x later (scx200, pc8736x).  When we revisit 2nd drvr below, it will be to
      reimplement an init function, rather than another refactor.
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9b170b8f
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: add 'v' command to device-file · 9550a339
      Jim Cromie 提交于
      Add a new driver command: 'v' which calls gpio_dump() on the pin.  The output
      goes to the log, like all other INFO messages in the original driver.  Giving
      the user control over the feedback they 'need' is construed to be a
      user-friendly feature, and allows us (later) to dial down many INFO messages
      to DEBUG log-level.
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9550a339
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: put gpio_dump on a diet · d424aa87
      Jim Cromie 提交于
      Shrink scx200_gpio_dump() to a single printk with ternary ops.  The function
      is still ifdef'd out, this is corrected in next patch, when it is actually
      used.
      
      The patch 'inadvertently' changed loglevel from DEBUG to INFO.  This is Good,
      because in next patch, its wired to a 'command' which the user can invoke when
      they want.  When they do so, its because they want INFO to support their
      developement effort, and we want to give it to them without compiling a DEBUG
      version of the driver.
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d424aa87
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: device minor numbers are unsigned ints · 55b8c045
      Jim Cromie 提交于
      Per kernel headers, device minor numbers are unsigned ints.  Do the same in
      this driver.
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      55b8c045
    • J
      [PATCH] chardev: GPIO for SCx200 & PC-8736x: whitespace pre-clean · 62c83cde
      Jim Cromie 提交于
      GPIO SUPPORT FOR SCx200 & PC8736x
      
      The patch-set reworks the 2.4 vintage scx200_gpio driver for modern 2.6, and
      refactors GPIO support to reuse it in a new driver for the GPIO on PC-8736x
      chips.  Its handy for the Soekris.com net-4801, which has both chips.
      
      These patches have been seen recently on Kernel-Mentors, and then
      Kernel-Newbies ML, where Jesper Juhl kindly reviewed it.  His feedback has
      been incorporated.  Thanks Jesper !
      
      Its also gone to soekris-tech@soekris.com for possible testing by linux folks,
      I've gotten 1 promise so far.  Theyre mostly BSD folk over there, but we'll
      see..
      
      Device-file & Sysfs
      
      The driver preserves the existing device-file interface, including the
      write/cmd set, but adds v to 'view' the pin-settings & configs by inducing,
      via gpio_dump(), a dev_info() call.  Its a fairly crappy way to get status,
      but it sticks to the syslog approach, conservatively.
      
      Allowing users to voluntarily trigger logging is good, it gives them a
      familiar way to confirm their app's control & use of the pins, and I've thus
      reduced the pin-mode-updates from dev_info to dev_dbg.
      
      I've recently bolted on a proto sysfs interface for both new drivers.  Im not
      including those patches here; they (the patch + doc-pre-patch) are still quite
      raw (and unreviewed on KNML), and since they 'invent' a convention for GPIO, a
      proper vetting is needed.  Since this patchset is much bigger than my previous
      ones, Id like to keep things simpler, and address it 1st, before bolting on
      more stuff.
      
      The driver-split
      
      The Geode CPU and the PC-87366 Super-IO chip have GPIO units which share a
      common pin-architecture (same pin features, with same bits controlling), but
      with different addressing mechanics and port organizations.
      
      The vintage driver expresses the pin capabilities with pin-mode commands
      [OoPpTt],etc that change the pin configurations, and since the 2 chips share
      pin-arch, we can reuse the read(), write() commands, once the implementation
      is suitably adjusted.
      
      The patchset adds a vtable: struct nsc_gpio_ops, to abstract the existing gpio
      operations, then adjusts fileops.write() code to invoke operations via that
      vtable.  Driver specific open()s set private_data to the vtable so its
      available for use by write().
      
      The vtable gets the gpio_dump() too, since its user-friendly, and (could be
      construed as) part of the current device-file interface.  To support use of
      dev_dbg() in write() & _dump(), the vtable gets a dev ptr too, set by both
      scx200 & pc8736x _gpio drivers.
      
      heres how the pins are presented in syslog:
      
      [ 1890.176223]  scx200_gpio.0: io00: 0x0044 TS OD PUE  EDGE LO DEBOUNCE
      [ 1890.287223]  scx200_gpio.0: io01: 0x0003 OE PP PUD  EDGE LO
      
      nsc_gpio.c: new file is new home of several file-ops methods, which are
      modified to get their vtable from filp->private_data, and use it where needed.
      
      scx200_gpio.c: keeps some of its existing gpio routines, but now wires them up
      via the vtable (they're invoked by nsc_gpio.c:nsc_gpio_write() thru this
      vtable).  A driver-spcific open() initializes filp->private_data with the
      vtable.
      
      Once the split is clean, and the scx200_gpio driver is working, we copy and
      modify the function and variable names, and rework the access-method bodies
      for the different addressing scheme.
      
      Heres a working overview of the patchset:
      
      # series file for GPIO
      
      # Spring Cleaning
      gpio-scx/patch.preclean        # scripts/Lindent fixes, editor-ctrl comments
      
      # API Modernization
      
      gpio-scx/patch.api26        # what I learned from LDD3
      gpio-scx/patch.platform-dev-2    # get pdev, support for dev_dbg()
      gpio-scx/patch.unsigned-minor    # fix to match std practice
      
      # Debuggability
      
      gpio-scx/patch.dump-diet    # shrink gpio_dump()
      gpio-scx/patch.viewpins        # add new 'command' to call dump()
      gpio-scx/patch.init-refactor    # pull shadow-register init to sub
      
      # Access-Abstraction (add vtable)
      
      gpio-scx/patch.access-vtable    # introduce nsg_gpio_ops vtable, w dump
      gpio-scx/patch.vtable-calls    # add & use the vtable in scx200_gpio
      gpio-scx/patch.nscgpio-shell    # add empty driver for common-fops
      
      # move code under abstraction
      gpio-scx/patch.migrate-fops    # move file-ops methods from scx200_gpio
      gpio-scx/patch.common-dump    # mv scx200.c:scx200_gpio_dump() to nsc_gpio.c
      gpio-scx/patch.add-pc8736x-gpio    # add new driver, like old, w chip adapt
      # gpio-scx/patch.add-DEBUG    # enable all dev_dbg()s
      
      # Cleanups
      
      # finish printk -> dev_dbg() etc
      gpio-scx/patch.pdev-pc8736x    # new drvr needs pdev too,
      gpio-scx/patch.devdbg-nscgpio    # add device to 'vtable', use in dev_dbg()
      
      # gpio-scx/patch.pin-config-view    # another 'c' 'command'
      # gpio-scx/quiet-getset        # take out excess dbg stuff (pretty quiet
      now)
      gpio-scx/patch.shadow-current    # imitate scx200_gpio's shadow regs in
      pc87*
      
      # post KMentors-post patches ..
      
      gpio-scx/patch.mutexes        # use mutexes for config-locks
      gpio-scx/patch.viewpins-values    # extend dump to obsolete separate 'c' cmd
      
      gpio-scx/patch.kconfig        # add stuff for kbuild
      
      # TBC
      # combine api26 with pdev, which is just one step.
      # merge c&v commands to single do-all-fn
      # delay viewpins, dump-diet should also un-ifdef it too.
      
      diff.sys-gpio-rollup-1
      
      This patch:
      
      Removed editor format-control comments, and used scripts/Lindent to clean up
      whitespace, then deleted the bogus chunks :-(
      Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      62c83cde
    • C
      [PATCH] cpu hotplug: make cpu_notifier related notifier blocks __cpuinit only · 74b85f37
      Chandra Seetharaman 提交于
      Make notifier_blocks associated with cpu_notifier as __cpuinitdata.
      
      __cpuinitdata makes sure that the data is init time only unless
      CONFIG_HOTPLUG_CPU is defined.
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Cc: Ashok Raj <ashok.raj@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      74b85f37
    • C
      [PATCH] cpu hotplug: revert init patch submitted for 2.6.17 · 9c7b216d
      Chandra Seetharaman 提交于
      In 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a
      band-aid solution to solve that problem.  In the process, i undid all the
      changes you both were making to ensure that these notifiers were available
      only at init time (unless CONFIG_HOTPLUG_CPU is defined).
      
      We deferred the real fix to 2.6.18.  Here is a set of patches that fixes the
      XFS problem cleanly and makes the cpu notifiers available only at init time
      (unless CONFIG_HOTPLUG_CPU is defined).
      
      If CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run
      time.
      
      This patch reverts the notifier_call changes made in 2.6.17
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Cc: Ashok Raj <ashok.raj@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9c7b216d
    • R
      [PATCH] add poison.h and patch primary users · c9cf5528
      Randy Dunlap 提交于
      Localize poison values into one header file for better documentation and
      easier/quicker debugging and so that the same values won't be used for
      multiple purposes.
      
      Use these constants in core arch., mm, driver, and fs code.
      Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net>
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c9cf5528
    • I
      [PATCH] vdso: randomize the i386 vDSO by moving it into a vma · e6e5494c
      Ingo Molnar 提交于
      Move the i386 VDSO down into a vma and thus randomize it.
      
      Besides the security implications, this feature also helps debuggers, which
      can COW a vma-backed VDSO just like a normal DSO and can thus do
      single-stepping and other debugging features.
      
      It's good for hypervisors (Xen, VMWare) too, which typically live in the same
      high-mapped address space as the VDSO, hence whenever the VDSO is used, they
      get lots of guest pagefaults and have to fix such guest accesses up - which
      slows things down instead of speeding things up (the primary purpose of the
      VDSO).
      
      There's a new CONFIG_COMPAT_VDSO (default=y) option, which provides support
      for older glibcs that still rely on a prelinked high-mapped VDSO.  Newer
      distributions (using glibc 2.3.3 or later) can turn this option off.  Turning
      it off is also recommended for security reasons: attackers cannot use the
      predictable high-mapped VDSO page as syscall trampoline anymore.
      
      There is a new vdso=[0|1] boot option as well, and a runtime
      /proc/sys/vm/vdso_enabled sysctl switch, that allows the VDSO to be turned
      on/off.
      
      (This version of the VDSO-randomization patch also has working ELF
      coredumping, the previous patch crashed in the coredumping code.)
      
      This code is a combined work of the exec-shield VDSO randomization
      code and Gerd Hoffmann's hypervisor-centric VDSO patch. Rusty Russell
      started this patch and i completed it.
      
      [akpm@osdl.org: cleanups]
      [akpm@osdl.org: compile fix]
      [akpm@osdl.org: compile fix 2]
      [akpm@osdl.org: compile fix 3]
      [akpm@osdl.org: revernt MAXMEM change]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NArjan van de Ven <arjan@infradead.org>
      Cc: Gerd Hoffmann <kraxel@suse.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Zachary Amsden <zach@vmware.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Jan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e6e5494c
    • J
      [PATCH] voyager: fix compile after setup rework · d5fb3426
      James Bottomley 提交于
      The following
      
      [PATCH] Clean up and refactor i386 sub-architecture setup
      
      Doesn't quite work, since it leaves out an include of asm/io.h, without
      which the use of inb/outb in the setup file won.t work.  This corrects that
      and also removes a spurious acpi reference that apparently crept in ages
      ago but should never have been there.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d5fb3426
    • J
      [PATCH] fix subarchitecture breakage with CONFIG_SCHED_SMT · 96c52749
      James Bottomley 提交于
      Commit 1e9f28fa ("[PATCH] sched: new
      sched domain for representing multi-core") incorrectly made SCHED_SMT
      and some of the structures it uses dependent on SMP.
      
      However, this is wrong, the structures are only defined if X86_HT, so
      SCHED_SMT has to depend on that as well.
      
      The patch broke voyager, since it doesn't provide any of the multi-core
      or hyperthreading structures.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      96c52749
    • A
      [PATCH] fix broken vm86 interrupt/signal handling · 4031ff38
      Aleksey Gorelov 提交于
      Commit c3ff8ec3 ("[PATCH] i386: Don't
      miss pending signals returning to user mode after signal processing")
      meant that vm86 interrupt/signal handling got broken for the case when
      vm86 is called from kernel space.
      
      In this scenario, if signal is pending because of vm86 interrupt,
      do_notify_resume/do_signal exits immediately due to user_mode() check,
      without processing any signals.  Thus, resume_userspace handler is spinning
      in a tight loop with signal pending and TIF_SIGPENDING is set.  Previously
      everything worked Ok.
      
      No in-tree usage of vm86() from kernel space exists, but I've heard
      about a number of projects out there which use vm86 calls from kernel,
      one of them being this, for instance:
      
      	http://dev.gentoo.org/~spock/projects/vesafb-tng/
      
      The following patch fixes the issue.
      Signed-off-by: NAleksey Gorelov <aleksey_gorelov@phoenix.com>
      Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
      Cc: Roland McGrath <roland@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4031ff38
    • R
      [PATCH] i386: move phys_proc_id and cpu_core_id to cpuinfo_x86 · 4b89aff9
      Rohit Seth 提交于
      Move the phys_core_id and cpu_core_id to cpuinfo_x86 structure.  Similar
      patch for x86_64 is already accepted by Andi earlier this week.
      
      [akpm@osdl.org: fix warning]
      Signed-off-by: NRohit Seth <rohitseth@google.com>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4b89aff9
    • A
      7f35bf92
    • R
      [PATCH] x86: increase interrupt vector range · 19eadf98
      Rusty Russell 提交于
      Remove the limit of 256 interrupt vectors by changing the value stored in
      orig_{e,r}ax to be the complemented interrupt vector.  The orig_{e,r}ax
      needs to be < 0 to allow the signal code to distinguish between return from
      interrupt and return from syscall.  With this change applied, NR_IRQS can
      be > 256.
      
      Xen extends the IRQ numbering space to include room for dynamically
      allocated virtual interrupts (in the range 256-511), which requires a more
      permissive interface to do_IRQ.
      Signed-off-by: NIan Pratt <ian.pratt@xensource.com>
      Signed-off-by: NChristian Limpach <Christian.Limpach@cl.cam.ac.uk>
      Signed-off-by: NChris Wright <chrisw@sous-sol.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: "Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      19eadf98
    • S
      [PATCH] x86: cpu_init(): avoid GFP_KERNEL allocation while atomic · bd9e0b74
      Shaohua Li 提交于
      The patch fixes two issues:
      
      1.  cpu_init is called with interrupt disabled.  Allocating gdt table
         there isn't good at runtime.
      
      2. gdt table page cause memory leak in CPU hotplug case.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Cc: Ashok Raj <ashok.raj@intel.com>
      Cc: Zachary Amsden <zach@vmware.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bd9e0b74
    • K
      [PATCH] node hotplug: register cpu: remove node struct · 76b67ed9
      KAMEZAWA Hiroyuki 提交于
      With Goto-san's patch, we can add new pgdat/node at runtime.  I'm now
      considering node-hot-add with cpu + memory on ACPI.
      
      I found acpi container, which describes node, could evaluate cpu before
      memory. This means cpu-hot-add occurs before memory hot add.
      
      In most part, cpu-hot-add doesn't depend on node hot add.  But register_cpu(),
      which creates symbolic link from node to cpu, requires that node should be
      onlined before register_cpu().  When a node is onlined, its pgdat should be
      there.
      
      This patch-set holds off creating symbolic link from node to cpu
      until node is onlined.
      
      This removes node arguments from register_cpu().
      
      Now, register_cpu() requires 'struct node' as its argument.  But the array of
      struct node is now unified in driver/base/node.c now (By Goto's node hotplug
      patch).  We can get struct node in generic way.  So, this argument is not
      necessary now.
      
      This patch also guarantees add cpu under node only when node is onlined.  It
      is necessary for node-hot-add vs.  cpu-hot-add patch following this.
      
      Moreover, register_cpu calculates cpu->node_id by cpu_to_node() without regard
      to its 'struct node *root' argument.  This patch removes it.
      
      Also modify callers of register_cpu()/unregister_cpu, whose args are changed
      by register-cpu-remove-node-struct patch.
      
      [Brice.Goglin@ens-lyon.org: fix it]
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
      Cc: Ashok Raj <ashok.raj@intel.com>
      Cc: Dave Hansen <haveblue@us.ibm.com>
      Signed-off-by: NBrice Goglin <Brice.Goglin@ens-lyon.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      76b67ed9
    • Y
      [PATCH] Register sysfs file for hotplugged new node · 0fc44159
      Yasunori Goto 提交于
      When new node becomes enable by hot-add, new sysfs file must be created for
      new node.  So, if new node is enabled by add_memory(), register_one_node() is
      called to create it.  In addition, I386's arch_register_node() and a part of
      register_nodes() of powerpc are consolidated to register_one_node() as a
      generic_code().
      
      This is tested by Tiger4(IPF) with node hot-plug emulation.
      Signed-off-by: NKeiichiro Tokunaga <tokuanga.keiich@jp.fujitsu.com>
      Signed-off-by: NYasunori Goto <y-goto@jp.fujitsu.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      0fc44159
    • Y
      [PATCH] pgdat allocation for new node add (specify node id) · bc02af93
      Yasunori Goto 提交于
      Change the name of old add_memory() to arch_add_memory.  And use node id to
      get pgdat for the node at NODE_DATA().
      
      Note: Powerpc's old add_memory() is defined as __devinit. However,
            add_memory() is usually called only after bootup.
            I suppose it may be redundant. But, I'm not well known about powerpc.
            So, I keep it. (But, __meminit is better at least.)
      Signed-off-by: NYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: Dave Hansen <haveblue@us.ibm.com>
      Cc: "Brown, Len" <len.brown@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bc02af93
    • V
      [PATCH] i386: export memory more than 4G through /proc/iomem · 87937472
      Vivek Goyal 提交于
      Currently /proc/iomem exports physical memory also apart from io device
      memory.  But on i386, it truncates any memory more than 4GB.  This leads to
      problems for kexec/kdump.
      
      Kexec reads /proc/iomem to determine the system memory layout and prepares a
      memory map based on that and passes it to the kernel being kexeced.  Given the
      fact that memory more than 4GB has been truncated, new kernel never gets to
      see and use that memory.
      
      Kdump also reads /proc/iomem to determine the physical memory layout of the
      system and encodes this informaiton in ELF headers.  After a crash new kernel
      parses these ELF headers being used by previous kernel and vmcore is prepared
      accordingly.  As memory more than 4GB has been truncated, kdump never sees
      that memory and never prepares ELF headers for it.  Hence vmcore is truncated
      and limited to 4GB even if there is more physical memory in the system.
      
      This patch exports memory more than 4GB through /proc/iomem on i386.
      
      Cc: Maneesh Soni <maneesh@in.ibm.com>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      87937472
    • G
      [PATCH] 64bit Resource: finally enable 64bit resource sizes · 6550e07f
      Greg Kroah-Hartman 提交于
      Introduce the Kconfig entry and actually switch to a 64bit value, if
      wanted, for resource_size_t.
      
      Based on a patch series originally from Vivek Goyal <vgoyal@in.ibm.com>
      
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6550e07f
    • G
      [PATCH] 64bit resource: change pci core and arch code to use resource_size_t · e31dd6e4
      Greg Kroah-Hartman 提交于
      Based on a patch series originally from Vivek Goyal <vgoyal@in.ibm.com>
      
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e31dd6e4
    • G
      [PATCH] 64bit resource: fix up printks for resources in arch and core code · 685143ac
      Greg Kroah-Hartman 提交于
      This is needed if we wish to change the size of the resource structures.
      
      Based on an original patch from Vivek Goyal <vgoyal@in.ibm.com> and
      Andrew Morton.
      
      (tweaked by Andy Isaacson <adi@hexapodia.org>)
      
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NAndy Isaacson <adi@hexapodia.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      685143ac