04 Mar, 2008

9 commits

  • This patch adds proper externs for two structs in include/linux/genhd.h

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jens Axboe

    Adrian Bunk
     
  • This patch contains the following cleanups:
    - make the needlessly global struct disk_type static
    - #if 0 the unused genhd_media_change_notify()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jens Axboe

    Adrian Bunk
     
  • Block layer alignment was used for two different purposes - memory
    alignment and padding. This causes problems in lower layers because
    drivers which only require memory alignment ends up with adjusted
    rq->data_len. Separate out padding such that padding occurs iff
    driver explicitly requests it.

    Tomo: restorethe code to update bio in blk_rq_map_user
    introduced by the commit 40b01b9bbdf51ae543a04744283bf2d56c4a6afa
    according to padding alignment.

    Signed-off-by: Tejun Heo
    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • The meaning of rq->data_len was changed to the length of an allocated
    buffer from the true data length. It breaks SG_IO friends and
    bsg. This patch restores the meaning of rq->data_len to the true data
    length and adds rq->extra_len to store an extended length (due to
    drain buffer and padding).

    This patch also removes the code to update bio in blk_rq_map_user
    introduced by the commit 40b01b9bbdf51ae543a04744283bf2d56c4a6afa.
    The commit adjusts bio according to memory alignment
    (queue_dma_alignment). However, memory alignment is NOT padding
    alignment. This adjustment also breaks SG_IO friends and bsg. Padding
    alignment needs to be fixed in a proper way (by a separate patch).

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • Provide comments and fix up various spelling / style issues.

    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • This only made sense for the alternate fastpath which was reverted last week.

    Mathieu is working on a new version that addresses the fastpath issues but that
    new code first needs to go through mm and it is not clear if we need the
    unique end pointers with his new scheme.

    Reviewed-by: Pekka Enberg
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     
  • Fix docbook problems in USB source files.
    These cause the generated docbook to be incorrect.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (24 commits)
    [POWERPC] Convert the cell IOMMU fixed mapping to 16M IOMMU pages
    [POWERPC] Allow for different IOMMU page sizes in cell IOMMU code
    [POWERPC] Cell IOMMU: n_pte_pages is in 4K page units, not IOMMU_PAGE_SIZE
    [POWERPC] Split setup of IOMMU stab and ptab, allocate dynamic/fixed ptabs separately
    [POWERPC] Move allocation of cell IOMMU pad page
    [POWERPC] Remove unused pte_offset variable
    [POWERPC] Use it_offset not pte_offset in cell IOMMU code
    [POWERPC] Clearup cell IOMMU fixed mapping terminology
    [POWERPC] enable hardware watchpoints on cell blades
    [POWERPC] move celleb DABRX definitions
    [POWERPC] OProfile: enable callgraph support for Cell
    [POWERPC] spufs: fix use time accounting on SPE-overcommit
    [POWERPC] spufs: serialize SLB invalidation against SLB loading
    [POWERPC] spufs: invalidate SLB translation before adding a new entry
    [POWERPC] spufs: synchronize IRQ when disabling
    [POWERPC] spufs: fix order of sputrace thread IDs
    [POWERPC] Xilinx: hwicap cleanup
    [POWERPC] 4xx: Use correct board info structure in cuboot wrappers
    [POWERPC] spufs: fix invalid scheduling of forgotten contexts
    [POWERPC] 44x: add missing define TARGET_4xx and TARGET_440GX to cuboot-taishan
    ...

    Linus Torvalds
     
  • This reverts commit cded932b75ab0a5f9181ee3da34a0a488d1a14fd.

    Arjan bisected down a boot-time hang to this, saying:
    ".. it prevents the kernel to finish booting on my (Penryn based)
    laptop. The boot stops right after freeing the init memory."

    and while it's not clear exactly what triggers it, at this stage we're
    better off just reverting it while Ingo tries to figure out what went
    wrong.

    Requested-by: Arjan van de Ven
    Cc: Hans Rosenfeld
    Cc: Nish Aravamudan
    Acked-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Mar, 2008

1 commit


01 Mar, 2008

15 commits

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 4843/1: Add GCR_CLKBPB for PXA3xx
    [ARM] 4842/1: pxa: remove redundant IRQ saving/restoring in clk_pxa3xx_cken_*
    [ARM] 4841/1: pxa: fix typo in LCD platform data definition code for zylonite
    [ARM] 4840/1: pxa: fix the typo in get_irqnr_and_base
    [ARM] 4839/1: fixes kernel Oops in /dev/mem device driver for memory map with PHYS_OFF
    [ARM] eliminate MODULE_PARM() usage
    [ARM] 4838/1: Fix kexec for SA1100 machines
    [ARM] 4837/1: make __get_unaligned_*() return unsigned types
    [ARM] 4836/1: Make ATAGS_PROC depend on KEXEC

    Linus Torvalds
     
  • The PXA3xx AC97 controller has an additional control bit GCR_CLKBPB
    which must be used during cold reset.

    Signed-off-by: Mark Brown
    Acked-by: eric miao
    Signed-off-by: Russell King

    Mark Brown
     
  • This typo causes the incorrect calculation of the IRQ numbers
    in the ICIP2 registers.

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • This patch sets KEXEC_CONTROL_MEMORY_LIMIT to (-1)UL. As the value is
    compared with physical addresses TASK_SIZE makes no sense. Machines
    where the RAM addresses start above TASK_SIZE kexecs eats all memory
    and crashes the kernel without this patch.

    Signed-off-by: Thomas Kunze
    Acked-by: Richard Purdie
    Signed-off-by: Russell King

    Thomas Kunze
     
  • Eric Sandeen tracked an XFS on ARM corruption bug down to a function
    under fs/xfs/ involving some get_unaligned() calls on u64 pointers.
    As it turns out, calling ARM's get_unaligned() on a u64 pointer
    pointing to the following byte sequence:

    80 81 82 83 84 85 86 87

    would return ffffffff83828180 (LE mode.) This turns out to be
    because of implicit u8 -> int promotion in ARM's implementation of
    various helpers for get_unaligned(), causing them to accidentally
    return signed instead of unsigned values, which in turn caused the
    subsequent casts to unsigned long long in __get_unaligned_8_[bl]e()
    to sign-extend the lower words.

    Fix by casting the return values of __get_unaligned_[24]_[bl]e()
    to unsigned int.

    Cc: Eric Sandeen
    Cc: Rabeeh Khoury
    Cc: Nicolas Pitre
    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Russell King

    Lennert Buytenhek
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
    softlockup: fix task state setting
    rcu: add support for dynamic ticks and preempt rcu

    Linus Torvalds
     
  • The 2.6.25 ptrace_bts_config structure in asm-x86/ptrace-abi.h
    is defined with u32 types:

    #include

    /* configuration/status structure used in PTRACE_BTS_CONFIG and
    PTRACE_BTS_STATUS commands.
    */
    struct ptrace_bts_config {
    /* requested or actual size of BTS buffer in bytes */
    u32 size;
    /* bitmask of below flags */
    u32 flags;
    /* buffer overflow signal */
    u32 signal;
    /* actual size of bts_struct in bytes */
    u32 bts_size;
    };
    #endif

    But u32 is only accessible in asm-x86/types.h if __KERNEL__,
    leading to compile errors when ptrace.h is included from
    user-space. The double-underscore versions that are exported
    to user-space in asm-x86/types.h should be used instead.

    Signed-off-by: Dave Anderson
    Signed-off-by: Ingo Molnar

    Dave Anderson
     
  • I recently stumbled upon a problem in the support for huge pages. If a
    program using huge pages does not explicitly unmap them, they remain
    mapped (and therefore, are lost) after the program exits.

    I observed that the free huge page count in /proc/meminfo decreased when
    running my program, and it did not increase after the program exited.
    After running the program a few times, no more huge pages could be
    allocated.

    The reason for this seems to be that the x86 pmd_bad and pud_bad
    consider pmd/pud entries having the PSE bit set invalid. I think there
    is nothing wrong with this bit being set, it just indicates that the
    lowest level of translation has been reached. This bit has to be (and
    is) checked after the basic validity of the entry has been checked, like
    in this fragment from follow_page() in mm/memory.c:

    if (pmd_none(*pmd) || unlikely(pmd_bad(*pmd)))
    goto no_page_table;

    if (pmd_huge(*pmd)) {
    BUG_ON(flags & FOLL_GET);
    page = follow_huge_pmd(mm, address, pmd, flags & FOLL_WRITE);
    goto out;
    }

    Note that this code currently doesn't work as intended if the pmd refers
    to a huge page, the pmd_huge() check can not be reached if the page is
    huge.

    Extending pmd_bad() (and, for future 1GB page support, pud_bad()) to
    allow for the PSE bit being set fixes this. For similar reasons,
    allowing the NX bit being set is necessary, too. I have seen huge pages
    having the NX bit set in their pmd entry, which would cause the same
    problem.

    Signed-Off-By: Hans Rosenfeld
    Signed-off-by: Ingo Molnar

    Hans Rosenfeld
     
  • The PREEMPT-RCU can get stuck if a CPU goes idle and NO_HZ is set. The
    idle CPU will not progress the RCU through its grace period and a
    synchronize_rcu my get stuck. Without this patch I have a box that will
    not boot when PREEMPT_RCU and NO_HZ are set. That same box boots fine
    with this patch.

    This patch comes from the -rt kernel where it has been tested for
    several months.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Paul E. McKenney
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • * 'avr32-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
    avr32: Fix OCD refcounting bug
    avr32: Call tick_nohz_{stop,restart}_sched_tick() in idle loop
    avr32: Use correct config symbol in atstk1004 board code
    avr32: Fix broken pte dump code in do_page_fault()
    AVR32: Define PAGE_SHARED

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (35 commits)
    Blackfin Serial Driver: Fix bug - Only insert UART rx char in timer task.
    Blackfin Serial Driver: Fix bug - update tx dma buffer tail before wake up processes.
    Blackfin Serial Driver: Fix bug - Increase buffer tail immediately before starting tx dma.
    [Blackfin] serial driver: Add flow control support to bf54x
    [Blackfin] serial driver: Fix bug Poll RTS/CTS status in DMA mode as well
    [Blackfin] serial driver: ADSP-BF52x arch/mach support
    [Blackfin] serial driver: use simpler comment headers and strip out information that is maintained in the scm's log
    [Blackfin] serial driver: rework break flood anomaly handling to be more robust/realistic about what we can actually work around
    [Blackfin] serial driver: fix bug - cache the bits of the LSR on systems where the LSR is read-to-clear
    [Blackfin] serial driver: fix bug - should not wait for the TFI bit, just clear it when tx stop.
    [Blackfin] serial driver: Fix bug serial driver in DMA mode spams history to console on shell restart
    [Blackfin] serial driver: Fix bug Free rx dma buffer in shutdown.
    [Blackfin] serial driver: Clean up UART DMA code.
    Blackfin Serial driver: Fix bug - serial driver in PIO mode cant handle input very quickly
    [Blackfin] arch: kill section mismatch warnings
    [Blackfin] arch: handle the most common L1 shrinkage case (L1 does not exist for a part) so that any parts labeled for L1 instead get placed into external memory sections
    [Blackfin] arch: add bfin_clear_PPIx_STATUS() helper funcs like we have for other parts
    [Blackfin] arch: make sure we have proper description/copyright/license lines
    [Blackfin] arch: Fix CONFIG_PM support for BF561
    [Blackfin] arch: Remove DPMC char driver option
    ...

    Linus Torvalds
     
  • This removes code duplication and makes __dec_zone_page_state look like
    __inc_zone_page_state.

    Signed-off-by: Uwe Kleine-König
    Acked-by: Christoph Lameter
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
    arch/sh/drivers/dma/dma-sh.c: Correct use of ! and &
    serial: Move asm-sh/sci.h to linux/serial_sci.h.
    sh: Fix up HAS_SR_RB typo in entry-macros.

    maple: fix device detection
    sh: fix rtc_resources setup for sh770x
    sh: heartbeat: ioremap is expected to succeed
    sh: Storage class should be before const qualifier
    maple: remove unused variable
    sh: SH5-103 needs to select CPU_SH5.
    sh: Rename SH-3 CCR3 reg to avoid synclink_cs clash.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (79 commits)
    [X25]: Use proc_create() to setup ->proc_fops first
    [WANROUTER]: Use proc_create() to setup ->proc_fops first
    [8021Q]: Use proc_create() to setup ->proc_fops first
    [IPV4]: Use proc_create() to setup ->proc_fops first
    [IPV6]: Use proc_create() to setup ->proc_fops first
    [SCTP]: Use proc_create() to setup ->proc_fops first
    [PKTGEN]: Use proc_create() to setup ->proc_fops first
    [NEIGHBOUR]: Use proc_create() to setup ->proc_fops first
    [LLC]: Use proc_create() to setup ->proc_fops first
    [IPX]: Use proc_create() to setup ->proc_fops first
    [SUNRPC]: Use proc_create() to setup ->proc_fops first
    [ATM]: Use proc_create() to setup ->proc_fops first
    [SCTP]: Update AUTH structures to match declarations in draft-16.
    [SCTP]: Incorrect length was used in SCTP_*_AUTH_CHUNKS socket option
    [SCTP]: Clean up naming conventions of sctp protocol/address family registration
    [APPLETALK]: Use proc_create() to setup ->proc_fops first
    [BNX2X]: add bnx2x to MAINTAINERS
    [BNX2X]: update version, remove CVS strings
    [BNX2X]: Fix Xmit bugs
    [BNX2X]: Prevent PCI queue overflow
    ...

    Linus Torvalds
     
  • I overlooked the difference between __kernel_uid_t and uid_t when defining
    struct compat_elf_prpsinfo. The result is a regression in 32-bit core
    dumps on x86_64, where the NT_PRPSINFO note has the wrong size and layout.
    This patch fixes it.

    Signed-off-by: Roland McGrath
    Acked-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Roland McGrath
     

29 Feb, 2008

2 commits


28 Feb, 2008

1 commit

  • Properly add parens around the macro argument. This is not needed by
    the kernel but the macro is exported to userspace, so it shouldn't
    make any assumptions.

    Also use NF_VERDICT_BITS instead of NF_VERDICT_QBTIS for the left-shift
    since thats whats logically correct.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

27 Feb, 2008

1 commit


26 Feb, 2008

11 commits

  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: add missing ext4_journal_stop()
    ext4: ext4_find_next_zero_bit needs an aligned address on some arch
    ext4: set EXT4_EXTENTS_FL only for directory and regular files
    ext4: Don't mark filesystem error if fallocate fails
    ext4: Fix BUG when writing to an unitialized extent
    ext4: Don't use ext4_dec_count() if not needed
    ext4: modify block allocation algorithm for the last group
    ext4: Don't claim block from group which has corrupt bitmap
    ext4: Get journal write access before modifying the extent tree
    ext4: Fix memory and buffer head leak in callers to ext4_ext_find_extent()
    ext4: Don't leave behind a half-created inode if ext4_mkdir() fails
    ext4: Fix kernel BUG at fs/ext4/mballoc.c:910!
    ext4: Fix locking hierarchy violation in ext4_fallocate()
    Remove incorrect BKL comments in ext4

    Linus Torvalds
     
  • …git/peterz/linux-2.6-lockdep

    * 'v2.6.25-rc3-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:
    Subject: lockdep: include all lock classes in all_lock_classes
    lockdep: increase MAX_LOCK_DEPTH

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (24 commits)
    x86: no robust/pi futex for real i386 CPUs
    x86: fix boot failure on 486 due to TSC breakage
    x86: fix build on non-C locales.
    x86: make c_idle.work have a static address.
    x86: don't save unreliable stack trace entries
    x86: don't make swapper_pg_pmd global
    x86: don't print a warning when MTRR are blank and running in KVM
    x86: fix execve with -fstack-protect
    x86: fix vsyscall wreckage
    x86: rename KERNEL_TEXT_SIZE => KERNEL_IMAGE_SIZE
    x86: fix spontaneous reboot with allyesconfig bzImage
    x86: remove double-checking empty zero pages debug
    x86: notsc is ignored on common configurations
    x86/mtrr: fix kernel-doc missing notation
    x86: handle BIOSes which terminate e820 with CF=1 and no SMAP
    x86: add comments for NOPs
    x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC
    x86: require family >= 6 if we are using P6 NOPs
    x86: do not promote TM3x00/TM5x00 to i686-class
    x86: hpet fix docbook comment
    ...

    Linus Torvalds
     
  • Real i386 CPUs do not have cmpxchg instructions. Catch it before
    crashing on an invalid opcode.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • The KERNEL_TEXT_SIZE constant was mis-named, as we not only map the kernel
    text but data, bss and init sections as well.

    That name led me on the wrong path with the KERNEL_TEXT_SIZE regression,
    because i knew how big of _text_ my images have and i knew about the 40 MB
    "text" limit so i wrongly thought to be on the safe side of the 40 MB limit
    with my 29 MB of text, while the total image size was slightly above 40 MB.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • recently the 64-bit allyesconfig bzImage kernel started spontaneously
    rebooting during early bootup.

    after a few fun hours spent with early init debugging, it turns out
    that we've got this rather annoying limit on the size of the kernel
    image:

    #define KERNEL_TEXT_SIZE (40*1024*1024)

    which limit my vmlinux just happened to pass:

    text data bss dec hex filename
    29703744 4222751 8646224 42572719 2899baf vmlinux

    40 MB is 42572719 bytes, so my vmlinux was just 1.5% above this limit :-/

    So it happily crashed right in head_64.S, which - as we all know - is
    the most debuggable code in the whole architecture ;-)

    So increase the limit to allow an up to 128MB kernel image to be mapped.
    (should anyone be that crazy or lazy)

    We have a full 4K of pagetable (level2_kernel_pgt) allocated for these
    mappings already, so there's no RAM overhead and the limit was rather
    pointless and arbitrary.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Add comments describing the various NOP sequences.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    H. Peter Anvin
     
  • The P6 family of NOPs are only available on family >= 6 or above, so
    enforce that in the boot code.

    Signed-off-by: H. Peter Anvin
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    H. Peter Anvin
     
  • Added a declaration to asm-x86/lguest.h and moved the extern arrays there
    as well. As an alternative to including asm/lguest.h directly, an
    include could be put in linux/lguest.h

    Signed-off-by: Harvey Harrison
    Cc: "rusty@rustcorp.com.au"
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Harvey Harrison
     
  • This header is needed on other architectures as well (namely h8300),
    which currently fails to build without this in place. Rather than
    duplicating the port definition completely there, just move this to a
    common location instead.

    This should get h8300 working again for 2.6.25, in addition to the
    changes already pushed by Sato-san in -rc2.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Signed-off-by: Hideo Saito
    Signed-off-by: Paul Mundt

    Hideo Saito