09 Jan, 2012

2 commits

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
    PM / Hibernate: Implement compat_ioctl for /dev/snapshot
    PM / Freezer: fix return value of freezable_schedule_timeout_killable()
    PM / shmobile: Allow the A4R domain to be turned off at run time
    PM / input / touchscreen: Make st1232 use device PM QoS constraints
    PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
    PM / shmobile: Remove the stay_on flag from SH7372's PM domains
    PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
    PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
    PM: Drop generic_subsys_pm_ops
    PM / Sleep: Remove forward-only callbacks from AMBA bus type
    PM / Sleep: Remove forward-only callbacks from platform bus type
    PM: Run the driver callback directly if the subsystem one is not there
    PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers
    PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
    PM / Sleep: Merge internal functions in generic_ops.c
    PM / Sleep: Simplify generic system suspend callbacks
    PM / Hibernate: Remove deprecated hibernation snapshot ioctls
    PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()
    ARM: S3C64XX: Implement basic power domain support
    PM / shmobile: Use common always on power domain governor
    ...

    Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused
    XBT_FORCE_SLEEP bit

    Linus Torvalds
     
  • * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
    reiserfs: Properly display mount options in /proc/mounts
    vfs: prevent remount read-only if pending removes
    vfs: count unlinked inodes
    vfs: protect remounting superblock read-only
    vfs: keep list of mounts for each superblock
    vfs: switch ->show_options() to struct dentry *
    vfs: switch ->show_path() to struct dentry *
    vfs: switch ->show_devname() to struct dentry *
    vfs: switch ->show_stats to struct dentry *
    switch security_path_chmod() to struct path *
    vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
    vfs: trim includes a bit
    switch mnt_namespace ->root to struct mount
    vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
    vfs: opencode mntget() mnt_set_mountpoint()
    vfs: spread struct mount - remaining argument of next_mnt()
    vfs: move fsnotify junk to struct mount
    vfs: move mnt_devname
    vfs: move mnt_list to struct mount
    vfs: switch pnode.h macros to struct mount *
    ...

    Linus Torvalds
     

07 Jan, 2012

2 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (21 commits)
    m68k/mac: Make CONFIG_HEARTBEAT unavailable on Mac
    m68k/serial: Remove references to obsolete serial config options
    m68k/net: Remove obsolete IRQ_FLG_* users
    m68k: Don't comment out syscalls used by glibc
    m68k/atari: Move declaration of atari_SCC_reset_done to header file
    m68k/serial: Remove references to obsolete CONFIG_SERIAL167
    m68k/hp300: Export hp300_ledstate
    m68k: Initconst section fixes
    m68k/mac: cleanup macro case
    mac_scsi: fix mac_scsi on some powerbooks
    m68k/mac: fix powerbook 150 adb_type
    m68k/mac: fix baboon irq disable and shutdown
    m68k/mac: oss irq fixes
    m68k/mac: fix nubus slot irq disable and shutdown
    m68k/mac: enable via_alt_mapping on performa 580
    m68k/mac: cleanup forward declarations
    m68k/mac: cleanup mac_irq_pending
    m68k/mac: cleanup mac_clear_irq
    m68k/mac: early console
    m68k/mvme16x: Add support for EARLY_PRINTK
    ...

    Fix up trivial conflict in arch/m68k/Kconfig.debug due to new
    EARLY_PRINTK config option addition clashing with movement of the
    BOOTPARAM options.

    Linus Torvalds
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (56 commits)
    m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled
    m68k/Kconfig: Separate classic m68k and coldfire early
    m68k: add ColdFire with MMU enabled support to the m68k mem init code
    m68k: do not use m68k startup or interrupt code for ColdFire CPUs
    m68k: add ColdFire FPU support for the V4e ColdFire CPUs
    m68k: adjustments to stack frame for ColdFire with MMU enabled
    m68k: use non-MMU linker script for ColdFire MMU builds
    m68k: ColdFire with MMU enabled uses same clocking code as non-MMU
    m68k: add code to setup a ColdFire 54xx platform when MMU enabled
    m68k: use non-MMU entry.S code when compiling for ColdFire CPU
    m68k: create ColdFire MMU pgalloc code
    m68k: compile appropriate mm arch files for ColdFire MMU support
    m68k: ColdFire V4e MMU paging init code and miss handler
    m68k: use ColdFire MMU read/write bit flags when ioremapping
    m68k: modify cache push and clear code for ColdFire with MMU enable
    m68k: use tracehook_report_syscall_entry/exit for ColdFire MMU ptrace path
    m68k: ColdFire V4e MMU context support code
    m68k: MMU enabled ColdFire needs 8k ELF alignment
    m68k: set ColdFire MMU page size
    m68k: define PAGE_OFFSET_RAW for ColdFire CPU with MMU enabled
    ...

    Linus Torvalds
     

04 Jan, 2012

2 commits


30 Dec, 2011

