Skip to content

Commit

Permalink
microblaze: Remove segment.h
Browse files Browse the repository at this point in the history
I would like to use asm-generic uaccess.h where are segment
macros defined. This is just first step.

Signed-off-by: Michal Simek <monstr@monstr.eu>
  • Loading branch information
Michal Simek committed Apr 1, 2010
1 parent 4009819 commit 40db083
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 52 deletions.
1 change: 0 additions & 1 deletion arch/microblaze/include/asm/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#include <asm/ptrace.h>
#include <asm/setup.h>
#include <asm/registers.h>
#include <asm/segment.h>
#include <asm/entry.h>
#include <asm/current.h>

Expand Down
49 changes: 0 additions & 49 deletions arch/microblaze/include/asm/segment.h

This file was deleted.

5 changes: 4 additions & 1 deletion arch/microblaze/include/asm/thread_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
#ifndef __ASSEMBLY__
# include <linux/types.h>
# include <asm/processor.h>
# include <asm/segment.h>

/*
* low level task data that entry.S needs immediate access to
Expand Down Expand Up @@ -60,6 +59,10 @@ struct cpu_context {
__u32 fsr;
};

typedef struct {
unsigned long seg;
} mm_segment_t;

struct thread_info {
struct task_struct *task; /* main task structure */
struct exec_domain *exec_domain; /* execution domain */
Expand Down
30 changes: 29 additions & 1 deletion arch/microblaze/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,40 @@
#include <asm/mmu.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/segment.h>
#include <linux/string.h>

#define VERIFY_READ 0
#define VERIFY_WRITE 1

/*
* On Microblaze the fs value is actually the top of the corresponding
* address space.
*
* The fs value determines whether argument validity checking should be
* performed or not. If get_fs() == USER_DS, checking is performed, with
* get_fs() == KERNEL_DS, checking is bypassed.
*
* For historical reasons, these macros are grossly misnamed.
*
* For non-MMU arch like Microblaze, KERNEL_DS and USER_DS is equal.
*/
# define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })

# ifndef CONFIG_MMU
# define KERNEL_DS MAKE_MM_SEG(0)
# define USER_DS KERNEL_DS
# else
# define KERNEL_DS MAKE_MM_SEG(0xFFFFFFFF)
# define USER_DS MAKE_MM_SEG(TASK_SIZE - 1)
# endif

# define get_ds() (KERNEL_DS)
# define get_fs() (current_thread_info()->addr_limit)
# define set_fs(val) (current_thread_info()->addr_limit = (val))

# define segment_eq(a, b) ((a).seg == (b).seg)


#define __clear_user(addr, n) (memset((void *)(addr), 0, (n)), 0)

#ifndef CONFIG_MMU
Expand Down
1 change: 1 addition & 0 deletions arch/microblaze/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/bitops.h>
#include <asm/system.h>
#include <asm/pgalloc.h>
#include <asm/uaccess.h> /* for USER_DS macros */
#include <asm/cacheflush.h>

void show_regs(struct pt_regs *regs)
Expand Down

0 comments on commit 40db083

Please sign in to comment.