1. 29 4月, 2008 3 次提交
  2. 28 4月, 2008 9 次提交
  3. 27 4月, 2008 28 次提交
    • D
      sparc: Remove old style signal frame support. · 5526b7e4
      David S. Miller 提交于
      Back around the same time we were bootstrapping the first 32-bit sparc
      Linux kernel with a SunOS userland, we made the signal frame match
      that of SunOS.
      
      By the time we even started putting together a native Linux userland
      for 32-bit Sparc we realized this layout wasn't sufficient for Linux's
      needs.
      
      Therefore we changed the layout, yet kept support for the old style
      signal frame layout in there.  The detection mechanism is that we had
      sys_sigaction() start passing in a negative signal number to indicate
      "new style signal frames please".
      
      Anyways, no binaries exist in the world that use the old stuff.  In
      fact, I bet Jakub Jelinek and myself are the only two people who ever
      had such binaries to be honest.
      
      So let's get rid of this stuff.
      
      I added an assertion using WARN_ON_ONCE() that makes sure 32-bit
      applications are passing in that negative signal number still.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5526b7e4
    • D
      sparc64: Kill bogus RT_ALIGNEDSZ macro from signal.c · 7cf06995
      David S. Miller 提交于
      The structure has to be 8-byte aligned in size, so
      this macro is just noise.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7cf06995
    • R
      sparc: sunzilog.c remove unused argument · 3ade1160
      Robert Reif 提交于
      Remove unused argument in function call.
      Signed-off-by: NRobert Reif <reif@earthlink.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ade1160
    • R
      sparc: fix drivers/video/tcx.c warning · 403ae52a
      Robert Reif 提交于
      Fix compile warning:
      
      CC drivers/video/tcx.o
      drivers/video/tcx.c: In function ‘tcx_init_one’:
      drivers/video/tcx.c:477: warning: format ‘%lx’ expects type ‘long 
      unsigned int’, but argument 4 has type ‘resource_size_t’
      
      This was the only sparc driver to use the resource directly in the
      printk so I changed it to physbase like the other drivers.
      Boot tested on SS4.
      Signed-off-by: NRobert Reif <reif@earthlink.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      403ae52a
    • D
      sparc64: Kill unused local ISA bus layer. · 5da496e4
      David S. Miller 提交于
      No more drivers use this, and therefore it can die.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5da496e4
    • D
      input: Rewrite sparcspkr device probing. · 9c1a5077
      David S. Miller 提交于
      Remove all dependencies on EBUS and ISA bus layers, which we'd like to
      remove as they are superfluous.
      
      While we're here, add support for proper frequency changing on BBC
      beep devices.  Unlike the comments that were here, this device can
      in fact use a programmable frequency.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c1a5077
    • D
      sparc64: Do not ignore 'pmu' device ranges. · dc8ca2a1
      David S. Miller 提交于
      I must have disabled this due to other bugs which were fixed over
      time.  And this is needed in order for child devices of "pmu"
      to get proper resource values.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc8ca2a1
    • D
      sparc64: Kill ISA_FLOPPY_WORKS code. · 0eb78f0b
      David S. Miller 提交于
      This never was enabled, I could never get it working, and if anyone
      wants to try and get it's very easy to reference this code in the
      history.
      
      It's the only thing referencing the silly ISA device layer in the
      sparc64 tree.  OF device layer infrastructure is what should be used
      for these things.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0eb78f0b
    • D
      sparc64: Kill CONFIG_SPARC32_COMPAT · 09337f50
      David S. Miller 提交于
      It's completely superfluous, CONFIG_COMPAT is sufficient.
      
      What this used to be is an umbrella for enabling code shared
      by all 32-bit compat binary support types.  But with the
      removal of SunOS and Solaris support, the only one left is
      Linux 32-bit ELF.
      
      Update defconfig.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      09337f50
    • D
      sparc64: Cleanups and corrections for arch/sparc64/Kconfig · 05d515ef
      David S. Miller 提交于
      Refer to chip as "SPARC" throughout.
      
      Say 32-bit SPARC and 64-bit SPARC rather than mentioning specific
      chips such like UltraSPARC, as appropriate.
      
      Remove non-sense help text referring to things that will never appear
      on a SPARC system, such as EISA busses etc.
      
      Use "help" instead of "--help--"
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      05d515ef
    • D
      sparc64: Fix wedged irq regression. · 227c3311
      David S. Miller 提交于
      Kernel bugzilla 10273
      
      As reported by Jos van der Ende, ever since commit
      5a606b72 ("[SPARC64]: Do not ACK an
      INO if it is disabled or inprogress.") sun4u interrupts
      can get stuck.
      
      What this changset did was add the following conditional to
      the various IRQ chip ->enable() handlers on sparc64:
      
      	if (unlikely(desc->status & (IRQ_DISABLED|IRQ_INPROGRESS)))
      		return;
      
      which is correct, however it means that special care is needed
      in the ->enable() method.
      
      Specifically we must put the interrupt into IDLE state during
      an enable, or else it might never be sent out again.
      
      Setting the INO interrupt state to IDLE resets the state machine,
      the interrupt input to the INO is retested by the hardware, and
      if an interrupt is being signalled by the device, the INO
      moves back into TRANSMIT state, and an interrupt vector is sent
      to the cpu.
      
      The two sun4v IRQ chip handlers were already doing this properly,
      only sun4u got it wrong.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      227c3311
    • L
      Merge branch 'for-linus' of... · c3bf9bc2
      Linus Torvalds 提交于
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootmem-v3
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootmem-v3:
        x86_64/mm: check and print vmemmap allocation continuous
        x86_64: fix setup_node_bootmem to support big mem excluding with memmap
        x86_64: make reserve_bootmem_generic() use new reserve_bootmem()
        mm: allow reserve_bootmem() cross nodes
        mm: offset align in alloc_bootmem()
        mm: fix alloc_bootmem_core to use fast searching for all nodes
        mm: make mem_map allocation continuous
      c3bf9bc2
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild · e3505dd5
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
        kbuild: scripts/Makefile.modpost typo fix
        kbuild: soften MODULE_LICENSE check
      e3505dd5
    • Y
      x86_64/mm: check and print vmemmap allocation continuous · c2b91e2e
      Yinghai Lu 提交于
      On big systems with lots of memory, don't print out too much during
      bootup, and make it easy to find if it is continuous.
      
      on 256G 8 sockets system will get
       [ffffe20000000000-ffffe20002bfffff] PMD -> [ffff810001400000-ffff810003ffffff] on node 0
      [ffffe2001c700000-ffffe2001c7fffff] potential offnode page_structs
       [ffffe20002c00000-ffffe2001c7fffff] PMD -> [ffff81000c000000-ffff8100255fffff] on node 0
      [ffffe20038700000-ffffe200387fffff] potential offnode page_structs
       [ffffe2001c800000-ffffe200387fffff] PMD -> [ffff810820200000-ffff81083c1fffff] on node 1
       [ffffe20040000000-ffffe2007fffffff] PUD ->ffff811027a00000 on node 2
       [ffffe20038800000-ffffe2003fffffff] PMD -> [ffff811020200000-ffff8110279fffff] on node 2
      [ffffe20054700000-ffffe200547fffff] potential offnode page_structs
       [ffffe20040000000-ffffe200547fffff] PMD -> [ffff811027c00000-ffff81103c3fffff] on node 2
      [ffffe20070700000-ffffe200707fffff] potential offnode page_structs
       [ffffe20054800000-ffffe200707fffff] PMD -> [ffff811820200000-ffff81183c1fffff] on node 3
       [ffffe20080000000-ffffe200bfffffff] PUD ->ffff81202fa00000 on node 4
       [ffffe20070800000-ffffe2007fffffff] PMD -> [ffff812020200000-ffff81202f9fffff] on node 4
      [ffffe2008c700000-ffffe2008c7fffff] potential offnode page_structs
       [ffffe20080000000-ffffe2008c7fffff] PMD -> [ffff81202fc00000-ffff81203c3fffff] on node 4
      [ffffe200a8700000-ffffe200a87fffff] potential offnode page_structs
       [ffffe2008c800000-ffffe200a87fffff] PMD -> [ffff812820200000-ffff81283c1fffff] on node 5
       [ffffe200c0000000-ffffe200ffffffff] PUD ->ffff813037a00000 on node 6
       [ffffe200a8800000-ffffe200bfffffff] PMD -> [ffff813020200000-ffff8130379fffff] on node 6
      [ffffe200c4700000-ffffe200c47fffff] potential offnode page_structs
       [ffffe200c0000000-ffffe200c47fffff] PMD -> [ffff813037c00000-ffff81303c3fffff] on node 6
       [ffffe200c4800000-ffffe200e07fffff] PMD -> [ffff813820200000-ffff81383c1fffff] on node 7
      
      instead of a very long print out...
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      c2b91e2e
    • Y
      x86_64: fix setup_node_bootmem to support big mem excluding with memmap · 1a27fc0a
      Yinghai Lu 提交于
      typical case: four sockets system, every node has 4g ram, and we are using:
      
      	memmap=10g$4g
      
      to mask out memory on node1 and node2
      
      when numa is enabled, early_node_mem is used to get node_data and node_bootmap.
      
      if it can not get memory from the same node with find_e820_area(), it will
      use alloc_bootmem to get buff from previous nodes.
      
      so check it and print out some info about it.
      
      need to move early_res_to_bootmem into every setup_node_bootmem.
      and it takes range that node has. otherwise alloc_bootmem could return addr
      that reserved early.
      
      depends on "mm: make reserve_bootmem can crossed the nodes".
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1a27fc0a
    • Y
      x86_64: make reserve_bootmem_generic() use new reserve_bootmem() · 8b3cd09e
      Yinghai Lu 提交于
      "mm: make reserve_bootmem can crossed the nodes" provides new
      reserve_bootmem(), let reserve_bootmem_generic() use that.
      
      reserve_bootmem_generic() is used to reserve initramdisk, so this way
      we can make sure even when bootloader or kexec load ranges cross the
      node memory boundaries, reserve_bootmem still works.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8b3cd09e
    • Y
      mm: allow reserve_bootmem() cross nodes · a5645a61
      Yinghai Lu 提交于
      split reserve_bootmem_core() into two functions, one which checks
      conflicts, and one which sets the bits.
      
      and make reserve_bootmem to loop bdata_list to cross the nodes.
      
      user could be crashkernel and ramdisk..., in case the range provided
      by those externalities crosses the nodes.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a5645a61
    • Y
      mm: offset align in alloc_bootmem() · 9a2dc04c
      Yinghai Lu 提交于
      need offset alignment when node_boot_start's alignment is less than
      the alignment required.
      
      use local node_boot_start to match alignment - so don't add extra operation
      in search loop.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9a2dc04c
    • Y
      mm: fix alloc_bootmem_core to use fast searching for all nodes · ad09315c
      Yinghai Lu 提交于
      Make the nodes other than node 0 use bdata->last_success for fast
      search too.
      
      We need to use __alloc_bootmem_core() for vmemmap allocation for other
      nodes when numa and sparsemem/vmemmap are enabled.
      
      Also, make fail_block path increase i with incr only after ALIGN
      to avoid extra increase when size is larger than align.
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ad09315c
    • Y
      mm: make mem_map allocation continuous · e123dd3f
      Yinghai Lu 提交于
      vmemmap allocation currently has this layout:
      
       [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001400000 on node 0
       [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001800000 on node 0
       [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001c00000 on node 0
       [ffffe20000600000-ffffe200007fffff] PMD ->ffff810002000000 on node 0
       [ffffe20000800000-ffffe200009fffff] PMD ->ffff810002400000 on node 0
      ...
      
      note that there is a 2M hole between them - not optimal.
      
      the root cause is that usemap (24 bytes) will be allocated after every 2M
      mem_map, and it will push next vmemmap (2M) to the next (2M) alignment.
      
      solution: try to allocate the mem_map continously.
      
      after the patch, we get:
      
       [ffffe20000000000-ffffe200001fffff] PMD ->ffff810001400000 on node 0
       [ffffe20000200000-ffffe200003fffff] PMD ->ffff810001600000 on node 0
       [ffffe20000400000-ffffe200005fffff] PMD ->ffff810001800000 on node 0
       [ffffe20000600000-ffffe200007fffff] PMD ->ffff810001a00000 on node 0
       [ffffe20000800000-ffffe200009fffff] PMD ->ffff810001c00000 on node 0
      ...
      
      which is the ideal layout.
      
      and usemap will share a page because of they are allocated continuously too:
      
      sparse_early_usemap_alloc: usemap = ffff810024e00000 size = 24
      sparse_early_usemap_alloc: usemap = ffff810024e00080 size = 24
      sparse_early_usemap_alloc: usemap = ffff810024e00100 size = 24
      sparse_early_usemap_alloc: usemap = ffff810024e00180 size = 24
      ...
      
      so we make the bootmem allocation more compact and use less memory
      for usemap => mission accomplished ;-)
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e123dd3f
    • L
      Merge branch 'for-linus' of... · 9b79ed95
      Linus Torvalds 提交于
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-generic-bitops-v3
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-generic-bitops-v3:
        x86, bitops: select the generic bitmap search functions
        x86: include/asm-x86/pgalloc.h/bitops.h: checkpatch cleanups - formatting only
        x86: finalize bitops unification
        x86, UML: remove x86-specific implementations of find_first_bit
        x86: optimize find_first_bit for small bitmaps
        x86: switch 64-bit to generic find_first_bit
        x86: generic versions of find_first_(zero_)bit, convert i386
        bitops: use __fls for fls64 on 64-bit archs
        generic: implement __fls on all 64-bit archs
        generic: introduce a generic __fls implementation
        x86: merge the simple bitops and move them to bitops.h
        x86, generic: optimize find_next_(zero_)bit for small constant-size bitmaps
        x86, uml: fix uml with generic find_next_bit for x86
        x86: change x86 to use generic find_next_bit
        uml: Kconfig cleanup
        uml: fix build error
      9b79ed95
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · a52b0d25
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (46 commits)
        ide: constify struct ide_dma_ops
        ide: add struct ide_dma_ops (take 3)
        ide: add IDE_HFLAG_SERIALIZE_DMA host flag
        sl82c105: check bridge revision in sl82c105_init_one()
        au1xxx-ide: use ->init_dma method
        palm_bk3710: use ->init_dma method
        sgiioc4: use ->init_dma method
        icside: use ->init_dma method
        ide-pmac: use ->init_dma method
        ide: do complete DMA setup in ->init_dma method (take 2)
        au1xxx-ide: fix MWDMA support
        ide: cleanup ide_setup_dma()
        ide: factor out setting PCI bus-mastering from ide_hwif_setup_dma()
        ide: export ide_allocate_dma_engine()
        ide: move ide_setup_dma() call out from ->init_dma method
        alim15x3: skip DMA initialization completely on revs < 0x20
        pdc202xx_old: remove init_dma_pdc202xx()
        ide: don't display "BIOS" settings in ide_setup_dma()
        ide: remove ->cds field from ide_hwif_t (take 2)
        ide: remove ide_dma_iobase()
        ...
      a52b0d25
    • L
      Merge branch 'for-linus' of... · 539a5fe2
      Linus Torvalds 提交于
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootparam
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-bigbox-bootparam:
        x86, boot: Document for linked list of struct setup_data
        x86, boot: export linked list of struct setup_data via debugfs
        x86, boot: add linked list of struct setup_data
        x86, boot: add free_early to early reservation machanism
      539a5fe2
    • B
      ide: constify struct ide_dma_ops · f37afdac
      Bartlomiej Zolnierkiewicz 提交于
      * Export ide_dma_exec_cmd() and __ide_dma_test_irq().
      
      * Constify struct ide_dma_ops.
      
      * Always set hwif->dma_ops to &sff_dma_ops in ide_setup_dma()
        (it is later overriden by ide_init_port() if needed) and drop
        'const struct ide_port_info *d' argument.
      
      While at it:
      
      * Rename __ide_dma_test_irq() to ide_dma_test_irq().
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      f37afdac
    • B
      ide: add struct ide_dma_ops (take 3) · 5e37bdc0
      Bartlomiej Zolnierkiewicz 提交于
      Add struct ide_dma_ops and convert core code + drivers to use it.
      
      While at it:
      
      * Drop "ide_" prefix from ->ide_dma_end and ->ide_dma_test_irq methods.
      
      * Drop "ide_" "infixes" from DMA methods.
      
      * au1xxx-ide.c:
        - use auide_dma_{test_irq,end}() directly in auide_dma_timeout()
      
      * pdc202xx_old.c:
        - drop "old_" "infixes" from DMA methods
      
      * siimage.c:
        - add siimage_dma_test_irq() helper
        - print SATA warning in siimage_init_one()
      
      * Remove no longer needed ->init_hwif implementations.
      
      v2:
      * Changes based on review from Sergei:
        - s/siimage_ide_dma_test_irq/siimage_dma_test_irq/
        - s/drive->hwif/hwif/ in idefloppy_pc_intr().
        - fix patch description w.r.t. au1xxx-ide changes
        - fix au1xxx-ide build
        - fix naming for cmd64*_dma_ops
        - drop "ide_" and "old_" infixes
        - s/hpt3xxx_dma_ops/hpt37x_dma_ops/
        - s/hpt370x_dma_ops/hpt370_dma_ops/
        - use correct DMA ops for HPT302/N, HPT371/N and HPT374
        - s/it821x_smart_dma_ops/it821x_pass_through_dma_ops/
      
      v3:
      * Two bugs slipped in v2 (noticed by Sergei):
        - use correct DMA ops for HPT374 (for real this time)
        - handle HPT370/HPT370A properly
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      5e37bdc0
    • B
      ide: add IDE_HFLAG_SERIALIZE_DMA host flag · 1fd18905
      Bartlomiej Zolnierkiewicz 提交于
      * Add IDE_HFLAG_SERIALIZE_DMA host flag to serialize ports
        if DMA is available and handle it in ide_init_port().
      
      * Convert sl82c105 host driver to use this new flag.
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      1fd18905
    • B
      sl82c105: check bridge revision in sl82c105_init_one() · 6c610641
      Bartlomiej Zolnierkiewicz 提交于
      * Make sl82c105_bridge_revision() return 'u8' instead of 'unsigned long'.
      
      * Check bridge revision in sl82c105_init_one().
      
      While at:
      
      * Use proper KERN_ level for printk().
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      6c610641
    • B
      au1xxx-ide: use ->init_dma method · 85528659
      Bartlomiej Zolnierkiewicz 提交于
      * Pass 'ide_hwif_t *hwif' instead of '_auide_hwif *auide' to
        auide_ddma_init().
      
      * Add 'const struct ide_port_info *d' argument to auide_ddma_init().
      
      * Convert the driver to use ->init_dma method.
      Acked-by: NSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: NBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      85528659