21 commits

  • The V4e ColdFire CPU family also has an integrated FPU (as well as the MMU).
    So add code to support this hardware along side the existing m68k FPU code.

    The ColdFire FPU is of course different to all previous 68k FP units. It is
    close in operation to the 68060, but not completely compatible. The biggest
    issue to deal with is that the ColdFire FPU multi-move instructions are
    different. It does not support multi-moving the FP control registers, and
    the multi-move of the FP data registers uses a different instruction
    mnemonic.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Add code to support the ColdFire V4e MMU pgalloc functions.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • The different ColdFire V4e MMU requires its own dedicated paging init
    code, and a TLB miss handler for its software driven TLB.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • The ColdFire MMU has separate read and write bits, unlike the Motorola
    m68k MMU which has a single read-only bit.

    Define a _PAGE_READWRITE value for the Motorola MMU, which is 0, so we
    can unconditionaly include that in the page table entry bits when setting
    up ioremapped pages.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Add code to manage the context's of the ColdFire V4e MMU. This code is
    mostly taken from the Freescale 2.6.35 kernel BSP for MMU enabled ColdFire.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Like the SUN3 hardware MMU the ColdFire MMU uses 8k pages. So we want
    our ELF page size alingment to also be 8k. Modify the ELF alignment
    setting.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • We use the ColdFire V4e MMU page size of 8KiB. Define PAGE_SHIFT
    appropriately.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • The ColdFire CPU configurations need PAGE_OFFSET_RAW set to the base of
    their RAM. It doesn't matter if they are running with the MMU enabled or
    disabled, it is always set to the base of RAM.

    We can keep the choices simple here and key of CONFIG_RAMBASE. If it is
    defined we are on a plaftorm (ColdFire or other non-MMU systems) which
    have a configurable RAM base, just use it.

    Reported-by: Alexander Stein
    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • The ColdFire V4e MMU is unlike any of the other m68k MMU hardware.
    It needs its own TLB flush support code.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Modify the cache setup for the ColdFire 54xx parts when running with
    the MMU enabled.

    We want to map the peripheral register space (MBAR region) as non
    cacheable. And create an identity mapping for all of RAM for the
    kernel.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Add code to deal with instruction, data and branch caches of the V4e
    ColdFire cores when they are running with the MMU enabled.

    This code is loosely based on Freescales changes for the caches of the
    V4e ColdFire in the 2.6.25 kernel BSP. That code was originally by
    Kurt Mahan (now ).

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Define the page table size and attributes for the ColdFire V4e MMU.
    Also setup the vmalloc and kmap regions we will use.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • The ColdFire V4e MMU is nothing like any of the other m68k MMU's.
    So we need to create a set of definitions and support routines
    for the kernels paging functions.

    This is largely taken from Freescales BSP code for this (though it
    was a 2.6.25 kernel). I have cleaned it up alot from the original.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Virtual memory m68k systems build with register a2 dedicated to being the
    current proc pointer (non-MMU don't do this). Add code to the ColdFire
    interrupt and exception processing to set this on entry, and at context
    switch time. We use the same GET_CURRENT() macro that MMU enabled code
    uses - modifying it so that the assembler is ColdFire clean.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Add code to the 54xx ColdFire CPU init to setup memory ready for the m68k
    paged memory start up.

    Some of the RAM variables that were specific to the non-mmu code paths
    now need to be used during this setup, so when CONFIG_MMU is enabled.
    Move these out of page_no.h and into page.h.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • The ColdFire CPU family, and the original 68000, do not support separate
    address spaces like the other 680x0 CPU types. Modify the set_fs()/get_fs()
    functions and macros to use a thread_info addr_limit for address space
    checking. This is pretty much what all other architectures that do not
    support separate setable address spaces do.

    Signed-off-by: Alexander Stein
    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Modify the user space access functions to support the ColdFire V4e cores
    running with MMU enabled.

    The ColdFire processors do not support the "moves" instruction used by
    the traditional 680x0 processors for moving data into and out of another
    address space. They only support the notion of a single address space,
    and you use the usual "move" instruction to access that.

    Create a new config symbol (CONFIG_CPU_HAS_ADDRESS_SPACES) to mark the
    CPU types that support separate address spaces, and thus also support
    the sfc/dfc registers and the "moves" instruction that go along with that.

    The code is almost identical for user space access, so lets just use a
    define to choose either the "move" or "moves" in the assembler code.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Add appropriate TASK_SIZE and TASK_UNMAPPED_BASE definitions for running
    on ColdFire V4e cores with MMU enabled.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • The interrupt handling support defines and code is not so much conditional
    on an MMU being present (CONFIG_MMU), as it is on which type of CPU we are
    building for. So make the code conditional on the CPU types instead. The
    current irq.h is mostly specific to the interrupt code for the 680x0 CPUs,
    so it should only be used for them.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Basic register level definitions to support the internal MMU of the
    V4e ColdFire cores.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • Create machine and CPU definitions to support the ColdFire CPU family
    members that have a virtual memory management unit.

    The ColdFire V4e core contains an MMU, and it is quite different to
    any other 68k family members.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     

24 Dec, 2011

9 commits

  • The code that used the anchor.h include file has long been removed from
    the kernel. Remove it too.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The traditional 68000 processors and the newer reduced instruction set
    ColdFire processors do not support the 32*32->64 multiply or the 64/32->32
    divide instructions. This is not a difference based on the presence of
    a hardware MMU or not.

    Create a new config symbol to mark that a CPU type doesn't support the
    longer multiply/divide instructions. Use this then as a basis for using
    the fast 64bit based divide (in div64.h) and for linking in the extra
    libgcc functions that may be required (mulsi3, divsi3, etc).

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • We have two implementations of the IP checksuming code for the m68k arch.
    One uses the more advanced instructions available in 68020 and above
    processors, the other uses the simpler instructions available on the
    original 68000 processors and the modern ColdFire processors.

    This simpler code is pretty much the same as the generic lib implementation
    of the IP csum functions. So lets just switch over to using that. That
    means we can completely remove the checksum_no.c file, and only have the
    local fast code used for the more complex 68k CPU family members.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • There is no reason we can't make the saved fp registers the same for all
    m68k types and ColdFire. There is a little wasted space, but the code
    consistency and cleanliness is a big win.

    sigcontext.h is an exported header, but currently there is no in-mainline
    users of the !__uClinux__ and __mcoldfire__ case that this change effects.
    Even better this change actually makes this structure consistent with
    the out-of-mainline ColdFire/MMU code.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • Output a table of the kernel memory regions at boot time.
    This is taken directly from the ARM architecture code that does this.
    The table looks like this:

    Virtual kernel memory layout:
    vector : 0x00000000 - 0x00000400 ( 0 KiB)
    kmap : 0xd0000000 - 0xe0000000 ( 256 MiB)
    vmalloc : 0xc0000000 - 0xcfffffff ( 255 MiB)
    lowmem : 0x00000000 - 0x02000000 ( 32 MiB)
    .init : 0x00128000 - 0x00134000 ( 48 KiB)
    .text : 0x00020000 - 0x00118d54 ( 996 KiB)
    .data : 0x00118d60 - 0x00126000 ( 53 KiB)
    .bss : 0x00134000 - 0x001413e0 ( 53 KiB)

    This has been very useful while debugging the ColdFire virtual memory
    support code. But in general I think it is nice to know extacly where
    the kernel has layed everything out on boot.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Currently on m68k we have a comeplete thread_info structure stored inside
    of the thread_struct, and we also have it in the initial part of the kernel
    stack. Mostly the code currently uses the one inside of the thread_struct,
    only using the "task" pointer from the stack based one.

    This is wasteful and confusing, we should only have the single instance of
    thread_info inside the stack page. And this is the norm for all other
    architectures.

    This change makes m68k handle thread_info consistently on both MMU enabled
    and non-MMU setups.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • We have a duplicate name and definition for the offset of the thread.info
    struct within the task struct in our asm-offsets.c code. Remove one of them,
    and consolidate to use a single define, TASK_INFO.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • gpiolib provides __gpio_to_irq() to map gpiolib gpios to interrupts - hook
    that up on m68k.

    Signed-off-by: Mark Brown
    Signed-off-by: Greg Ungerer

    Mark Brown
     
  • Conflicts:
    net/bluetooth/l2cap_core.c

    Just two overlapping changes, one added an initialization of
    a local variable, and another change added a new local variable.

    Signed-off-by: David S. Miller

    David S. Miller
     

22 Dec, 2011

1 commit

  • * master: (848 commits)
    SELinux: Fix RCU deref check warning in sel_netport_insert()
    binary_sysctl(): fix memory leak
    mm/vmalloc.c: remove static declaration of va from __get_vm_area_node
    ipmi_watchdog: restore settings when BMC reset
    oom: fix integer overflow of points in oom_badness
    memcg: keep root group unchanged if creation fails
    nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()
    nilfs2: unbreak compat ioctl
    cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask
    evm: prevent racing during tfm allocation
    evm: key must be set once during initialization
    mmc: vub300: fix type of firmware_rom_wait_states module parameter
    Revert "mmc: enable runtime PM by default"
    mmc: sdhci: remove "state" argument from sdhci_suspend_host
    x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT
    IB/qib: Correct sense on freectxts increment and decrement
    RDMA/cma: Verify private data length
    cgroups: fix a css_set not found bug in cgroup_attach_proc
    oprofile: Fix uninitialized memory access when writing to writing to oprofilefs
    Revert "xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel"
    ...

    Conflicts:
    kernel/cgroup_freezer.c

    Rafael J. Wysocki
     

11 Dec, 2011

3 commits