Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
7e2de517
Commit
7e2de517
authored
May 12, 2003
by
David Mosberger
Committed by
David Mosberger
May 12, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ia64: Clean up purge-page-size-from-PAL patch a bit.
parent
34403fcc
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
9 deletions
+14
-9
arch/ia64/mm/tlb.c
arch/ia64/mm/tlb.c
+14
-9
No files found.
arch/ia64/mm/tlb.c
View file @
7e2de517
/*
* TLB support routines.
*
* Copyright (C) 1998-2001 Hewlett-Packard Co
* Copyright (C) 1998-2001
, 2003
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
*
* 08/02/00 A. Mallick <asit.k.mallick@intel.com>
...
...
@@ -22,8 +22,10 @@
#include <asm/pal.h>
#include <asm/tlbflush.h>
static
unsigned
long
purge_pgbits
;
static
unsigned
long
max_purge_size
;
static
struct
{
unsigned
long
mask
;
/* mask of supported purge page-sizes */
unsigned
long
max_bits
;
/* log2() of largest supported purge page-size */
}
purge
;
struct
ia64_ctx
ia64_ctx
=
{
.
lock
=
SPIN_LOCK_UNLOCKED
,
...
...
@@ -145,10 +147,10 @@ flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long
}
nbits
=
ia64_fls
(
size
+
0xfff
);
while
(
(((
1UL
<<
nbits
)
&
purge_pgbits
)
==
0
)
&&
(
nbits
<
max_purge_size
))
while
(
unlikely
(((
1UL
<<
nbits
)
&
purge
.
mask
)
==
0
)
&&
(
nbits
<
purge
.
max_bits
))
++
nbits
;
if
(
nbits
>
max_purge_size
)
nbits
=
max_purge_size
;
if
(
nbits
>
purge
.
max_bits
)
nbits
=
purge
.
max_bits
;
start
&=
~
((
1UL
<<
nbits
)
-
1
);
# ifdef CONFIG_SMP
...
...
@@ -172,9 +174,12 @@ ia64_tlb_init (void)
unsigned
long
tr_pgbits
;
long
status
;
if
((
status
=
ia64_pal_vm_page_size
(
&
tr_pgbits
,
&
purge_pgbits
))
!=
0
)
panic
(
"ia64_pal_vm_page_size=%ld
\n
"
,
status
);
max_purge_size
=
ia64_fls
(
purge_pgbits
);
if
((
status
=
ia64_pal_vm_page_size
(
&
tr_pgbits
,
&
purge
.
mask
))
!=
0
)
{
printk
(
KERN_ERR
"PAL_VM_PAGE_SIZE failed with status=%ld;"
"defaulting to architected purge page-sizes.
\n
"
,
status
);
purge
.
mask
=
0x15557000
;
}
purge
.
max_bits
=
ia64_fls
(
purge
.
mask
);
ia64_get_ptce
(
&
ptce_info
);
local_cpu_data
->
ptce_base
=
ptce_info
.
base
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment