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
Kirill Smelkov
linux
Commits
2995a981
Commit
2995a981
authored
Feb 04, 2003
by
David Mosberger
Committed by
David Mosberger
Feb 04, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ia64: Use printk severity-levels where appropriate.
Triggered by analysis done by Philipp Marek.
parent
880700ed
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
249 additions
and
236 deletions
+249
-236
arch/ia64/dig/setup.c
arch/ia64/dig/setup.c
+2
-2
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/common/sba_iommu.c
+13
-15
arch/ia64/hp/sim/simeth.c
arch/ia64/hp/sim/simeth.c
+12
-8
arch/ia64/hp/sim/simscsi.c
arch/ia64/hp/sim/simscsi.c
+5
-4
arch/ia64/hp/sim/simserial.c
arch/ia64/hp/sim/simserial.c
+20
-20
arch/ia64/ia32/ia32_ioctl.c
arch/ia64/ia32/ia32_ioctl.c
+1
-1
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+16
-16
arch/ia64/kernel/brl_emu.c
arch/ia64/kernel/brl_emu.c
+1
-1
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+12
-10
arch/ia64/kernel/iosapic.c
arch/ia64/kernel/iosapic.c
+20
-20
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq.c
+5
-5
arch/ia64/kernel/machvec.c
arch/ia64/kernel/machvec.c
+1
-1
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+13
-13
arch/ia64/kernel/palinfo.c
arch/ia64/kernel/palinfo.c
+18
-19
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/perfmon.c
+38
-34
arch/ia64/kernel/perfmon_mckinley.h
arch/ia64/kernel/perfmon_mckinley.h
+2
-2
arch/ia64/kernel/sal.c
arch/ia64/kernel/sal.c
+8
-8
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+10
-9
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/smpboot.c
+12
-12
arch/ia64/kernel/time.c
arch/ia64/kernel/time.c
+10
-11
arch/ia64/kernel/traps.c
arch/ia64/kernel/traps.c
+13
-9
arch/ia64/kernel/unwind.c
arch/ia64/kernel/unwind.c
+9
-8
arch/ia64/lib/swiotlb.c
arch/ia64/lib/swiotlb.c
+1
-1
arch/ia64/mm/discontig.c
arch/ia64/mm/discontig.c
+1
-1
arch/ia64/mm/fault.c
arch/ia64/mm/fault.c
+1
-1
arch/ia64/mm/init.c
arch/ia64/mm/init.c
+5
-5
No files found.
arch/ia64/dig/setup.c
View file @
2995a981
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
*
*
* Copyright (C) 1999 Intel Corp.
* Copyright (C) 1999 Intel Corp.
* Copyright (C) 1999, 2001 Hewlett-Packard Co
* Copyright (C) 1999, 2001 Hewlett-Packard Co
* Copyright (C) 1999, 2001 David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999, 2001
, 2003
David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
* Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com>
...
@@ -56,7 +56,7 @@ dig_setup (char **cmdline_p)
...
@@ -56,7 +56,7 @@ dig_setup (char **cmdline_p)
if
(
!
ia64_boot_param
->
console_info
.
num_rows
if
(
!
ia64_boot_param
->
console_info
.
num_rows
||
!
ia64_boot_param
->
console_info
.
num_cols
)
||
!
ia64_boot_param
->
console_info
.
num_cols
)
{
{
printk
(
"dig_setup: warning: invalid screen-info, guessing 80x25
\n
"
);
printk
(
KERN_WARNING
"dig_setup: warning: invalid screen-info, guessing 80x25
\n
"
);
orig_x
=
0
;
orig_x
=
0
;
orig_y
=
0
;
orig_y
=
0
;
num_cols
=
80
;
num_cols
=
80
;
...
...
arch/ia64/hp/common/sba_iommu.c
View file @
2995a981
...
@@ -288,20 +288,19 @@ sba_dump_pdir_entry(struct ioc *ioc, char *msg, uint pide)
...
@@ -288,20 +288,19 @@ sba_dump_pdir_entry(struct ioc *ioc, char *msg, uint pide)
unsigned
long
*
rptr
=
(
unsigned
long
*
)
&
(
ioc
->
res_map
[(
pide
>>
3
)
&
~
(
sizeof
(
unsigned
long
)
-
1
)]);
unsigned
long
*
rptr
=
(
unsigned
long
*
)
&
(
ioc
->
res_map
[(
pide
>>
3
)
&
~
(
sizeof
(
unsigned
long
)
-
1
)]);
uint
rcnt
;
uint
rcnt
;
/* printk(KERN_DEBUG "SBA: %s rp %p bit %d rval 0x%lx\n", */
printk
(
KERN_DEBUG
"SBA: %s rp %p bit %d rval 0x%lx
\n
"
,
printk
(
"SBA: %s rp %p bit %d rval 0x%lx
\n
"
,
msg
,
rptr
,
pide
&
(
BITS_PER_LONG
-
1
),
*
rptr
);
msg
,
rptr
,
pide
&
(
BITS_PER_LONG
-
1
),
*
rptr
);
rcnt
=
0
;
rcnt
=
0
;
while
(
rcnt
<
BITS_PER_LONG
)
{
while
(
rcnt
<
BITS_PER_LONG
)
{
printk
(
"%s %2d %p %016Lx
\n
"
,
printk
(
KERN_DEBUG
"%s %2d %p %016Lx
\n
"
,
(
rcnt
==
(
pide
&
(
BITS_PER_LONG
-
1
)))
(
rcnt
==
(
pide
&
(
BITS_PER_LONG
-
1
)))
?
" -->"
:
" "
,
?
" -->"
:
" "
,
rcnt
,
ptr
,
*
ptr
);
rcnt
,
ptr
,
*
ptr
);
rcnt
++
;
rcnt
++
;
ptr
++
;
ptr
++
;
}
}
printk
(
"%s"
,
msg
);
printk
(
KERN_DEBUG
"%s"
,
msg
);
}
}
...
@@ -363,11 +362,9 @@ static void
...
@@ -363,11 +362,9 @@ static void
sba_dump_sg
(
struct
ioc
*
ioc
,
struct
scatterlist
*
startsg
,
int
nents
)
sba_dump_sg
(
struct
ioc
*
ioc
,
struct
scatterlist
*
startsg
,
int
nents
)
{
{
while
(
nents
--
>
0
)
{
while
(
nents
--
>
0
)
{
printk
(
" %d : DMA %08lx/%05x CPU %p
\n
"
,
printk
(
KERN_DEBUG
" %d : DMA %08lx/%05x CPU %p
\n
"
,
nents
,
nents
,
(
unsigned
long
)
sba_sg_iova
(
startsg
),
sba_sg_iova_len
(
startsg
),
(
unsigned
long
)
sba_sg_iova
(
startsg
),
sba_sg_address
(
startsg
));
sba_sg_iova_len
(
startsg
),
sba_sg_address
(
startsg
));
startsg
++
;
startsg
++
;
}
}
}
}
...
@@ -1451,9 +1448,10 @@ sba_common_init(struct sba_device *sba_dev)
...
@@ -1451,9 +1448,10 @@ sba_common_init(struct sba_device *sba_dev)
sba_dev
->
ioc
[
i
].
res_map
;
sba_dev
->
ioc
[
i
].
res_map
;
}
else
{
}
else
{
u64
reserved_iov
;
u64
reserved_iov
;
/* Yet another 1.x hack */
/* Yet another 1.x hack */
printk
(
"zx1 1.x: Starting resource hint offset into IOV space to avoid initial zero value IOVA
\n
"
);
printk
(
KERN_DEBUG
"zx1 1.x: Starting resource hint offset into "
"IOV space to avoid initial zero value IOVA
\n
"
);
sba_dev
->
ioc
[
i
].
res_hint
=
(
unsigned
long
*
)
sba_dev
->
ioc
[
i
].
res_hint
=
(
unsigned
long
*
)
&
(
sba_dev
->
ioc
[
i
].
res_map
[
L1_CACHE_BYTES
]);
&
(
sba_dev
->
ioc
[
i
].
res_map
[
L1_CACHE_BYTES
]);
...
@@ -1632,7 +1630,7 @@ void __init sba_init(void)
...
@@ -1632,7 +1630,7 @@ void __init sba_init(void)
device
->
slot_name
,
hpa
);
device
->
slot_name
,
hpa
);
if
((
hw_rev
&
0xFF
)
<
0x20
)
{
if
((
hw_rev
&
0xFF
)
<
0x20
)
{
printk
(
"%s: SBA rev less than 2.0 not supported"
,
DRIVER_NAME
);
printk
(
KERN_INFO
"%s: SBA rev less than 2.0 not supported"
,
DRIVER_NAME
);
return
;
return
;
}
}
...
...
arch/ia64/hp/sim/simeth.c
View file @
2995a981
/*
/*
* Simulated Ethernet Driver
* Simulated Ethernet Driver
*
*
* Copyright (C) 1999-2001 Hewlett-Packard Co
* Copyright (C) 1999-2001
, 2003
Hewlett-Packard Co
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*/
*/
#include <linux/config.h>
#include <linux/config.h>
...
@@ -116,7 +116,7 @@ simeth_probe (void)
...
@@ -116,7 +116,7 @@ simeth_probe (void)
{
{
int
r
;
int
r
;
printk
(
"simeth: v%s
\n
"
,
simeth_version
);
printk
(
KERN_INFO
"simeth: v%s
\n
"
,
simeth_version
);
r
=
simeth_probe1
();
r
=
simeth_probe1
();
...
@@ -235,7 +235,8 @@ simeth_probe1(void)
...
@@ -235,7 +235,8 @@ simeth_probe1(void)
/* Fill in the fields of the device structure with ethernet-generic values. */
/* Fill in the fields of the device structure with ethernet-generic values. */
ether_setup
(
dev
);
ether_setup
(
dev
);
printk
(
"%s: hosteth=%s simfd=%d, HwAddr"
,
dev
->
name
,
simeth_device
,
local
->
simfd
);
printk
(
KERN_INFO
"%s: hosteth=%s simfd=%d, HwAddr"
,
dev
->
name
,
simeth_device
,
local
->
simfd
);
for
(
i
=
0
;
i
<
ETH_ALEN
;
i
++
)
{
for
(
i
=
0
;
i
<
ETH_ALEN
;
i
++
)
{
printk
(
" %2.2x"
,
dev
->
dev_addr
[
i
]);
printk
(
" %2.2x"
,
dev
->
dev_addr
[
i
]);
}
}
...
@@ -251,7 +252,7 @@ static int
...
@@ -251,7 +252,7 @@ static int
simeth_open
(
struct
net_device
*
dev
)
simeth_open
(
struct
net_device
*
dev
)
{
{
if
(
request_irq
(
dev
->
irq
,
simeth_interrupt
,
0
,
"simeth"
,
dev
))
{
if
(
request_irq
(
dev
->
irq
,
simeth_interrupt
,
0
,
"simeth"
,
dev
))
{
printk
(
"simeth: unable to get IRQ %d.
\n
"
,
dev
->
irq
);
printk
(
KERN_WARNING
"simeth: unable to get IRQ %d.
\n
"
,
dev
->
irq
);
return
-
EAGAIN
;
return
-
EAGAIN
;
}
}
...
@@ -312,11 +313,12 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
...
@@ -312,11 +313,12 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
if
(
strcmp
(
dev
->
name
,
ifa
->
ifa_label
)
==
0
)
break
;
if
(
strcmp
(
dev
->
name
,
ifa
->
ifa_label
)
==
0
)
break
;
}
}
if
(
ifa
==
NULL
)
{
if
(
ifa
==
NULL
)
{
printk
(
"simeth_open: can't find device %s's ifa
\n
"
,
dev
->
name
);
printk
(
KERN_ERR
"simeth_open: can't find device %s's ifa
\n
"
,
dev
->
name
);
return
NOTIFY_DONE
;
return
NOTIFY_DONE
;
}
}
printk
(
"simeth_device_event: %s ipaddr=0x%x
\n
"
,
dev
->
name
,
htonl
(
ifa
->
ifa_local
));
printk
(
KERN_INFO
"simeth_device_event: %s ipaddr=0x%x
\n
"
,
dev
->
name
,
htonl
(
ifa
->
ifa_local
));
/*
/*
* XXX Fix me
* XXX Fix me
...
@@ -330,7 +332,8 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
...
@@ -330,7 +332,8 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
netdev_attach
(
local
->
simfd
,
dev
->
irq
,
htonl
(
ifa
->
ifa_local
))
:
netdev_attach
(
local
->
simfd
,
dev
->
irq
,
htonl
(
ifa
->
ifa_local
))
:
netdev_detach
(
local
->
simfd
);
netdev_detach
(
local
->
simfd
);
printk
(
"simeth: netdev_attach/detach: event=%s ->%d
\n
"
,
event
==
NETDEV_UP
?
"attach"
:
"detach"
,
r
);
printk
(
KERN_INFO
"simeth: netdev_attach/detach: event=%s ->%d
\n
"
,
event
==
NETDEV_UP
?
"attach"
:
"detach"
,
r
);
return
NOTIFY_DONE
;
return
NOTIFY_DONE
;
}
}
...
@@ -460,7 +463,8 @@ simeth_rx(struct net_device *dev)
...
@@ -460,7 +463,8 @@ simeth_rx(struct net_device *dev)
*/
*/
len
=
netdev_read
(
local
->
simfd
,
skb
->
data
,
SIMETH_FRAME_SIZE
);
len
=
netdev_read
(
local
->
simfd
,
skb
->
data
,
SIMETH_FRAME_SIZE
);
if
(
len
==
0
)
{
if
(
len
==
0
)
{
if
(
simeth_debug
>
0
)
printk
(
KERN_WARNING
"%s: count=%d netdev_read=0
\n
"
,
dev
->
name
,
SIMETH_RECV_MAX
-
rcv_count
);
if
(
simeth_debug
>
0
)
printk
(
KERN_WARNING
"%s: count=%d netdev_read=0
\n
"
,
dev
->
name
,
SIMETH_RECV_MAX
-
rcv_count
);
break
;
break
;
}
}
#if 0
#if 0
...
...
arch/ia64/hp/sim/simscsi.c
View file @
2995a981
/*
/*
* Simulated SCSI driver.
* Simulated SCSI driver.
*
*
* Copyright (C) 1999, 2001-200
2
Hewlett-Packard Co
* Copyright (C) 1999, 2001-200
3
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*
*
...
@@ -87,7 +87,8 @@ simscsi_setup (char *s)
...
@@ -87,7 +87,8 @@ simscsi_setup (char *s)
{
{
/* XXX Fix me we may need to strcpy() ? */
/* XXX Fix me we may need to strcpy() ? */
if
(
strlen
(
s
)
>
MAX_ROOT_LEN
)
{
if
(
strlen
(
s
)
>
MAX_ROOT_LEN
)
{
printk
(
"simscsi_setup: prefix too long---using default %s
\n
"
,
simscsi_root
);
printk
(
KERN_ERR
"simscsi_setup: prefix too long---using default %s
\n
"
,
simscsi_root
);
}
}
simscsi_root
=
s
;
simscsi_root
=
s
;
return
1
;
return
1
;
...
@@ -354,7 +355,7 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
...
@@ -354,7 +355,7 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
break
;
break
;
case
START_STOP
:
case
START_STOP
:
printk
(
"START_STOP
\n
"
);
printk
(
KERN_ERR
"START_STOP
\n
"
);
break
;
break
;
default:
default:
...
@@ -380,7 +381,7 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
...
@@ -380,7 +381,7 @@ simscsi_queuecommand (Scsi_Cmnd *sc, void (*done)(Scsi_Cmnd *))
int
int
simscsi_host_reset
(
Scsi_Cmnd
*
sc
)
simscsi_host_reset
(
Scsi_Cmnd
*
sc
)
{
{
printk
(
"simscsi_host_reset: not implemented
\n
"
);
printk
(
KERN_ERR
"simscsi_host_reset: not implemented
\n
"
);
return
0
;
return
0
;
}
}
...
...
arch/ia64/hp/sim/simserial.c
View file @
2995a981
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
* case means sys_sim.c console (goes via the simulator). The code hereafter
* case means sys_sim.c console (goes via the simulator). The code hereafter
* is completely leveraged from the serial.c driver.
* is completely leveraged from the serial.c driver.
*
*
* Copyright (C) 1999-2000, 2002 Hewlett-Packard Co
* Copyright (C) 1999-2000, 2002
-2003
Hewlett-Packard Co
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
*
*
...
@@ -195,7 +195,7 @@ static void rs_interrupt_single(int irq, void *dev_id, struct pt_regs * regs)
...
@@ -195,7 +195,7 @@ static void rs_interrupt_single(int irq, void *dev_id, struct pt_regs * regs)
*/
*/
info
=
IRQ_ports
[
irq
];
info
=
IRQ_ports
[
irq
];
if
(
!
info
||
!
info
->
tty
)
{
if
(
!
info
||
!
info
->
tty
)
{
printk
(
"simrs_interrupt_single: info|tty=0 info=%p problem
\n
"
,
info
);
printk
(
KERN_INFO
"simrs_interrupt_single: info|tty=0 info=%p problem
\n
"
,
info
);
return
;
return
;
}
}
/*
/*
...
@@ -219,13 +219,13 @@ static DECLARE_TASK_QUEUE(tq_serial); /* used to be at the top of the file */
...
@@ -219,13 +219,13 @@ static DECLARE_TASK_QUEUE(tq_serial); /* used to be at the top of the file */
static void do_serial_bh(void)
static void do_serial_bh(void)
{
{
run_task_queue(&tq_serial);
run_task_queue(&tq_serial);
printk("do_serial_bh: called\n");
printk(
KERN_ERR
"do_serial_bh: called\n");
}
}
#endif
#endif
static
void
do_softint
(
void
*
private_
)
static
void
do_softint
(
void
*
private_
)
{
{
printk
(
"simserial: do_softint called
\n
"
);
printk
(
KERN_ERR
"simserial: do_softint called
\n
"
);
}
}
static
void
rs_put_char
(
struct
tty_struct
*
tty
,
unsigned
char
ch
)
static
void
rs_put_char
(
struct
tty_struct
*
tty
,
unsigned
char
ch
)
...
@@ -439,7 +439,7 @@ static void rs_throttle(struct tty_struct * tty)
...
@@ -439,7 +439,7 @@ static void rs_throttle(struct tty_struct * tty)
{
{
if
(
I_IXOFF
(
tty
))
rs_send_xchar
(
tty
,
STOP_CHAR
(
tty
));
if
(
I_IXOFF
(
tty
))
rs_send_xchar
(
tty
,
STOP_CHAR
(
tty
));
printk
(
"simrs_throttle called
\n
"
);
printk
(
KERN_INFO
"simrs_throttle called
\n
"
);
}
}
static
void
rs_unthrottle
(
struct
tty_struct
*
tty
)
static
void
rs_unthrottle
(
struct
tty_struct
*
tty
)
...
@@ -452,7 +452,7 @@ static void rs_unthrottle(struct tty_struct * tty)
...
@@ -452,7 +452,7 @@ static void rs_unthrottle(struct tty_struct * tty)
else
else
rs_send_xchar
(
tty
,
START_CHAR
(
tty
));
rs_send_xchar
(
tty
,
START_CHAR
(
tty
));
}
}
printk
(
"simrs_unthrottle called
\n
"
);
printk
(
KERN_INFO
"simrs_unthrottle called
\n
"
);
}
}
/*
/*
...
@@ -474,29 +474,29 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
...
@@ -474,29 +474,29 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
switch
(
cmd
)
{
switch
(
cmd
)
{
case
TIOCMGET
:
case
TIOCMGET
:
printk
(
"rs_ioctl: TIOCMGET called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCMGET called
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
case
TIOCMBIS
:
case
TIOCMBIS
:
case
TIOCMBIC
:
case
TIOCMBIC
:
case
TIOCMSET
:
case
TIOCMSET
:
printk
(
"rs_ioctl: TIOCMBIS/BIC/SET called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCMBIS/BIC/SET called
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
case
TIOCGSERIAL
:
case
TIOCGSERIAL
:
printk
(
"simrs_ioctl TIOCGSERIAL called
\n
"
);
printk
(
KERN_INFO
"simrs_ioctl TIOCGSERIAL called
\n
"
);
return
0
;
return
0
;
case
TIOCSSERIAL
:
case
TIOCSSERIAL
:
printk
(
"simrs_ioctl TIOCSSERIAL called
\n
"
);
printk
(
KERN_INFO
"simrs_ioctl TIOCSSERIAL called
\n
"
);
return
0
;
return
0
;
case
TIOCSERCONFIG
:
case
TIOCSERCONFIG
:
printk
(
"rs_ioctl: TIOCSERCONFIG called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCSERCONFIG called
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
case
TIOCSERGETLSR
:
/* Get line status register */
case
TIOCSERGETLSR
:
/* Get line status register */
printk
(
"rs_ioctl: TIOCSERGETLSR called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCSERGETLSR called
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
case
TIOCSERGSTRUCT
:
case
TIOCSERGSTRUCT
:
printk
(
"rs_ioctl: TIOCSERGSTRUCT called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCSERGSTRUCT called
\n
"
);
#if 0
#if 0
if (copy_to_user((struct async_struct *) arg,
if (copy_to_user((struct async_struct *) arg,
info, sizeof(struct async_struct)))
info, sizeof(struct async_struct)))
...
@@ -511,7 +511,7 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
...
@@ -511,7 +511,7 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
* Caller should use TIOCGICOUNT to see which one it was
* Caller should use TIOCGICOUNT to see which one it was
*/
*/
case
TIOCMIWAIT
:
case
TIOCMIWAIT
:
printk
(
"rs_ioctl: TIOCMIWAIT: called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCMIWAIT: called
\n
"
);
return
0
;
return
0
;
/*
/*
* Get counter of input serial line interrupts (DCD,RI,DSR,CTS)
* Get counter of input serial line interrupts (DCD,RI,DSR,CTS)
...
@@ -520,13 +520,13 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
...
@@ -520,13 +520,13 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
* RI where only 0->1 is counted.
* RI where only 0->1 is counted.
*/
*/
case
TIOCGICOUNT
:
case
TIOCGICOUNT
:
printk
(
"rs_ioctl: TIOCGICOUNT called
\n
"
);
printk
(
KERN_INFO
"rs_ioctl: TIOCGICOUNT called
\n
"
);
return
0
;
return
0
;
case
TIOCSERGWILD
:
case
TIOCSERGWILD
:
case
TIOCSERSWILD
:
case
TIOCSERSWILD
:
/* "setserial -W" is called in Debian boot */
/* "setserial -W" is called in Debian boot */
printk
(
"TIOCSER?WILD ioctl obsolete, ignored.
\n
"
);
printk
(
KERN_INFO
"TIOCSER?WILD ioctl obsolete, ignored.
\n
"
);
return
0
;
return
0
;
default:
default:
...
@@ -596,7 +596,7 @@ static void shutdown(struct async_struct * info)
...
@@ -596,7 +596,7 @@ static void shutdown(struct async_struct * info)
IRQ_T
(
info
),
"serial"
,
NULL
);
IRQ_T
(
info
),
"serial"
,
NULL
);
if
(
retval
)
if
(
retval
)
printk
(
"serial shutdown: request_irq: error %d"
printk
(
KERN_ERR
"serial shutdown: request_irq: error %d"
" Couldn't reacquire IRQ.
\n
"
,
retval
);
" Couldn't reacquire IRQ.
\n
"
,
retval
);
}
else
}
else
free_irq
(
state
->
irq
,
NULL
);
free_irq
(
state
->
irq
,
NULL
);
...
@@ -654,12 +654,12 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
...
@@ -654,12 +654,12 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
* one, we've got real problems, since it means the
* one, we've got real problems, since it means the
* serial port won't be shutdown.
* serial port won't be shutdown.
*/
*/
printk
(
"rs_close: bad serial port count; tty->count is 1, "
printk
(
KERN_ERR
"rs_close: bad serial port count; tty->count is 1, "
"state->count is %d
\n
"
,
state
->
count
);
"state->count is %d
\n
"
,
state
->
count
);
state
->
count
=
1
;
state
->
count
=
1
;
}
}
if
(
--
state
->
count
<
0
)
{
if
(
--
state
->
count
<
0
)
{
printk
(
"rs_close: bad serial port count for ttys%d: %d
\n
"
,
printk
(
KERN_ERR
"rs_close: bad serial port count for ttys%d: %d
\n
"
,
info
->
line
,
state
->
count
);
info
->
line
,
state
->
count
);
state
->
count
=
0
;
state
->
count
=
0
;
}
}
...
@@ -1013,7 +1013,7 @@ static int rs_read_proc(char *page, char **start, off_t off, int count,
...
@@ -1013,7 +1013,7 @@ static int rs_read_proc(char *page, char **start, off_t off, int count,
static
inline
void
show_serial_version
(
void
)
static
inline
void
show_serial_version
(
void
)
{
{
printk
(
KERN_INFO
"%s version %s with"
,
serial_name
,
serial_version
);
printk
(
KERN_INFO
"%s version %s with"
,
serial_name
,
serial_version
);
printk
(
" no serial options enabled
\n
"
);
printk
(
KERN_INFO
" no serial options enabled
\n
"
);
}
}
/*
/*
...
...
arch/ia64/ia32/ia32_ioctl.c
View file @
2995a981
...
@@ -510,6 +510,6 @@ sys32_ioctl (unsigned int fd, unsigned int cmd, unsigned int arg)
...
@@ -510,6 +510,6 @@ sys32_ioctl (unsigned int fd, unsigned int cmd, unsigned int arg)
return
(
sg_ioctl_trans
(
fd
,
cmd
,
arg
));
return
(
sg_ioctl_trans
(
fd
,
cmd
,
arg
));
}
}
printk
(
"%x:unimplemented IA32 ioctl system call
\n
"
,
cmd
);
printk
(
KERN_ERR
"%x:unimplemented IA32 ioctl system call
\n
"
,
cmd
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
arch/ia64/kernel/acpi.c
View file @
2995a981
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
*
*
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999,2000 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999,2000 Walt Drummond <drummond@valinux.com>
* Copyright (C) 2000, 2002 Hewlett-Packard Co.
* Copyright (C) 2000, 2002
-2003
Hewlett-Packard Co.
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 2000 Intel Corp.
* Copyright (C) 2000 Intel Corp.
* Copyright (C) 2000,2001 J.I. Lee <jung-ik.lee@intel.com>
* Copyright (C) 2000,2001 J.I. Lee <jung-ik.lee@intel.com>
...
@@ -75,20 +75,20 @@ acpi_get_sysname (void)
...
@@ -75,20 +75,20 @@ acpi_get_sysname (void)
rsdp_phys
=
acpi_find_rsdp
();
rsdp_phys
=
acpi_find_rsdp
();
if
(
!
rsdp_phys
)
{
if
(
!
rsdp_phys
)
{
printk
(
"ACPI 2.0 RSDP not found, default to
\"
dig
\"\n
"
);
printk
(
KERN_ERR
"ACPI 2.0 RSDP not found, default to
\"
dig
\"\n
"
);
return
"dig"
;
return
"dig"
;
}
}
rsdp
=
(
struct
acpi20_table_rsdp
*
)
__va
(
rsdp_phys
);
rsdp
=
(
struct
acpi20_table_rsdp
*
)
__va
(
rsdp_phys
);
if
(
strncmp
(
rsdp
->
signature
,
RSDP_SIG
,
sizeof
(
RSDP_SIG
)
-
1
))
{
if
(
strncmp
(
rsdp
->
signature
,
RSDP_SIG
,
sizeof
(
RSDP_SIG
)
-
1
))
{
printk
(
"ACPI 2.0 RSDP signature incorrect, default to
\"
dig
\"\n
"
);
printk
(
KERN_ERR
"ACPI 2.0 RSDP signature incorrect, default to
\"
dig
\"\n
"
);
return
"dig"
;
return
"dig"
;
}
}
xsdt
=
(
struct
acpi_table_xsdt
*
)
__va
(
rsdp
->
xsdt_address
);
xsdt
=
(
struct
acpi_table_xsdt
*
)
__va
(
rsdp
->
xsdt_address
);
hdr
=
&
xsdt
->
header
;
hdr
=
&
xsdt
->
header
;
if
(
strncmp
(
hdr
->
signature
,
XSDT_SIG
,
sizeof
(
XSDT_SIG
)
-
1
))
{
if
(
strncmp
(
hdr
->
signature
,
XSDT_SIG
,
sizeof
(
XSDT_SIG
)
-
1
))
{
printk
(
"ACPI 2.0 XSDT signature incorrect, default to
\"
dig
\"\n
"
);
printk
(
KERN_ERR
"ACPI 2.0 XSDT signature incorrect, default to
\"
dig
\"\n
"
);
return
"dig"
;
return
"dig"
;
}
}
...
@@ -199,7 +199,7 @@ acpi_request_vector (u32 int_type)
...
@@ -199,7 +199,7 @@ acpi_request_vector (u32 int_type)
/* correctable platform error interrupt */
/* correctable platform error interrupt */
vector
=
platform_intr_list
[
int_type
];
vector
=
platform_intr_list
[
int_type
];
}
else
}
else
printk
(
"acpi_request_vector(): invalid interrupt type
\n
"
);
printk
(
KERN_ERR
"acpi_request_vector(): invalid interrupt type
\n
"
);
return
vector
;
return
vector
;
}
}
...
@@ -249,7 +249,7 @@ acpi_parse_lsapic (acpi_table_entry_header *header)
...
@@ -249,7 +249,7 @@ acpi_parse_lsapic (acpi_table_entry_header *header)
acpi_table_print_madt_entry
(
header
);
acpi_table_print_madt_entry
(
header
);
printk
(
"CPU %d (0x%04x)"
,
total_cpus
,
(
lsapic
->
id
<<
8
)
|
lsapic
->
eid
);
printk
(
KERN_INFO
"CPU %d (0x%04x)"
,
total_cpus
,
(
lsapic
->
id
<<
8
)
|
lsapic
->
eid
);
if
(
lsapic
->
flags
.
enabled
)
{
if
(
lsapic
->
flags
.
enabled
)
{
available_cpus
++
;
available_cpus
++
;
...
@@ -478,8 +478,8 @@ acpi_numa_slit_init (struct acpi_table_slit *slit)
...
@@ -478,8 +478,8 @@ acpi_numa_slit_init (struct acpi_table_slit *slit)
len
=
sizeof
(
struct
acpi_table_header
)
+
8
len
=
sizeof
(
struct
acpi_table_header
)
+
8
+
slit
->
localities
*
slit
->
localities
;
+
slit
->
localities
*
slit
->
localities
;
if
(
slit
->
header
.
length
!=
len
)
{
if
(
slit
->
header
.
length
!=
len
)
{
printk
(
"ACPI 2.0 SLIT: size mismatch: %d expected, %d actual
\n
"
,
printk
(
KERN_ERR
"ACPI 2.0 SLIT: size mismatch: %d expected, %d actual
\n
"
,
len
,
slit
->
header
.
length
);
len
,
slit
->
header
.
length
);
memset
(
numa_slit
,
10
,
sizeof
(
numa_slit
));
memset
(
numa_slit
,
10
,
sizeof
(
numa_slit
));
return
;
return
;
}
}
...
@@ -514,8 +514,8 @@ acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma)
...
@@ -514,8 +514,8 @@ acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma)
size
=
(
size
<<
32
)
|
ma
->
length_lo
;
size
=
(
size
<<
32
)
|
ma
->
length_lo
;
if
(
num_memblks
>=
NR_MEMBLKS
)
{
if
(
num_memblks
>=
NR_MEMBLKS
)
{
printk
(
"Too many mem chunks in SRAT. Ignoring %ld MBytes at %lx
\n
"
,
printk
(
KERN_ERR
"Too many mem chunks in SRAT. Ignoring %ld MBytes at %lx
\n
"
,
size
/
(
1024
*
1024
),
paddr
);
size
/
(
1024
*
1024
),
paddr
);
return
;
return
;
}
}
...
@@ -545,8 +545,8 @@ acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma)
...
@@ -545,8 +545,8 @@ acpi_numa_memory_affinity_init (struct acpi_table_memory_affinity *ma)
if
(
min_hole_size
)
{
if
(
min_hole_size
)
{
if
(
min_hole_size
>
size
)
{
if
(
min_hole_size
>
size
)
{
printk
(
"Too huge memory hole. Ignoring %ld MBytes at %lx
\n
"
,
printk
(
KERN_ERR
"Too huge memory hole. Ignoring %ld MBytes at %lx
\n
"
,
size
/
(
1024
*
1024
),
paddr
);
size
/
(
1024
*
1024
),
paddr
);
return
;
return
;
}
}
}
}
...
@@ -605,8 +605,8 @@ acpi_numa_arch_fixup(void)
...
@@ -605,8 +605,8 @@ acpi_numa_arch_fixup(void)
for
(
i
=
0
;
i
<
srat_num_cpus
;
i
++
)
for
(
i
=
0
;
i
<
srat_num_cpus
;
i
++
)
node_cpuid
[
i
].
nid
=
pxm_to_nid_map
[
node_cpuid
[
i
].
nid
];
node_cpuid
[
i
].
nid
=
pxm_to_nid_map
[
node_cpuid
[
i
].
nid
];
printk
(
"Number of logical nodes in system = %d
\n
"
,
numnodes
);
printk
(
KERN_INFO
"Number of logical nodes in system = %d
\n
"
,
numnodes
);
printk
(
"Number of memory chunks in system = %d
\n
"
,
num_memblks
);
printk
(
KERN_INFO
"Number of memory chunks in system = %d
\n
"
,
num_memblks
);
if
(
!
slit_table
)
return
;
if
(
!
slit_table
)
return
;
memset
(
numa_slit
,
-
1
,
sizeof
(
numa_slit
));
memset
(
numa_slit
,
-
1
,
sizeof
(
numa_slit
));
...
@@ -806,7 +806,7 @@ acpi_boot_init (char *cmdline)
...
@@ -806,7 +806,7 @@ acpi_boot_init (char *cmdline)
#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
if
(
available_cpus
==
0
)
{
if
(
available_cpus
==
0
)
{
printk
(
"ACPI: Found 0 CPUS; assuming 1
\n
"
);
printk
(
KERN_INFO
"ACPI: Found 0 CPUS; assuming 1
\n
"
);
available_cpus
=
1
;
/* We've got at least one of these, no? */
available_cpus
=
1
;
/* We've got at least one of these, no? */
}
}
smp_boot_data
.
cpu_count
=
total_cpus
;
smp_boot_data
.
cpu_count
=
total_cpus
;
...
@@ -817,7 +817,7 @@ acpi_boot_init (char *cmdline)
...
@@ -817,7 +817,7 @@ acpi_boot_init (char *cmdline)
#endif
#endif
#endif
#endif
/* Make boot-up look pretty */
/* Make boot-up look pretty */
printk
(
"%d CPUs available, %d CPUs total
\n
"
,
available_cpus
,
total_cpus
);
printk
(
KERN_INFO
"%d CPUs available, %d CPUs total
\n
"
,
available_cpus
,
total_cpus
);
return
0
;
return
0
;
}
}
...
...
arch/ia64/kernel/brl_emu.c
View file @
2995a981
...
@@ -195,7 +195,7 @@ ia64_emulate_brl (struct pt_regs *regs, unsigned long ar_ec)
...
@@ -195,7 +195,7 @@ ia64_emulate_brl (struct pt_regs *regs, unsigned long ar_ec)
/*
/*
* The target address contains unimplemented bits.
* The target address contains unimplemented bits.
*/
*/
printk
(
"Woah! Unimplemented Instruction Address Trap!
\n
"
);
printk
(
KERN_DEBUG
"Woah! Unimplemented Instruction Address Trap!
\n
"
);
siginfo
.
si_signo
=
SIGILL
;
siginfo
.
si_signo
=
SIGILL
;
siginfo
.
si_errno
=
0
;
siginfo
.
si_errno
=
0
;
siginfo
.
si_flags
=
0
;
siginfo
.
si_flags
=
0
;
...
...
arch/ia64/kernel/efi.c
View file @
2995a981
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
*
*
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999-200
2
Hewlett-Packard Co.
* Copyright (C) 1999-200
3
Hewlett-Packard Co.
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*
*
...
@@ -365,7 +365,7 @@ efi_memmap_walk (efi_freemem_callback_t callback, void *arg)
...
@@ -365,7 +365,7 @@ efi_memmap_walk (efi_freemem_callback_t callback, void *arg)
prev_valid
=
1
;
prev_valid
=
1
;
}
else
{
}
else
{
if
(
curr
.
start
<
prev
.
start
)
if
(
curr
.
start
<
prev
.
start
)
printk
(
"Oops: EFI memory table not ordered!
\n
"
);
printk
(
KERN_ERR
"Oops: EFI memory table not ordered!
\n
"
);
if
(
prev
.
end
==
curr
.
start
)
{
if
(
prev
.
end
==
curr
.
start
)
{
/* merge two consecutive memory ranges */
/* merge two consecutive memory ranges */
...
@@ -437,7 +437,8 @@ efi_map_pal_code (void)
...
@@ -437,7 +437,8 @@ efi_map_pal_code (void)
* dedicated ITR for the PAL code.
* dedicated ITR for the PAL code.
*/
*/
if
((
vaddr
&
mask
)
==
(
KERNEL_START
&
mask
))
{
if
((
vaddr
&
mask
)
==
(
KERNEL_START
&
mask
))
{
printk
(
"%s: no need to install ITR for PAL code
\n
"
,
__FUNCTION__
);
printk
(
KERN_INFO
"%s: no need to install ITR for PAL code
\n
"
,
__FUNCTION__
);
continue
;
continue
;
}
}
...
@@ -445,7 +446,7 @@ efi_map_pal_code (void)
...
@@ -445,7 +446,7 @@ efi_map_pal_code (void)
panic
(
"Woah! PAL code size bigger than a granule!"
);
panic
(
"Woah! PAL code size bigger than a granule!"
);
mask
=
~
((
1
<<
IA64_GRANULE_SHIFT
)
-
1
);
mask
=
~
((
1
<<
IA64_GRANULE_SHIFT
)
-
1
);
printk
(
"CPU %d: mapping PAL code [0x%lx-0x%lx) into [0x%lx-0x%lx)
\n
"
,
printk
(
KERN_INFO
"CPU %d: mapping PAL code [0x%lx-0x%lx) into [0x%lx-0x%lx)
\n
"
,
smp_processor_id
(),
md
->
phys_addr
,
smp_processor_id
(),
md
->
phys_addr
,
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
),
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
),
vaddr
&
mask
,
(
vaddr
&
mask
)
+
IA64_GRANULE_SIZE
);
vaddr
&
mask
,
(
vaddr
&
mask
)
+
IA64_GRANULE_SIZE
);
...
@@ -489,7 +490,7 @@ efi_init (void)
...
@@ -489,7 +490,7 @@ efi_init (void)
}
}
}
}
if
(
mem_limit
!=
~
0UL
)
if
(
mem_limit
!=
~
0UL
)
printk
(
"Ignoring memory above %luMB
\n
"
,
mem_limit
>>
20
);
printk
(
KERN_INFO
"Ignoring memory above %luMB
\n
"
,
mem_limit
>>
20
);
efi
.
systab
=
__va
(
ia64_boot_param
->
efi_systab
);
efi
.
systab
=
__va
(
ia64_boot_param
->
efi_systab
);
...
@@ -501,7 +502,7 @@ efi_init (void)
...
@@ -501,7 +502,7 @@ efi_init (void)
if
(
efi
.
systab
->
hdr
.
signature
!=
EFI_SYSTEM_TABLE_SIGNATURE
)
if
(
efi
.
systab
->
hdr
.
signature
!=
EFI_SYSTEM_TABLE_SIGNATURE
)
panic
(
"Woah! EFI system table signature incorrect
\n
"
);
panic
(
"Woah! EFI system table signature incorrect
\n
"
);
if
((
efi
.
systab
->
hdr
.
revision
^
EFI_SYSTEM_TABLE_REVISION
)
>>
16
!=
0
)
if
((
efi
.
systab
->
hdr
.
revision
^
EFI_SYSTEM_TABLE_REVISION
)
>>
16
!=
0
)
printk
(
"Warning: EFI system table major version mismatch: "
printk
(
KERN_WARNING
"Warning: EFI system table major version mismatch: "
"got %d.%02d, expected %d.%02d
\n
"
,
"got %d.%02d, expected %d.%02d
\n
"
,
efi
.
systab
->
hdr
.
revision
>>
16
,
efi
.
systab
->
hdr
.
revision
&
0xffff
,
efi
.
systab
->
hdr
.
revision
>>
16
,
efi
.
systab
->
hdr
.
revision
&
0xffff
,
EFI_SYSTEM_TABLE_REVISION
>>
16
,
EFI_SYSTEM_TABLE_REVISION
&
0xffff
);
EFI_SYSTEM_TABLE_REVISION
>>
16
,
EFI_SYSTEM_TABLE_REVISION
&
0xffff
);
...
@@ -516,7 +517,7 @@ efi_init (void)
...
@@ -516,7 +517,7 @@ efi_init (void)
vendor
[
i
]
=
'\0'
;
vendor
[
i
]
=
'\0'
;
}
}
printk
(
"EFI v%u.%.02u by %s:"
,
printk
(
KERN_INFO
"EFI v%u.%.02u by %s:"
,
efi
.
systab
->
hdr
.
revision
>>
16
,
efi
.
systab
->
hdr
.
revision
&
0xffff
,
vendor
);
efi
.
systab
->
hdr
.
revision
>>
16
,
efi
.
systab
->
hdr
.
revision
&
0xffff
,
vendor
);
for
(
i
=
0
;
i
<
efi
.
systab
->
nr_tables
;
i
++
)
{
for
(
i
=
0
;
i
<
efi
.
systab
->
nr_tables
;
i
++
)
{
...
@@ -608,7 +609,7 @@ efi_enter_virtual_mode (void)
...
@@ -608,7 +609,7 @@ efi_enter_virtual_mode (void)
| _PAGE_PL_0
| _PAGE_PL_0
| _PAGE_AR_RW));
| _PAGE_AR_RW));
#else
#else
printk
(
"EFI_MEMORY_WC mapping
\n
"
);
printk
(
KERN_INFO
"EFI_MEMORY_WC mapping
\n
"
);
md
->
virt_addr
=
(
u64
)
ioremap
(
md
->
phys_addr
,
0
);
md
->
virt_addr
=
(
u64
)
ioremap
(
md
->
phys_addr
,
0
);
#endif
#endif
}
else
if
(
md
->
attribute
&
EFI_MEMORY_WT
)
{
}
else
if
(
md
->
attribute
&
EFI_MEMORY_WT
)
{
...
@@ -618,7 +619,7 @@ efi_enter_virtual_mode (void)
...
@@ -618,7 +619,7 @@ efi_enter_virtual_mode (void)
| _PAGE_PL_0
| _PAGE_PL_0
| _PAGE_AR_RW));
| _PAGE_AR_RW));
#else
#else
printk
(
"EFI_MEMORY_WT mapping
\n
"
);
printk
(
KERN_INFO
"EFI_MEMORY_WT mapping
\n
"
);
md
->
virt_addr
=
(
u64
)
ioremap
(
md
->
phys_addr
,
0
);
md
->
virt_addr
=
(
u64
)
ioremap
(
md
->
phys_addr
,
0
);
#endif
#endif
}
}
...
@@ -630,7 +631,8 @@ efi_enter_virtual_mode (void)
...
@@ -630,7 +631,8 @@ efi_enter_virtual_mode (void)
efi_desc_size
,
ia64_boot_param
->
efi_memdesc_version
,
efi_desc_size
,
ia64_boot_param
->
efi_memdesc_version
,
ia64_boot_param
->
efi_memmap
);
ia64_boot_param
->
efi_memmap
);
if
(
status
!=
EFI_SUCCESS
)
{
if
(
status
!=
EFI_SUCCESS
)
{
printk
(
"Warning: unable to switch EFI into virtual mode (status=%lu)
\n
"
,
status
);
printk
(
KERN_WARNING
"warning: unable to switch EFI into virtual mode "
"(status=%lu)
\n
"
,
status
);
return
;
return
;
}
}
...
...
arch/ia64/kernel/iosapic.c
View file @
2995a981
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* Copyright (C) 1999 Intel Corp.
* Copyright (C) 1999 Intel Corp.
* Copyright (C) 1999 Asit Mallick <asit.k.mallick@intel.com>
* Copyright (C) 1999 Asit Mallick <asit.k.mallick@intel.com>
* Copyright (C) 2000-2002 J.I. Lee <jung-ik.lee@intel.com>
* Copyright (C) 2000-2002 J.I. Lee <jung-ik.lee@intel.com>
* Copyright (C) 1999-2000, 2002 Hewlett-Packard Co.
* Copyright (C) 1999-2000, 2002
-2003
Hewlett-Packard Co.
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999,2000 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999,2000 Walt Drummond <drummond@valinux.com>
...
@@ -433,7 +433,7 @@ iosapic_reassign_vector (int vector)
...
@@ -433,7 +433,7 @@ iosapic_reassign_vector (int vector)
||
iosapic_intr_info
[
vector
].
polarity
||
iosapic_intr_info
[
vector
].
trigger
)
||
iosapic_intr_info
[
vector
].
polarity
||
iosapic_intr_info
[
vector
].
trigger
)
{
{
new_vector
=
ia64_alloc_vector
();
new_vector
=
ia64_alloc_vector
();
printk
(
"Reassigning vector %d to %d
\n
"
,
vector
,
new_vector
);
printk
(
KERN_INFO
"Reassigning vector %d to %d
\n
"
,
vector
,
new_vector
);
memcpy
(
&
iosapic_intr_info
[
new_vector
],
&
iosapic_intr_info
[
vector
],
memcpy
(
&
iosapic_intr_info
[
new_vector
],
&
iosapic_intr_info
[
vector
],
sizeof
(
struct
iosapic_intr_info
));
sizeof
(
struct
iosapic_intr_info
));
memset
(
&
iosapic_intr_info
[
vector
],
0
,
sizeof
(
struct
iosapic_intr_info
));
memset
(
&
iosapic_intr_info
[
vector
],
0
,
sizeof
(
struct
iosapic_intr_info
));
...
@@ -468,17 +468,17 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
...
@@ -468,17 +468,17 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
#else
#else
if
(
iosapic_address
)
{
if
(
iosapic_address
)
{
if
(
iosapic_intr_info
[
vector
].
addr
&&
(
iosapic_intr_info
[
vector
].
addr
!=
iosapic_address
))
if
(
iosapic_intr_info
[
vector
].
addr
&&
(
iosapic_intr_info
[
vector
].
addr
!=
iosapic_address
))
printk
(
"WARN: register_intr: diff IOSAPIC ADDRESS for GSI 0x%x, vector %d
\n
"
,
printk
(
KERN_WARNING
"warning: register_intr: diff IOSAPIC ADDRESS for "
gsi
,
vector
);
"GSI 0x%x, vector %d
\n
"
,
gsi
,
vector
);
iosapic_intr_info
[
vector
].
addr
=
iosapic_address
;
iosapic_intr_info
[
vector
].
addr
=
iosapic_address
;
if
(
iosapic_intr_info
[
vector
].
gsi_base
&&
(
iosapic_intr_info
[
vector
].
gsi_base
!=
gsi_base
))
{
if
(
iosapic_intr_info
[
vector
].
gsi_base
&&
(
iosapic_intr_info
[
vector
].
gsi_base
!=
gsi_base
))
{
printk
(
"WARN: register_intr: diff GSI base 0x%x for GSI 0x%x, vector %d
\n
"
,
printk
(
KERN_WARNING
"warning: register_intr: diff GSI base 0x%x for "
gsi_base
,
gsi
,
vector
);
"GSI 0x%x, vector %d
\n
"
,
gsi_base
,
gsi
,
vector
);
}
}
iosapic_intr_info
[
vector
].
gsi_base
=
gsi_base
;
iosapic_intr_info
[
vector
].
gsi_base
=
gsi_base
;
}
else
if
(
!
iosapic_intr_info
[
vector
].
addr
)
}
else
if
(
!
iosapic_intr_info
[
vector
].
addr
)
printk
(
"WARN: register_intr: invalid override for GSI 0x%x, vector %d
\n
"
,
printk
(
KERN_WARNING
"warning: register_intr: invalid override for GSI 0x%x, "
gsi
,
vector
);
"vector %d
\n
"
,
gsi
,
vector
);
#endif
#endif
if
(
edge_triggered
)
{
if
(
edge_triggered
)
{
iosapic_intr_info
[
vector
].
trigger
=
IOSAPIC_EDGE
;
iosapic_intr_info
[
vector
].
trigger
=
IOSAPIC_EDGE
;
...
@@ -491,9 +491,8 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
...
@@ -491,9 +491,8 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery,
idesc
=
irq_desc
(
vector
);
idesc
=
irq_desc
(
vector
);
if
(
idesc
->
handler
!=
irq_type
)
{
if
(
idesc
->
handler
!=
irq_type
)
{
if
(
idesc
->
handler
!=
&
no_irq_type
)
if
(
idesc
->
handler
!=
&
no_irq_type
)
printk
(
"%s: changing vector %d from %s to %s
\n
"
,
printk
(
KERN_WARNING
"%s: changing vector %d from %s to %s
\n
"
,
__FUNCTION__
,
vector
,
idesc
->
handler
->
typename
,
__FUNCTION__
,
vector
,
idesc
->
handler
->
typename
,
irq_type
->
typename
);
irq_type
->
typename
);
idesc
->
handler
=
irq_type
;
idesc
->
handler
=
irq_type
;
}
}
}
}
...
@@ -518,7 +517,7 @@ iosapic_register_intr (unsigned int gsi,
...
@@ -518,7 +517,7 @@ iosapic_register_intr (unsigned int gsi,
register_intr
(
gsi
,
vector
,
IOSAPIC_LOWEST_PRIORITY
,
register_intr
(
gsi
,
vector
,
IOSAPIC_LOWEST_PRIORITY
,
polarity
,
edge_triggered
,
gsi_base
,
iosapic_address
);
polarity
,
edge_triggered
,
gsi_base
,
iosapic_address
);
printk
(
"GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d
\n
"
,
printk
(
KERN_INFO
"GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d
\n
"
,
gsi
,
(
polarity
?
"high"
:
"low"
),
gsi
,
(
polarity
?
"high"
:
"low"
),
(
edge_triggered
?
"edge"
:
"level"
),
dest
,
vector
);
(
edge_triggered
?
"edge"
:
"level"
),
dest
,
vector
);
...
@@ -560,14 +559,14 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi,
...
@@ -560,14 +559,14 @@ iosapic_register_platform_intr (u32 int_type, unsigned int gsi,
delivery
=
IOSAPIC_LOWEST_PRIORITY
;
delivery
=
IOSAPIC_LOWEST_PRIORITY
;
break
;
break
;
default:
default:
printk
(
"iosapic_register_platform_irq(): invalid int type
\n
"
);
printk
(
KERN_ERR
"iosapic_register_platform_irq(): invalid int type
\n
"
);
return
-
1
;
return
-
1
;
}
}
register_intr
(
gsi
,
vector
,
delivery
,
polarity
,
register_intr
(
gsi
,
vector
,
delivery
,
polarity
,
edge_triggered
,
gsi_base
,
iosapic_address
);
edge_triggered
,
gsi_base
,
iosapic_address
);
printk
(
"PLATFORM int 0x%x: GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d
\n
"
,
printk
(
KERN_INFO
"PLATFORM int 0x%x: GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d
\n
"
,
int_type
,
gsi
,
(
polarity
?
"high"
:
"low"
),
int_type
,
gsi
,
(
polarity
?
"high"
:
"low"
),
(
edge_triggered
?
"edge"
:
"level"
),
dest
,
vector
);
(
edge_triggered
?
"edge"
:
"level"
),
dest
,
vector
);
...
@@ -594,7 +593,7 @@ iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi,
...
@@ -594,7 +593,7 @@ iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi,
index
=
find_iosapic
(
gsi
);
index
=
find_iosapic
(
gsi
);
if
(
index
<
0
)
{
if
(
index
<
0
)
{
printk
(
"ISA: No corresponding IOSAPIC found : ISA IRQ %u -> GSI 0x%x
\n
"
,
printk
(
KERN_ERR
"ISA: No corresponding IOSAPIC found : ISA IRQ %u -> GSI 0x%x
\n
"
,
isa_irq
,
gsi
);
isa_irq
,
gsi
);
return
;
return
;
}
}
...
@@ -634,7 +633,7 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base, int pcat_compat)
...
@@ -634,7 +633,7 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base, int pcat_compat)
* Disable the compatibility mode interrupts (8259 style), needs IN/OUT support
* Disable the compatibility mode interrupts (8259 style), needs IN/OUT support
* enabled.
* enabled.
*/
*/
printk
(
"%s: Disabling PC-AT compatible 8259 interrupts
\n
"
,
__FUNCTION__
);
printk
(
KERN_INFO
"%s: Disabling PC-AT compatible 8259 interrupts
\n
"
,
__FUNCTION__
);
outb
(
0xff
,
0xA1
);
outb
(
0xff
,
0xA1
);
outb
(
0xff
,
0x21
);
outb
(
0xff
,
0x21
);
}
}
...
@@ -655,7 +654,7 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base, int pcat_compat)
...
@@ -655,7 +654,7 @@ iosapic_init (unsigned long phys_addr, unsigned int gsi_base, int pcat_compat)
iosapic_lists
[
num_iosapic
].
num_rte
=
num_rte
;
iosapic_lists
[
num_iosapic
].
num_rte
=
num_rte
;
num_iosapic
++
;
num_iosapic
++
;
printk
(
KERN_INFO
" IOSAPIC v%x.%x, address 0x%lx, GSIs 0x%x-0x%x
\n
"
,
printk
(
KERN_INFO
" IOSAPIC v%x.%x, address 0x%lx, GSIs 0x%x-0x%x
\n
"
,
(
ver
&
0xf0
)
>>
4
,
(
ver
&
0x0f
),
phys_addr
,
gsi_base
,
gsi_base
+
num_rte
-
1
);
(
ver
&
0xf0
)
>>
4
,
(
ver
&
0x0f
),
phys_addr
,
gsi_base
,
gsi_base
+
num_rte
-
1
);
if
((
gsi_base
==
0
)
&&
pcat_compat
)
{
if
((
gsi_base
==
0
)
&&
pcat_compat
)
{
...
@@ -692,7 +691,7 @@ fixup_vector (int vector, unsigned int gsi, const char *pci_id)
...
@@ -692,7 +691,7 @@ fixup_vector (int vector, unsigned int gsi, const char *pci_id)
idesc
=
irq_desc
(
vector
);
idesc
=
irq_desc
(
vector
);
if
(
idesc
->
handler
!=
irq_type
)
{
if
(
idesc
->
handler
!=
irq_type
)
{
if
(
idesc
->
handler
!=
&
no_irq_type
)
if
(
idesc
->
handler
!=
&
no_irq_type
)
printk
(
"IOSAPIC: changing vector %d from %s to %s
\n
"
,
printk
(
KERN_INFO
"IOSAPIC: changing vector %d from %s to %s
\n
"
,
vector
,
idesc
->
handler
->
typename
,
irq_type
->
typename
);
vector
,
idesc
->
handler
->
typename
,
irq_type
->
typename
);
idesc
->
handler
=
irq_type
;
idesc
->
handler
=
irq_type
;
}
}
...
@@ -723,7 +722,8 @@ fixup_vector (int vector, unsigned int gsi, const char *pci_id)
...
@@ -723,7 +722,8 @@ fixup_vector (int vector, unsigned int gsi, const char *pci_id)
#endif
#endif
set_rte
(
vector
,
dest
);
set_rte
(
vector
,
dest
);
printk
(
"IOSAPIC: %s -> GSI 0x%x -> CPU 0x%04x vector %d
\n
"
,
pci_id
,
gsi
,
dest
,
vector
);
printk
(
KERN_INFO
"IOSAPIC: %s -> GSI 0x%x -> CPU 0x%04x vector %d
\n
"
,
pci_id
,
gsi
,
dest
,
vector
);
}
}
void
__init
void
__init
...
@@ -751,7 +751,7 @@ iosapic_parse_prt (void)
...
@@ -751,7 +751,7 @@ iosapic_parse_prt (void)
index
=
find_iosapic
(
gsi
);
index
=
find_iosapic
(
gsi
);
if
(
index
<
0
)
{
if
(
index
<
0
)
{
printk
(
KERN_WARNING
"IOSAPIC: GSI 0x%x has no IOSAPIC!
\n
"
,
gsi
);
printk
(
KERN_WARNING
"IOSAPIC: GSI 0x%x has no IOSAPIC!
\n
"
,
gsi
);
continue
;
continue
;
}
}
addr
=
iosapic_lists
[
index
].
addr
;
addr
=
iosapic_lists
[
index
].
addr
;
...
...
arch/ia64/kernel/irq.c
View file @
2995a981
...
@@ -108,7 +108,7 @@ static void ack_none(unsigned int irq)
...
@@ -108,7 +108,7 @@ static void ack_none(unsigned int irq)
* a generic callback i think.
* a generic callback i think.
*/
*/
#if CONFIG_X86
#if CONFIG_X86
printk
(
"unexpected IRQ trap at vector %02x
\n
"
,
irq
);
printk
(
KERN_ERR
"unexpected IRQ trap at vector %02x
\n
"
,
irq
);
#ifdef CONFIG_X86_LOCAL_APIC
#ifdef CONFIG_X86_LOCAL_APIC
/*
/*
* Currently unexpected vectors happen only on SMP and APIC.
* Currently unexpected vectors happen only on SMP and APIC.
...
@@ -122,7 +122,7 @@ static void ack_none(unsigned int irq)
...
@@ -122,7 +122,7 @@ static void ack_none(unsigned int irq)
#endif
#endif
#endif
#endif
#if CONFIG_IA64
#if CONFIG_IA64
printk
(
"Unexpected irq vector 0x%x on CPU %u!
\n
"
,
irq
,
smp_processor_id
());
printk
(
KERN_ERR
"Unexpected irq vector 0x%x on CPU %u!
\n
"
,
irq
,
smp_processor_id
());
#endif
#endif
}
}
...
@@ -317,7 +317,7 @@ void enable_irq(unsigned int irq)
...
@@ -317,7 +317,7 @@ void enable_irq(unsigned int irq)
desc
->
depth
--
;
desc
->
depth
--
;
break
;
break
;
case
0
:
case
0
:
printk
(
"enable_irq(%u) unbalanced from %p
\n
"
,
printk
(
KERN_ERR
"enable_irq(%u) unbalanced from %p
\n
"
,
irq
,
(
void
*
)
__builtin_return_address
(
0
));
irq
,
(
void
*
)
__builtin_return_address
(
0
));
}
}
spin_unlock_irqrestore
(
&
desc
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
desc
->
lock
,
flags
);
...
@@ -466,7 +466,7 @@ int request_irq(unsigned int irq,
...
@@ -466,7 +466,7 @@ int request_irq(unsigned int irq,
*/
*/
if
(
irqflags
&
SA_SHIRQ
)
{
if
(
irqflags
&
SA_SHIRQ
)
{
if
(
!
dev_id
)
if
(
!
dev_id
)
printk
(
"Bad boy: %s called us without a dev_id!
\n
"
,
devname
);
printk
(
KERN_ERR
"Bad boy: %s called us without a dev_id!
\n
"
,
devname
);
}
}
#endif
#endif
...
@@ -547,7 +547,7 @@ void free_irq(unsigned int irq, void *dev_id)
...
@@ -547,7 +547,7 @@ void free_irq(unsigned int irq, void *dev_id)
kfree
(
action
);
kfree
(
action
);
return
;
return
;
}
}
printk
(
"Trying to free free IRQ%d
\n
"
,
irq
);
printk
(
KERN_ERR
"Trying to free free IRQ%d
\n
"
,
irq
);
spin_unlock_irqrestore
(
&
desc
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
desc
->
lock
,
flags
);
return
;
return
;
}
}
...
...
arch/ia64/kernel/machvec.c
View file @
2995a981
...
@@ -47,7 +47,7 @@ machvec_init (const char *name)
...
@@ -47,7 +47,7 @@ machvec_init (const char *name)
panic
(
"generic kernel failed to find machine vector for platform %s!"
,
name
);
panic
(
"generic kernel failed to find machine vector for platform %s!"
,
name
);
}
}
ia64_mv
=
*
mv
;
ia64_mv
=
*
mv
;
printk
(
"booting generic kernel on platform %s
\n
"
,
name
);
printk
(
KERN_INFO
"booting generic kernel on platform %s
\n
"
,
name
);
}
}
#endif
/* CONFIG_IA64_GENERIC */
#endif
/* CONFIG_IA64_GENERIC */
...
...
arch/ia64/kernel/mca.c
View file @
2995a981
...
@@ -231,7 +231,7 @@ ia64_mca_register_cpev (int cpev)
...
@@ -231,7 +231,7 @@ ia64_mca_register_cpev (int cpev)
{
{
/* Register the CPE interrupt vector with SAL */
/* Register the CPE interrupt vector with SAL */
if
(
ia64_sal_mc_set_params
(
SAL_MC_PARAM_CPE_INT
,
SAL_MC_PARAM_MECHANISM_INT
,
cpev
,
0
,
0
))
{
if
(
ia64_sal_mc_set_params
(
SAL_MC_PARAM_CPE_INT
,
SAL_MC_PARAM_MECHANISM_INT
,
cpev
,
0
,
0
))
{
printk
(
"ia64_mca_platform_init: failed to register Corrected "
printk
(
KERN_ERR
"ia64_mca_platform_init: failed to register Corrected "
"Platform Error interrupt vector with SAL.
\n
"
);
"Platform Error interrupt vector with SAL.
\n
"
);
return
;
return
;
}
}
...
@@ -398,7 +398,7 @@ ia64_mca_init(void)
...
@@ -398,7 +398,7 @@ ia64_mca_init(void)
IA64_MCA_RENDEZ_TIMEOUT
,
IA64_MCA_RENDEZ_TIMEOUT
,
0
)))
0
)))
{
{
printk
(
"ia64_mca_init: Failed to register rendezvous interrupt "
printk
(
KERN_ERR
"ia64_mca_init: Failed to register rendezvous interrupt "
"with SAL. rc = %ld
\n
"
,
rc
);
"with SAL. rc = %ld
\n
"
,
rc
);
return
;
return
;
}
}
...
@@ -409,8 +409,8 @@ ia64_mca_init(void)
...
@@ -409,8 +409,8 @@ ia64_mca_init(void)
IA64_MCA_WAKEUP_VECTOR
,
IA64_MCA_WAKEUP_VECTOR
,
0
,
0
)))
0
,
0
)))
{
{
printk
(
"ia64_mca_init: Failed to register wakeup interrupt with SAL. rc = %ld
\n
"
,
printk
(
KERN_ERR
"ia64_mca_init: Failed to register wakeup interrupt with SAL. "
rc
);
"rc = %ld
\n
"
,
rc
);
return
;
return
;
}
}
...
@@ -430,8 +430,8 @@ ia64_mca_init(void)
...
@@ -430,8 +430,8 @@ ia64_mca_init(void)
ia64_mc_info
.
imi_mca_handler_size
,
ia64_mc_info
.
imi_mca_handler_size
,
0
,
0
,
0
)))
0
,
0
,
0
)))
{
{
printk
(
"ia64_mca_init: Failed to register os mca handler with SAL. rc = %ld
\n
"
,
printk
(
KERN_ERR
"ia64_mca_init: Failed to register os mca handler with SAL. "
rc
);
"rc = %ld
\n
"
,
rc
);
return
;
return
;
}
}
...
@@ -459,8 +459,8 @@ ia64_mca_init(void)
...
@@ -459,8 +459,8 @@ ia64_mca_init(void)
__pa
(
ia64_get_gp
()),
__pa
(
ia64_get_gp
()),
ia64_mc_info
.
imi_slave_init_handler_size
)))
ia64_mc_info
.
imi_slave_init_handler_size
)))
{
{
printk
(
"ia64_mca_init: Failed to register m/s init handlers with SAL. rc = %ld
\n
"
,
printk
(
KERN_ERR
"ia64_mca_init: Failed to register m/s init handlers with SAL. "
rc
);
"rc = %ld
\n
"
,
rc
);
return
;
return
;
}
}
...
@@ -495,7 +495,8 @@ ia64_mca_init(void)
...
@@ -495,7 +495,8 @@ ia64_mca_init(void)
}
}
ia64_mca_register_cpev
(
cpev
);
ia64_mca_register_cpev
(
cpev
);
}
else
}
else
printk
(
"ia64_mca_init: Failed to get routed CPEI vector from ACPI.
\n
"
);
printk
(
KERN_ERR
"ia64_mca_init: Failed to get routed CPEI vector from ACPI.
\n
"
);
}
}
/* Initialize the areas set aside by the OS to buffer the
/* Initialize the areas set aside by the OS to buffer the
...
@@ -511,7 +512,7 @@ ia64_mca_init(void)
...
@@ -511,7 +512,7 @@ ia64_mca_init(void)
mca_test
();
mca_test
();
#endif
/* #if defined(MCA_TEST) */
#endif
/* #if defined(MCA_TEST) */
printk
(
"Mca related initialization done
\n
"
);
printk
(
KERN_INFO
"Mca related initialization done
\n
"
);
/* commented out because this is done elsewhere */
/* commented out because this is done elsewhere */
#if 0
#if 0
...
@@ -807,7 +808,7 @@ ia64_init_handler (struct pt_regs *regs)
...
@@ -807,7 +808,7 @@ ia64_init_handler (struct pt_regs *regs)
sal_log_processor_info_t
*
proc_ptr
;
sal_log_processor_info_t
*
proc_ptr
;
ia64_err_rec_t
*
plog_ptr
;
ia64_err_rec_t
*
plog_ptr
;
printk
(
"Entered OS INIT handler
\n
"
);
printk
(
KERN_INFO
"Entered OS INIT handler
\n
"
);
/* Get the INIT processor log */
/* Get the INIT processor log */
if
(
!
ia64_log_get
(
SAL_INFO_TYPE_INIT
,
(
prfunc_t
)
printk
))
if
(
!
ia64_log_get
(
SAL_INFO_TYPE_INIT
,
(
prfunc_t
)
printk
))
...
@@ -1736,8 +1737,7 @@ ia64_log_processor_info_print(sal_log_record_header_t *lh, prfunc_t prfunc)
...
@@ -1736,8 +1737,7 @@ ia64_log_processor_info_print(sal_log_record_header_t *lh, prfunc_t prfunc)
/*
/*
* Now process processor device error record section
* Now process processor device error record section
*/
*/
ia64_log_proc_dev_err_info_print
((
sal_log_processor_info_t
*
)
slsh
,
ia64_log_proc_dev_err_info_print
((
sal_log_processor_info_t
*
)
slsh
,
printk
);
printk
);
}
}
IA64_MCA_DEBUG
(
"ia64_mca_log_print: "
IA64_MCA_DEBUG
(
"ia64_mca_log_print: "
...
...
arch/ia64/kernel/palinfo.c
View file @
2995a981
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Intel IA-64 Architecture Software Developer's Manual v1.0.
* Intel IA-64 Architecture Software Developer's Manual v1.0.
*
*
*
*
* Copyright (C) 2000-2001 Hewlett-Packard Co
* Copyright (C) 2000-2001
, 2003
Hewlett-Packard Co
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
*
*
* 05/26/2000 S.Eranian initial release
* 05/26/2000 S.Eranian initial release
...
@@ -225,15 +225,12 @@ cache_info(char *page)
...
@@ -225,15 +225,12 @@ cache_info(char *page)
int
i
,
j
,
k
;
int
i
,
j
,
k
;
s64
status
;
s64
status
;
if
((
status
=
ia64_pal_cache_summary
(
&
levels
,
&
unique_caches
))
!=
0
)
{
if
((
status
=
ia64_pal_cache_summary
(
&
levels
,
&
unique_caches
))
!=
0
)
{
printk
(
"ia64_pal_cache_summary=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"ia64_pal_cache_summary=%ld
\n
"
,
status
);
return
0
;
return
0
;
}
}
p
+=
sprintf
(
p
,
"Cache levels : %ld
\n
"
\
p
+=
sprintf
(
p
,
"Cache levels : %ld
\n
Unique caches : %ld
\n\n
"
,
levels
,
unique_caches
);
"Unique caches : %ld
\n\n
"
,
levels
,
unique_caches
);
for
(
i
=
0
;
i
<
levels
;
i
++
)
{
for
(
i
=
0
;
i
<
levels
;
i
++
)
{
...
@@ -308,8 +305,8 @@ vm_info(char *page)
...
@@ -308,8 +305,8 @@ vm_info(char *page)
int
i
,
j
;
int
i
,
j
;
s64
status
;
s64
status
;
if
((
status
=
ia64_pal_vm_summary
(
&
vm_info_1
,
&
vm_info_2
))
!=
0
)
{
if
((
status
=
ia64_pal_vm_summary
(
&
vm_info_1
,
&
vm_info_2
))
!=
0
)
{
printk
(
"ia64_pal_vm_summary=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"ia64_pal_vm_summary=%ld
\n
"
,
status
);
return
0
;
return
0
;
}
}
...
@@ -339,8 +336,8 @@ vm_info(char *page)
...
@@ -339,8 +336,8 @@ vm_info(char *page)
}
}
p
+=
sprintf
(
p
,
"
\n
"
);
p
+=
sprintf
(
p
,
"
\n
"
);
if
((
status
=
ia64_pal_vm_page_size
(
&
tr_pages
,
&
vw_pages
))
!=
0
)
{
if
((
status
=
ia64_pal_vm_page_size
(
&
tr_pages
,
&
vw_pages
))
!=
0
)
{
printk
(
"ia64_pal_vm_page_size=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"ia64_pal_vm_page_size=%ld
\n
"
,
status
);
return
0
;
return
0
;
}
}
...
@@ -360,7 +357,7 @@ vm_info(char *page)
...
@@ -360,7 +357,7 @@ vm_info(char *page)
p
=
bitvector_process
(
p
,
vw_pages
);
p
=
bitvector_process
(
p
,
vw_pages
);
if
((
status
=
ia64_get_ptce
(
&
ptce
))
!=
0
)
{
if
((
status
=
ia64_get_ptce
(
&
ptce
))
!=
0
)
{
printk
(
"ia64_get_ptce=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"ia64_get_ptce=%ld
\n
"
,
status
);
return
0
;
return
0
;
}
}
...
@@ -710,8 +707,8 @@ tr_info(char *page)
...
@@ -710,8 +707,8 @@ tr_info(char *page)
u64
rv2
:
32
;
u64
rv2
:
32
;
}
*
rid_reg
;
}
*
rid_reg
;
if
((
status
=
ia64_pal_vm_summary
(
&
vm_info_1
,
&
vm_info_2
))
!=
0
)
{
if
((
status
=
ia64_pal_vm_summary
(
&
vm_info_1
,
&
vm_info_2
))
!=
0
)
{
printk
(
"ia64_pal_vm_summary=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"ia64_pal_vm_summary=%ld
\n
"
,
status
);
return
0
;
return
0
;
}
}
max
[
0
]
=
vm_info_1
.
pal_vm_info_1_s
.
max_itr_entry
+
1
;
max
[
0
]
=
vm_info_1
.
pal_vm_info_1_s
.
max_itr_entry
+
1
;
...
@@ -722,7 +719,8 @@ tr_info(char *page)
...
@@ -722,7 +719,8 @@ tr_info(char *page)
status
=
ia64_pal_tr_read
(
j
,
i
,
tr_buffer
,
&
tr_valid
);
status
=
ia64_pal_tr_read
(
j
,
i
,
tr_buffer
,
&
tr_valid
);
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
printk
(
"palinfo: pal call failed on tr[%d:%d]=%ld
\n
"
,
i
,
j
,
status
);
printk
(
KERN_ERR
"palinfo: pal call failed on tr[%d:%d]=%ld
\n
"
,
i
,
j
,
status
);
continue
;
continue
;
}
}
...
@@ -841,7 +839,7 @@ palinfo_smp_call(void *info)
...
@@ -841,7 +839,7 @@ palinfo_smp_call(void *info)
{
{
palinfo_smp_data_t
*
data
=
(
palinfo_smp_data_t
*
)
info
;
palinfo_smp_data_t
*
data
=
(
palinfo_smp_data_t
*
)
info
;
if
(
data
==
NULL
)
{
if
(
data
==
NULL
)
{
printk
(
"%s palinfo: data pointer is NULL
\n
"
,
KERN_ERR
);
printk
(
KERN_ERR
"palinfo: data pointer is NULL
\n
"
);
data
->
ret
=
0
;
/* no output */
data
->
ret
=
0
;
/* no output */
return
;
return
;
}
}
...
@@ -868,7 +866,8 @@ int palinfo_handle_smp(pal_func_cpu_u_t *f, char *page)
...
@@ -868,7 +866,8 @@ int palinfo_handle_smp(pal_func_cpu_u_t *f, char *page)
/* will send IPI to other CPU and wait for completion of remote call */
/* will send IPI to other CPU and wait for completion of remote call */
if
((
ret
=
smp_call_function_single
(
f
->
req_cpu
,
palinfo_smp_call
,
&
ptr
,
0
,
1
)))
{
if
((
ret
=
smp_call_function_single
(
f
->
req_cpu
,
palinfo_smp_call
,
&
ptr
,
0
,
1
)))
{
printk
(
"palinfo: remote CPU call from %d to %d on function %d: error %d
\n
"
,
smp_processor_id
(),
f
->
req_cpu
,
f
->
func_id
,
ret
);
printk
(
KERN_ERR
"palinfo: remote CPU call from %d to %d on function %d: "
"error %d
\n
"
,
smp_processor_id
(),
f
->
req_cpu
,
f
->
func_id
,
ret
);
return
0
;
return
0
;
}
}
return
ptr
.
ret
;
return
ptr
.
ret
;
...
@@ -877,7 +876,7 @@ int palinfo_handle_smp(pal_func_cpu_u_t *f, char *page)
...
@@ -877,7 +876,7 @@ int palinfo_handle_smp(pal_func_cpu_u_t *f, char *page)
static
static
int
palinfo_handle_smp
(
pal_func_cpu_u_t
*
f
,
char
*
page
)
int
palinfo_handle_smp
(
pal_func_cpu_u_t
*
f
,
char
*
page
)
{
{
printk
(
"palinfo: should not be called with non SMP kernel
\n
"
);
printk
(
KERN_ERR
"palinfo: should not be called with non SMP kernel
\n
"
);
return
0
;
return
0
;
}
}
#endif
/* CONFIG_SMP */
#endif
/* CONFIG_SMP */
...
...
arch/ia64/kernel/perfmon.c
View file @
2995a981
...
@@ -585,7 +585,7 @@ pfm_vm_close(struct vm_area_struct *vma)
...
@@ -585,7 +585,7 @@ pfm_vm_close(struct vm_area_struct *vma)
pfm_smpl_buffer_desc_t
*
psb
=
(
pfm_smpl_buffer_desc_t
*
)
vma
->
vm_private_data
;
pfm_smpl_buffer_desc_t
*
psb
=
(
pfm_smpl_buffer_desc_t
*
)
vma
->
vm_private_data
;
if
(
psb
==
NULL
)
{
if
(
psb
==
NULL
)
{
printk
(
"perfmon: psb is null in [%d]
\n
"
,
current
->
pid
);
printk
(
KERN_DEBUG
"perfmon: psb is null in [%d]
\n
"
,
current
->
pid
);
return
;
return
;
}
}
/*
/*
...
@@ -650,7 +650,7 @@ pfm_remove_smpl_mapping(struct task_struct *task)
...
@@ -650,7 +650,7 @@ pfm_remove_smpl_mapping(struct task_struct *task)
* some sanity checks first
* some sanity checks first
*/
*/
if
(
ctx
==
NULL
||
task
->
mm
==
NULL
||
ctx
->
ctx_smpl_vaddr
==
0
||
ctx
->
ctx_psb
==
NULL
)
{
if
(
ctx
==
NULL
||
task
->
mm
==
NULL
||
ctx
->
ctx_smpl_vaddr
==
0
||
ctx
->
ctx_psb
==
NULL
)
{
printk
(
"perfmon: invalid context mm=%p
\n
"
,
task
->
mm
);
printk
(
KERN_DEBUG
"perfmon: invalid context mm=%p
\n
"
,
task
->
mm
);
return
-
1
;
return
-
1
;
}
}
psb
=
ctx
->
ctx_psb
;
psb
=
ctx
->
ctx_psb
;
...
@@ -661,11 +661,11 @@ pfm_remove_smpl_mapping(struct task_struct *task)
...
@@ -661,11 +661,11 @@ pfm_remove_smpl_mapping(struct task_struct *task)
up_write
(
&
task
->
mm
->
mmap_sem
);
up_write
(
&
task
->
mm
->
mmap_sem
);
if
(
r
!=
0
)
{
if
(
r
!=
0
)
{
printk
(
"perfmon: pid %d unable to unmap sampling buffer @0x%lx size=%ld
\n
"
,
printk
(
KERN_DEBUG
"perfmon: pid %d unable to unmap sampling buffer "
task
->
pid
,
ctx
->
ctx_smpl_vaddr
,
psb
->
psb_size
);
"@0x%lx size=%ld
\n
"
,
task
->
pid
,
ctx
->
ctx_smpl_vaddr
,
psb
->
psb_size
);
}
}
DBprintk
((
"[%d] do_unmap(0x%lx, %ld)=%d refcnt=%lu psb_flags=0x%x
\n
"
,
DBprintk
((
"[%d] do_unmap(0x%lx, %ld)=%d refcnt=%lu psb_flags=0x%x
\n
"
,
task
->
pid
,
ctx
->
ctx_smpl_vaddr
,
psb
->
psb_size
,
r
,
psb
->
psb_refcnt
,
psb
->
psb_flags
));
task
->
pid
,
ctx
->
ctx_smpl_vaddr
,
psb
->
psb_size
,
r
,
psb
->
psb_refcnt
,
psb
->
psb_flags
));
return
0
;
return
0
;
...
@@ -700,7 +700,7 @@ pfm_remap_buffer(struct vm_area_struct *vma, unsigned long buf, unsigned long ad
...
@@ -700,7 +700,7 @@ pfm_remap_buffer(struct vm_area_struct *vma, unsigned long buf, unsigned long ad
page
=
pfm_kvirt_to_pa
(
buf
);
page
=
pfm_kvirt_to_pa
(
buf
);
if
(
remap_page_range
(
vma
,
addr
,
page
,
PAGE_SIZE
,
PAGE_READONLY
))
return
-
ENOMEM
;
if
(
remap_page_range
(
vma
,
addr
,
page
,
PAGE_SIZE
,
PAGE_READONLY
))
return
-
ENOMEM
;
addr
+=
PAGE_SIZE
;
addr
+=
PAGE_SIZE
;
buf
+=
PAGE_SIZE
;
buf
+=
PAGE_SIZE
;
size
-=
PAGE_SIZE
;
size
-=
PAGE_SIZE
;
...
@@ -857,7 +857,7 @@ pfm_smpl_buffer_alloc(pfm_context_t *ctx, unsigned long *which_pmds, unsigned lo
...
@@ -857,7 +857,7 @@ pfm_smpl_buffer_alloc(pfm_context_t *ctx, unsigned long *which_pmds, unsigned lo
vma
->
vm_end
=
vma
->
vm_start
+
size
;
vma
->
vm_end
=
vma
->
vm_start
+
size
;
DBprintk
((
"entries=%ld aligned size=%ld, unmapped @0x%lx
\n
"
,
entries
,
size
,
vma
->
vm_start
));
DBprintk
((
"entries=%ld aligned size=%ld, unmapped @0x%lx
\n
"
,
entries
,
size
,
vma
->
vm_start
));
/* can only be applied to current, need to have the mm semaphore held when called */
/* can only be applied to current, need to have the mm semaphore held when called */
if
(
pfm_remap_buffer
(
vma
,
(
unsigned
long
)
smpl_buf
,
vma
->
vm_start
,
size
))
{
if
(
pfm_remap_buffer
(
vma
,
(
unsigned
long
)
smpl_buf
,
vma
->
vm_start
,
size
))
{
DBprintk
((
"Can't remap buffer
\n
"
));
DBprintk
((
"Can't remap buffer
\n
"
));
...
@@ -978,7 +978,7 @@ pfm_unreserve_session(struct task_struct *task, int is_syswide, unsigned long cp
...
@@ -978,7 +978,7 @@ pfm_unreserve_session(struct task_struct *task, int is_syswide, unsigned long cp
pfm_sessions
.
pfs_sys_use_dbregs
,
pfm_sessions
.
pfs_sys_use_dbregs
,
is_syswide
,
is_syswide
,
cpu_mask
));
cpu_mask
));
if
(
is_syswide
)
{
if
(
is_syswide
)
{
m
=
cpu_mask
;
n
=
0
;
m
=
cpu_mask
;
n
=
0
;
...
@@ -992,7 +992,8 @@ pfm_unreserve_session(struct task_struct *task, int is_syswide, unsigned long cp
...
@@ -992,7 +992,8 @@ pfm_unreserve_session(struct task_struct *task, int is_syswide, unsigned long cp
*/
*/
if
(
ctx
&&
ctx
->
ctx_fl_using_dbreg
)
{
if
(
ctx
&&
ctx
->
ctx_fl_using_dbreg
)
{
if
(
pfm_sessions
.
pfs_sys_use_dbregs
==
0
)
{
if
(
pfm_sessions
.
pfs_sys_use_dbregs
==
0
)
{
printk
(
"perfmon: invalid release for [%d] sys_use_dbregs=0
\n
"
,
task
->
pid
);
printk
(
KERN_DEBUG
"perfmon: invalid release for [%d] "
"sys_use_dbregs=0
\n
"
,
task
->
pid
);
}
else
{
}
else
{
pfm_sessions
.
pfs_sys_use_dbregs
--
;
pfm_sessions
.
pfs_sys_use_dbregs
--
;
}
}
...
@@ -1798,7 +1799,8 @@ pfm_release_debug_registers(struct task_struct *task)
...
@@ -1798,7 +1799,8 @@ pfm_release_debug_registers(struct task_struct *task)
LOCK_PFS
();
LOCK_PFS
();
if
(
pfm_sessions
.
pfs_ptrace_use_dbregs
==
0
)
{
if
(
pfm_sessions
.
pfs_ptrace_use_dbregs
==
0
)
{
printk
(
"perfmon: invalid release for [%d] ptrace_use_dbregs=0
\n
"
,
task
->
pid
);
printk
(
KERN_DEBUG
"perfmon: invalid release for [%d] ptrace_use_dbregs=0
\n
"
,
task
->
pid
);
ret
=
-
1
;
ret
=
-
1
;
}
else
{
}
else
{
pfm_sessions
.
pfs_ptrace_use_dbregs
--
;
pfm_sessions
.
pfs_ptrace_use_dbregs
--
;
...
@@ -2060,7 +2062,7 @@ pfm_debug(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
...
@@ -2060,7 +2062,7 @@ pfm_debug(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
pfm_sysctl
.
debug
=
mode
==
0
?
0
:
1
;
pfm_sysctl
.
debug
=
mode
==
0
?
0
:
1
;
printk
(
"perfmon debugging %s
\n
"
,
pfm_sysctl
.
debug
?
"on"
:
"off"
);
printk
(
KERN_INFO
"perfmon debugging %s
\n
"
,
pfm_sysctl
.
debug
?
"on"
:
"off"
);
return
0
;
return
0
;
}
}
...
@@ -2324,7 +2326,7 @@ pfm_start(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
...
@@ -2324,7 +2326,7 @@ pfm_start(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
current
));
current
));
if
(
PMU_OWNER
()
!=
task
)
{
if
(
PMU_OWNER
()
!=
task
)
{
printk
(
"perfmon: pfm_start task [%d] not pmu owner
\n
"
,
task
->
pid
);
printk
(
KERN_DEBUG
"perfmon: pfm_start task [%d] not pmu owner
\n
"
,
task
->
pid
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
...
@@ -2345,7 +2347,8 @@ pfm_start(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
...
@@ -2345,7 +2347,8 @@ pfm_start(struct task_struct *task, pfm_context_t *ctx, void *arg, int count,
}
else
{
}
else
{
if
((
task
->
thread
.
flags
&
IA64_THREAD_PM_VALID
)
==
0
)
{
if
((
task
->
thread
.
flags
&
IA64_THREAD_PM_VALID
)
==
0
)
{
printk
(
"perfmon: pfm_start task flag not set for [%d]
\n
"
,
task
->
pid
);
printk
(
KERN_DEBUG
"perfmon: pfm_start task flag not set for [%d]
\n
"
,
task
->
pid
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
/* set user level psr.up */
/* set user level psr.up */
...
@@ -2620,7 +2623,7 @@ pfm_ovfl_block_reset(void)
...
@@ -2620,7 +2623,7 @@ pfm_ovfl_block_reset(void)
* do some sanity checks first
* do some sanity checks first
*/
*/
if
(
!
ctx
)
{
if
(
!
ctx
)
{
printk
(
"perfmon: [%d] has no PFM context
\n
"
,
current
->
pid
);
printk
(
KERN_DEBUG
"perfmon: [%d] has no PFM context
\n
"
,
current
->
pid
);
return
;
return
;
}
}
...
@@ -2792,16 +2795,16 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str
...
@@ -2792,16 +2795,16 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str
* Don't think this could happen given upfront tests
* Don't think this could happen given upfront tests
*/
*/
if
((
t
->
flags
&
IA64_THREAD_PM_VALID
)
==
0
&&
ctx
->
ctx_fl_system
==
0
)
{
if
((
t
->
flags
&
IA64_THREAD_PM_VALID
)
==
0
&&
ctx
->
ctx_fl_system
==
0
)
{
printk
(
"perfmon: Spurious overflow interrupt: process %d not using perfmon
\n
"
,
printk
(
KERN_DEBUG
"perfmon: Spurious overflow interrupt: process %d not "
task
->
pid
);
"using perfmon
\n
"
,
task
->
pid
);
return
0x1
;
return
0x1
;
}
}
/*
/*
* sanity test. Should never happen
* sanity test. Should never happen
*/
*/
if
((
pmc0
&
0x1
)
==
0
)
{
if
((
pmc0
&
0x1
)
==
0
)
{
printk
(
"perfmon: pid %d pmc0=0x%lx assumption error for freeze bit
\n
"
,
printk
(
KERN_DEBUG
"perfmon: pid %d pmc0=0x%lx assumption error for freeze bit
\n
"
,
task
->
pid
,
pmc0
);
task
->
pid
,
pmc0
);
return
0x0
;
return
0x0
;
}
}
...
@@ -2966,8 +2969,8 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str
...
@@ -2966,8 +2969,8 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str
* this call is safe in an interrupt handler, so does read_lock() on tasklist_lock
* this call is safe in an interrupt handler, so does read_lock() on tasklist_lock
*/
*/
ret
=
send_sig_info
(
SIGPROF
,
&
si
,
ctx
->
ctx_notify_task
);
ret
=
send_sig_info
(
SIGPROF
,
&
si
,
ctx
->
ctx_notify_task
);
if
(
ret
!=
0
)
if
(
ret
!=
0
)
printk
(
"send_sig_info(process %d, SIGPROF)=%d
\n
"
,
printk
(
KERN_DEBUG
"send_sig_info(process %d, SIGPROF)=%d
\n
"
,
ctx
->
ctx_notify_task
->
pid
,
ret
);
ctx
->
ctx_notify_task
->
pid
,
ret
);
/*
/*
* now undo the protections in order
* now undo the protections in order
...
@@ -3066,8 +3069,8 @@ pfm_interrupt_handler(int irq, void *arg, struct pt_regs *regs)
...
@@ -3066,8 +3069,8 @@ pfm_interrupt_handler(int irq, void *arg, struct pt_regs *regs)
/* sanity check */
/* sanity check */
if
(
!
ctx
)
{
if
(
!
ctx
)
{
printk
(
"perfmon: Spurious overflow interrupt: process %d has no PFM context
\n
"
,
printk
(
KERN_DEBUG
"perfmon: Spurious overflow interrupt: process %d has "
task
->
pid
);
"no PFM context
\n
"
,
task
->
pid
);
return
;
return
;
}
}
#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
...
@@ -3424,7 +3427,8 @@ pfm_fetch_regs(int cpu, struct task_struct *task, pfm_context_t *ctx)
...
@@ -3424,7 +3427,8 @@ pfm_fetch_regs(int cpu, struct task_struct *task, pfm_context_t *ctx)
/* will send IPI to other CPU and wait for completion of remote call */
/* will send IPI to other CPU and wait for completion of remote call */
if
((
ret
=
smp_call_function_single
(
cpu
,
pfm_handle_fetch_regs
,
&
arg
,
0
,
1
)))
{
if
((
ret
=
smp_call_function_single
(
cpu
,
pfm_handle_fetch_regs
,
&
arg
,
0
,
1
)))
{
printk
(
"perfmon: remote CPU call from %d to %d error %d
\n
"
,
smp_processor_id
(),
cpu
,
ret
);
printk
(
KERN_ERR
"perfmon: remote CPU call from %d to %d error %d
\n
"
,
smp_processor_id
(),
cpu
,
ret
);
return
;
return
;
}
}
/*
/*
...
@@ -3763,8 +3767,9 @@ pfm_flush_regs (struct task_struct *task)
...
@@ -3763,8 +3767,9 @@ pfm_flush_regs (struct task_struct *task)
*
*
*/
*/
if
(
atomic_read
(
&
ctx
->
ctx_last_cpu
)
!=
smp_processor_id
())
if
(
atomic_read
(
&
ctx
->
ctx_last_cpu
)
!=
smp_processor_id
())
printk
(
"perfmon: [%d] last_cpu=%d
\n
"
,
task
->
pid
,
atomic_read
(
&
ctx
->
ctx_last_cpu
));
printk
(
KERN_DEBUG
"perfmon: [%d] last_cpu=%d
\n
"
,
task
->
pid
,
atomic_read
(
&
ctx
->
ctx_last_cpu
));
/*
/*
* we save all the used pmds
* we save all the used pmds
...
@@ -4138,7 +4143,7 @@ pfm_cleanup_smpl_buf(struct task_struct *task)
...
@@ -4138,7 +4143,7 @@ pfm_cleanup_smpl_buf(struct task_struct *task)
pfm_smpl_buffer_desc_t
*
tmp
,
*
psb
=
task
->
thread
.
pfm_smpl_buf_list
;
pfm_smpl_buffer_desc_t
*
tmp
,
*
psb
=
task
->
thread
.
pfm_smpl_buf_list
;
if
(
psb
==
NULL
)
{
if
(
psb
==
NULL
)
{
printk
(
"perfmon: psb is null in [%d]
\n
"
,
current
->
pid
);
printk
(
KERN_DEBUG
"perfmon: psb is null in [%d]
\n
"
,
current
->
pid
);
return
-
1
;
return
-
1
;
}
}
/*
/*
...
@@ -4298,7 +4303,8 @@ pfm_install_alternate_syswide_subsystem(pfm_intr_handler_desc_t *hdl)
...
@@ -4298,7 +4303,8 @@ pfm_install_alternate_syswide_subsystem(pfm_intr_handler_desc_t *hdl)
if
(
ret
)
return
ret
;
if
(
ret
)
return
ret
;
if
(
pfm_alternate_intr_handler
)
{
if
(
pfm_alternate_intr_handler
)
{
printk
(
"perfmon: install_alternate, intr_handler not NULL after reserve
\n
"
);
printk
(
KERN_DEBUG
"perfmon: install_alternate, intr_handler not NULL "
"after reserve
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
}
}
...
@@ -4335,10 +4341,8 @@ pfm_init(void)
...
@@ -4335,10 +4341,8 @@ pfm_init(void)
pmu_conf
.
disabled
=
1
;
pmu_conf
.
disabled
=
1
;
printk
(
"perfmon: version %u.%u IRQ %u
\n
"
,
printk
(
KERN_INFO
"perfmon: version %u.%u IRQ %u
\n
"
,
PFM_VERSION_MAJ
,
PFM_VERSION_MIN
,
PFM_VERSION_MAJ
,
IA64_PERFMON_VECTOR
);
PFM_VERSION_MIN
,
IA64_PERFMON_VECTOR
);
/*
/*
* compute the number of implemented PMD/PMC from the
* compute the number of implemented PMD/PMC from the
...
@@ -4362,8 +4366,8 @@ pfm_init(void)
...
@@ -4362,8 +4366,8 @@ pfm_init(void)
pmu_conf
.
num_pmds
=
n
;
pmu_conf
.
num_pmds
=
n
;
pmu_conf
.
num_counters
=
n_counters
;
pmu_conf
.
num_counters
=
n_counters
;
printk
(
"perfmon: %u PMCs, %u PMDs, %u counters (%lu bits)
\n
"
,
printk
(
KERN_INFO
"perfmon: %u PMCs, %u PMDs, %u counters (%lu bits)
\n
"
,
pmu_conf
.
num_pmcs
,
pmu_conf
.
num_pmcs
,
pmu_conf
.
num_pmds
,
pmu_conf
.
num_pmds
,
pmu_conf
.
num_counters
,
pmu_conf
.
num_counters
,
ffz
(
pmu_conf
.
ovfl_val
));
ffz
(
pmu_conf
.
ovfl_val
));
...
@@ -4380,7 +4384,7 @@ pfm_init(void)
...
@@ -4380,7 +4384,7 @@ pfm_init(void)
perfmon_dir
=
create_proc_read_entry
(
"perfmon"
,
0
,
0
,
perfmon_read_entry
,
NULL
);
perfmon_dir
=
create_proc_read_entry
(
"perfmon"
,
0
,
0
,
perfmon_read_entry
,
NULL
);
if
(
perfmon_dir
==
NULL
)
{
if
(
perfmon_dir
==
NULL
)
{
printk
(
KERN_ERR
"perfmon: cannot create /proc entry, perfmon disabled
\n
"
);
printk
(
KERN_ERR
"perfmon: cannot create /proc entry, perfmon disabled
\n
"
);
return
-
1
;
return
-
1
;
}
}
/*
/*
...
...
arch/ia64/kernel/perfmon_mckinley.h
View file @
2995a981
...
@@ -163,12 +163,12 @@ pfm_mck_pmc_check(struct task_struct *task, unsigned int cnum, unsigned long *va
...
@@ -163,12 +163,12 @@ pfm_mck_pmc_check(struct task_struct *task, unsigned int cnum, unsigned long *va
* i-side events in L1D and L2 caches
* i-side events in L1D and L2 caches
*/
*/
if
(
check_case1
)
{
if
(
check_case1
)
{
ret
=
((
val13
>>
45
)
&
0xf
)
==
0
ret
=
((
val13
>>
45
)
&
0xf
)
==
0
&&
((
val8
&
0x1
)
==
0
)
&&
((
val8
&
0x1
)
==
0
)
&&
((((
val14
>>
1
)
&
0x3
)
==
0x2
||
((
val14
>>
1
)
&
0x3
)
==
0x0
)
&&
((((
val14
>>
1
)
&
0x3
)
==
0x2
||
((
val14
>>
1
)
&
0x3
)
==
0x0
)
||
(((
val14
>>
4
)
&
0x3
)
==
0x2
||
((
val14
>>
4
)
&
0x3
)
==
0x0
));
||
(((
val14
>>
4
)
&
0x3
)
==
0x2
||
((
val14
>>
4
)
&
0x3
)
==
0x0
));
if
(
ret
)
printk
(
"perfmon: failure check_case1
\n
"
);
if
(
ret
)
printk
(
KERN_DEBUG
"perfmon: failure check_case1
\n
"
);
}
}
return
ret
?
-
EINVAL
:
0
;
return
ret
?
-
EINVAL
:
0
;
...
...
arch/ia64/kernel/sal.c
View file @
2995a981
/*
/*
* System Abstraction Layer (SAL) interface routines.
* System Abstraction Layer (SAL) interface routines.
*
*
* Copyright (C) 1998, 1999, 2001 Hewlett-Packard Co
* Copyright (C) 1998, 1999, 2001
, 2003
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 VA Linux Systems
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
* Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
...
@@ -96,17 +96,17 @@ ia64_sal_init (struct ia64_sal_systab *systab)
...
@@ -96,17 +96,17 @@ ia64_sal_init (struct ia64_sal_systab *systab)
int
i
;
int
i
;
if
(
!
systab
)
{
if
(
!
systab
)
{
printk
(
"Hmm, no SAL System Table.
\n
"
);
printk
(
KERN_WARNING
"Hmm, no SAL System Table.
\n
"
);
return
;
return
;
}
}
if
(
strncmp
(
systab
->
signature
,
"SST_"
,
4
)
!=
0
)
if
(
strncmp
(
systab
->
signature
,
"SST_"
,
4
)
!=
0
)
printk
(
"bad signature in system table!"
);
printk
(
KERN_ERR
"bad signature in system table!"
);
/*
/*
* revisions are coded in BCD, so %x does the job for us
* revisions are coded in BCD, so %x does the job for us
*/
*/
printk
(
"SAL v%x.%02x: oem=%.32s, product=%.32s
\n
"
,
printk
(
KERN_INFO
"SAL v%x.%02x: oem=%.32s, product=%.32s
\n
"
,
systab
->
sal_rev_major
,
systab
->
sal_rev_minor
,
systab
->
sal_rev_major
,
systab
->
sal_rev_minor
,
systab
->
oem_id
,
systab
->
product_id
);
systab
->
oem_id
,
systab
->
product_id
);
...
@@ -121,7 +121,7 @@ ia64_sal_init (struct ia64_sal_systab *systab)
...
@@ -121,7 +121,7 @@ ia64_sal_init (struct ia64_sal_systab *systab)
switch
(
*
p
)
{
switch
(
*
p
)
{
case
SAL_DESC_ENTRY_POINT
:
case
SAL_DESC_ENTRY_POINT
:
ep
=
(
struct
ia64_sal_desc_entry_point
*
)
p
;
ep
=
(
struct
ia64_sal_desc_entry_point
*
)
p
;
printk
(
"SAL: entry: pal_proc=0x%lx, sal_proc=0x%lx
\n
"
,
printk
(
KERN_INFO
"SAL: entry: pal_proc=0x%lx, sal_proc=0x%lx
\n
"
,
ep
->
pal_proc
,
ep
->
sal_proc
);
ep
->
pal_proc
,
ep
->
sal_proc
);
ia64_pal_handler_init
(
__va
(
ep
->
pal_proc
));
ia64_pal_handler_init
(
__va
(
ep
->
pal_proc
));
ia64_sal_handler_init
(
__va
(
ep
->
sal_proc
),
__va
(
ep
->
gp
));
ia64_sal_handler_init
(
__va
(
ep
->
sal_proc
),
__va
(
ep
->
gp
));
...
@@ -139,12 +139,12 @@ ia64_sal_init (struct ia64_sal_systab *systab)
...
@@ -139,12 +139,12 @@ ia64_sal_init (struct ia64_sal_systab *systab)
switch
(
ap
->
mechanism
)
{
switch
(
ap
->
mechanism
)
{
case
IA64_SAL_AP_EXTERNAL_INT
:
case
IA64_SAL_AP_EXTERNAL_INT
:
ap_wakeup_vector
=
ap
->
vector
;
ap_wakeup_vector
=
ap
->
vector
;
printk
(
"SAL: AP wakeup using external interrupt "
printk
(
KERN_INFO
"SAL: AP wakeup using external interrupt "
"vector 0x%lx
\n
"
,
ap_wakeup_vector
);
"vector 0x%lx
\n
"
,
ap_wakeup_vector
);
break
;
break
;
default:
default:
printk
(
"SAL: AP wakeup mechanism unsupported!
\n
"
);
printk
(
KERN_ERR
"SAL: AP wakeup mechanism unsupported!
\n
"
);
break
;
break
;
}
}
break
;
break
;
...
@@ -154,7 +154,7 @@ ia64_sal_init (struct ia64_sal_systab *systab)
...
@@ -154,7 +154,7 @@ ia64_sal_init (struct ia64_sal_systab *systab)
{
{
struct
ia64_sal_desc_platform_feature
*
pf
=
(
void
*
)
p
;
struct
ia64_sal_desc_platform_feature
*
pf
=
(
void
*
)
p
;
sal_platform_features
=
pf
->
feature_mask
;
sal_platform_features
=
pf
->
feature_mask
;
printk
(
"SAL: Platform features "
);
printk
(
KERN_INFO
"SAL: Platform features "
);
if
(
pf
->
feature_mask
&
IA64_SAL_PLATFORM_FEATURE_BUS_LOCK
)
if
(
pf
->
feature_mask
&
IA64_SAL_PLATFORM_FEATURE_BUS_LOCK
)
printk
(
"BusLock "
);
printk
(
"BusLock "
);
...
...
arch/ia64/kernel/setup.c
View file @
2995a981
...
@@ -171,7 +171,7 @@ filter_rsvd_memory (unsigned long start, unsigned long end, void *arg)
...
@@ -171,7 +171,7 @@ filter_rsvd_memory (unsigned long start, unsigned long end, void *arg)
#if IGNORE_PFN0
#if IGNORE_PFN0
if
(
start
==
PAGE_OFFSET
)
{
if
(
start
==
PAGE_OFFSET
)
{
printk
(
"warning: skipping physical page 0
\n
"
);
printk
(
KERN_WARNING
"warning: skipping physical page 0
\n
"
);
start
+=
PAGE_SIZE
;
start
+=
PAGE_SIZE
;
if
(
start
>=
end
)
return
0
;
if
(
start
>=
end
)
return
0
;
}
}
...
@@ -341,7 +341,7 @@ find_memory (void)
...
@@ -341,7 +341,7 @@ find_memory (void)
initrd_start
=
(
unsigned
long
)
__va
(
ia64_boot_param
->
initrd_start
);
initrd_start
=
(
unsigned
long
)
__va
(
ia64_boot_param
->
initrd_start
);
initrd_end
=
initrd_start
+
ia64_boot_param
->
initrd_size
;
initrd_end
=
initrd_start
+
ia64_boot_param
->
initrd_size
;
printk
(
"Initial ramdisk at: 0x%lx (%lu bytes)
\n
"
,
printk
(
KERN_INFO
"Initial ramdisk at: 0x%lx (%lu bytes)
\n
"
,
initrd_start
,
ia64_boot_param
->
initrd_size
);
initrd_start
,
ia64_boot_param
->
initrd_size
);
}
}
#endif
#endif
...
@@ -409,8 +409,9 @@ setup_arch (char **cmdline_p)
...
@@ -409,8 +409,9 @@ setup_arch (char **cmdline_p)
ia64_set_kr
(
IA64_KR_IO_BASE
,
phys_iobase
);
ia64_set_kr
(
IA64_KR_IO_BASE
,
phys_iobase
);
else
{
else
{
phys_iobase
=
ia64_get_kr
(
IA64_KR_IO_BASE
);
phys_iobase
=
ia64_get_kr
(
IA64_KR_IO_BASE
);
printk
(
"No I/O port range found in EFI memory map, falling back to AR.KR0
\n
"
);
printk
(
KERN_INFO
"No I/O port range found in EFI memory map, falling back "
printk
(
"I/O port base = 0x%lx
\n
"
,
phys_iobase
);
"to AR.KR0
\n
"
);
printk
(
KERN_INFO
"I/O port base = 0x%lx
\n
"
,
phys_iobase
);
}
}
ia64_iobase
=
(
unsigned
long
)
ioremap
(
phys_iobase
,
0
);
ia64_iobase
=
(
unsigned
long
)
ioremap
(
phys_iobase
,
0
);
...
@@ -615,7 +616,7 @@ identify_cpu (struct cpuinfo_ia64 *c)
...
@@ -615,7 +616,7 @@ identify_cpu (struct cpuinfo_ia64 *c)
impl_va_msb
=
vm2
.
pal_vm_info_2_s
.
impl_va_msb
;
impl_va_msb
=
vm2
.
pal_vm_info_2_s
.
impl_va_msb
;
phys_addr_size
=
vm1
.
pal_vm_info_1_s
.
phys_add_size
;
phys_addr_size
=
vm1
.
pal_vm_info_1_s
.
phys_add_size
;
}
}
printk
(
"CPU %d: %lu virtual and %lu physical address bits
\n
"
,
printk
(
KERN_INFO
"CPU %d: %lu virtual and %lu physical address bits
\n
"
,
smp_processor_id
(),
impl_va_msb
+
1
,
phys_addr_size
);
smp_processor_id
(),
impl_va_msb
+
1
,
phys_addr_size
);
c
->
unimpl_va_mask
=
~
((
7L
<<
61
)
|
((
1L
<<
(
impl_va_msb
+
1
))
-
1
));
c
->
unimpl_va_mask
=
~
((
7L
<<
61
)
|
((
1L
<<
(
impl_va_msb
+
1
))
-
1
));
c
->
unimpl_pa_mask
=
~
((
1L
<<
63
)
|
((
1L
<<
phys_addr_size
)
-
1
));
c
->
unimpl_pa_mask
=
~
((
1L
<<
63
)
|
((
1L
<<
phys_addr_size
)
-
1
));
...
@@ -738,7 +739,7 @@ cpu_init (void)
...
@@ -738,7 +739,7 @@ cpu_init (void)
if
(
ia64_pal_vm_summary
(
NULL
,
&
vmi
)
==
0
)
if
(
ia64_pal_vm_summary
(
NULL
,
&
vmi
)
==
0
)
max_ctx
=
(
1U
<<
(
vmi
.
pal_vm_info_2_s
.
rid_size
-
3
))
-
1
;
max_ctx
=
(
1U
<<
(
vmi
.
pal_vm_info_2_s
.
rid_size
-
3
))
-
1
;
else
{
else
{
printk
(
"cpu_init: PAL VM summary failed, assuming 18 RID bits
\n
"
);
printk
(
KERN_WARNING
"cpu_init: PAL VM summary failed, assuming 18 RID bits
\n
"
);
max_ctx
=
(
1U
<<
15
)
-
1
;
/* use architected minimum */
max_ctx
=
(
1U
<<
15
)
-
1
;
/* use architected minimum */
}
}
while
(
max_ctx
<
ia64_ctx
.
max_ctx
)
{
while
(
max_ctx
<
ia64_ctx
.
max_ctx
)
{
...
@@ -748,7 +749,7 @@ cpu_init (void)
...
@@ -748,7 +749,7 @@ cpu_init (void)
}
}
if
(
ia64_pal_rse_info
(
&
num_phys_stacked
,
0
)
!=
0
)
{
if
(
ia64_pal_rse_info
(
&
num_phys_stacked
,
0
)
!=
0
)
{
printk
(
KERN_WARNING
"cpu_init: PAL RSE info failed; assuming 96 physical "
printk
(
KERN_WARNING
"cpu_init: PAL RSE info failed; assuming 96 physical "
"stacked regs
\n
"
);
"stacked regs
\n
"
);
num_phys_stacked
=
96
;
num_phys_stacked
=
96
;
}
}
...
@@ -766,9 +767,9 @@ check_bugs (void)
...
@@ -766,9 +767,9 @@ check_bugs (void)
int
*
wp
;
int
*
wp
;
if
(
local_cpu_data
->
family
==
0x1f
&&
local_cpu_data
->
model
==
0
)
if
(
local_cpu_data
->
family
==
0x1f
&&
local_cpu_data
->
model
==
0
)
printk
(
KERN_INFO
"check_bugs: leaving McKinley Errata 9 workaround enabled
\n
"
);
printk
(
KERN_INFO
"check_bugs: leaving McKinley Errata 9 workaround enabled
\n
"
);
else
{
else
{
printk
(
KERN_INFO
"check_bugs: McKinley Errata 9 workaround not needed; "
printk
(
KERN_INFO
"check_bugs: McKinley Errata 9 workaround not needed; "
"disabling it
\n
"
);
"disabling it
\n
"
);
for
(
wp
=
__start___mckinley_e9_bundles
;
wp
<
__end___mckinley_e9_bundles
;
++
wp
)
{
for
(
wp
=
__start___mckinley_e9_bundles
;
wp
<
__end___mckinley_e9_bundles
;
++
wp
)
{
bundle
=
(
u64
*
)
((
char
*
)
wp
+
*
wp
);
bundle
=
(
u64
*
)
((
char
*
)
wp
+
*
wp
);
...
...
arch/ia64/kernel/smpboot.c
View file @
2995a981
/*
/*
* SMP boot-related support
* SMP boot-related support
*
*
* Copyright (C) 1998-200
2
Hewlett-Packard Co
* Copyright (C) 1998-200
3
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
*
*
* 01/05/16 Rohit Seth <rohit.seth@intel.com> Moved SMP booting functions from smp.c to here.
* 01/05/16 Rohit Seth <rohit.seth@intel.com> Moved SMP booting functions from smp.c to here.
...
@@ -204,7 +204,7 @@ ia64_sync_itc (unsigned int master)
...
@@ -204,7 +204,7 @@ ia64_sync_itc (unsigned int master)
go
[
MASTER
]
=
1
;
go
[
MASTER
]
=
1
;
if
(
smp_call_function_single
(
master
,
sync_master
,
NULL
,
1
,
0
)
<
0
)
{
if
(
smp_call_function_single
(
master
,
sync_master
,
NULL
,
1
,
0
)
<
0
)
{
printk
(
"sync_itc: failed to get attention of CPU %u!
\n
"
,
master
);
printk
(
KERN_ERR
"sync_itc: failed to get attention of CPU %u!
\n
"
,
master
);
return
;
return
;
}
}
...
@@ -244,8 +244,8 @@ ia64_sync_itc (unsigned int master)
...
@@ -244,8 +244,8 @@ ia64_sync_itc (unsigned int master)
t
[
i
].
rt
,
t
[
i
].
master
,
t
[
i
].
diff
,
t
[
i
].
lat
);
t
[
i
].
rt
,
t
[
i
].
master
,
t
[
i
].
diff
,
t
[
i
].
lat
);
#endif
#endif
printk
(
"CPU %d: synchronized ITC with CPU %u (last diff %ld cycles, maxerr %lu cycles)
\n
"
,
printk
(
KERN_INFO
"CPU %d: synchronized ITC with CPU %u (last diff %ld cycles, "
smp_processor_id
(),
master
,
delta
,
rt
);
"maxerr %lu cycles)
\n
"
,
smp_processor_id
(),
master
,
delta
,
rt
);
}
}
/*
/*
...
@@ -272,7 +272,8 @@ smp_callin (void)
...
@@ -272,7 +272,8 @@ smp_callin (void)
phys_id
=
hard_smp_processor_id
();
phys_id
=
hard_smp_processor_id
();
if
(
test_and_set_bit
(
cpuid
,
&
cpu_online_map
))
{
if
(
test_and_set_bit
(
cpuid
,
&
cpu_online_map
))
{
printk
(
"huh, phys CPU#0x%x, CPU#0x%x already present??
\n
"
,
phys_id
,
cpuid
);
printk
(
KERN_ERR
"huh, phys CPU#0x%x, CPU#0x%x already present??
\n
"
,
phys_id
,
cpuid
);
BUG
();
BUG
();
}
}
...
@@ -380,9 +381,7 @@ do_boot_cpu (int sapicid, int cpu)
...
@@ -380,9 +381,7 @@ do_boot_cpu (int sapicid, int cpu)
if
(
test_bit
(
cpu
,
&
cpu_callin_map
))
{
if
(
test_bit
(
cpu
,
&
cpu_callin_map
))
{
/* number CPUs logically, starting from 1 (BSP is 0) */
/* number CPUs logically, starting from 1 (BSP is 0) */
printk
(
"CPU%d: "
,
cpu
);
printk
(
KERN_INFO
"CPU%d: CPU has booted.
\n
"
,
cpu
);
/*print_cpu_info(&cpu_data[cpu]); */
printk
(
"CPU has booted.
\n
"
);
}
else
{
}
else
{
printk
(
KERN_ERR
"Processor 0x%x/0x%x is stuck.
\n
"
,
cpu
,
sapicid
);
printk
(
KERN_ERR
"Processor 0x%x/0x%x is stuck.
\n
"
,
cpu
,
sapicid
);
ia64_cpu_to_sapicid
[
cpu
]
=
-
1
;
ia64_cpu_to_sapicid
[
cpu
]
=
-
1
;
...
@@ -399,7 +398,7 @@ smp_tune_scheduling (void)
...
@@ -399,7 +398,7 @@ smp_tune_scheduling (void)
{
{
cache_decay_ticks
=
10
;
/* XXX base this on PAL info and cache-bandwidth estimate */
cache_decay_ticks
=
10
;
/* XXX base this on PAL info and cache-bandwidth estimate */
printk
(
"task migration cache decay timeout: %ld msecs.
\n
"
,
printk
(
KERN_INFO
"task migration cache decay timeout: %ld msecs.
\n
"
,
(
cache_decay_ticks
+
1
)
*
1000
/
HZ
);
(
cache_decay_ticks
+
1
)
*
1000
/
HZ
);
}
}
...
@@ -491,7 +490,7 @@ smp_prepare_cpus (unsigned int max_cpus)
...
@@ -491,7 +490,7 @@ smp_prepare_cpus (unsigned int max_cpus)
local_cpu_data
->
loops_per_jiffy
=
loops_per_jiffy
;
local_cpu_data
->
loops_per_jiffy
=
loops_per_jiffy
;
ia64_cpu_to_sapicid
[
0
]
=
boot_cpu_id
;
ia64_cpu_to_sapicid
[
0
]
=
boot_cpu_id
;
printk
(
"Boot processor id 0x%x/0x%x
\n
"
,
0
,
boot_cpu_id
);
printk
(
KERN_INFO
"Boot processor id 0x%x/0x%x
\n
"
,
0
,
boot_cpu_id
);
current_thread_info
()
->
cpu
=
0
;
current_thread_info
()
->
cpu
=
0
;
smp_tune_scheduling
();
smp_tune_scheduling
();
...
@@ -526,7 +525,7 @@ smp_cpus_done (unsigned int dummy)
...
@@ -526,7 +525,7 @@ smp_cpus_done (unsigned int dummy)
if
(
cpu_online
(
cpu
))
if
(
cpu_online
(
cpu
))
bogosum
+=
cpu_data
(
cpu
)
->
loops_per_jiffy
;
bogosum
+=
cpu_data
(
cpu
)
->
loops_per_jiffy
;
printk
(
KERN_INFO
"Total of %d processors activated (%lu.%02lu BogoMIPS).
\n
"
,
printk
(
KERN_INFO
"Total of %d processors activated (%lu.%02lu BogoMIPS).
\n
"
,
num_online_cpus
(),
bogosum
/
(
500000
/
HZ
),
(
bogosum
/
(
5000
/
HZ
))
%
100
);
num_online_cpus
(),
bogosum
/
(
500000
/
HZ
),
(
bogosum
/
(
5000
/
HZ
))
%
100
);
}
}
...
@@ -571,5 +570,6 @@ init_smp_config(void)
...
@@ -571,5 +570,6 @@ init_smp_config(void)
sal_ret
=
ia64_sal_set_vectors
(
SAL_VECTOR_OS_BOOT_RENDEZ
,
sal_ret
=
ia64_sal_set_vectors
(
SAL_VECTOR_OS_BOOT_RENDEZ
,
__pa
(
ap_startup
->
fp
),
__pa
(
ap_startup
->
gp
),
0
,
0
,
0
,
0
);
__pa
(
ap_startup
->
fp
),
__pa
(
ap_startup
->
gp
),
0
,
0
,
0
,
0
);
if
(
sal_ret
<
0
)
if
(
sal_ret
<
0
)
printk
(
"SMP: Can't set SAL AP Boot Rendezvous: %s
\n
"
,
ia64_sal_strerror
(
sal_ret
));
printk
(
KERN_ERR
"SMP: Can't set SAL AP Boot Rendezvous: %s
\n
"
,
ia64_sal_strerror
(
sal_ret
));
}
}
arch/ia64/kernel/time.c
View file @
2995a981
/*
/*
* linux/arch/ia64/kernel/time.c
* linux/arch/ia64/kernel/time.c
*
*
* Copyright (C) 1998-200
2
Hewlett-Packard Co
* Copyright (C) 1998-200
3
Hewlett-Packard Co
* Stephane Eranian <eranian@hpl.hp.com>
* Stephane Eranian <eranian@hpl.hp.com>
* David Mosberger <davidm@hpl.hp.com>
* David Mosberger <davidm@hpl.hp.com>
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
...
@@ -76,10 +76,8 @@ gettimeoffset (void)
...
@@ -76,10 +76,8 @@ gettimeoffset (void)
now
=
ia64_get_itc
();
now
=
ia64_get_itc
();
if
((
long
)
(
now
-
last_tick
)
<
0
)
{
if
((
long
)
(
now
-
last_tick
)
<
0
)
{
# if 1
printk
(
KERN_ERR
"CPU %d: now < last_tick (now=0x%lx,last_tick=0x%lx)!
\n
"
,
printk
(
"CPU %d: now < last_tick (now=0x%lx,last_tick=0x%lx)!
\n
"
,
smp_processor_id
(),
now
,
last_tick
);
smp_processor_id
(),
now
,
last_tick
);
# endif
return
last_time_offset
;
return
last_time_offset
;
}
}
elapsed_cycles
=
now
-
last_tick
;
elapsed_cycles
=
now
-
last_tick
;
...
@@ -158,7 +156,7 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
...
@@ -158,7 +156,7 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
new_itm
=
local_cpu_data
->
itm_next
;
new_itm
=
local_cpu_data
->
itm_next
;
if
(
!
time_after
(
ia64_get_itc
(),
new_itm
))
if
(
!
time_after
(
ia64_get_itc
(),
new_itm
))
printk
(
"Oops: timer tick before it's due (itc=%lx,itm=%lx)
\n
"
,
printk
(
KERN_ERR
"Oops: timer tick before it's due (itc=%lx,itm=%lx)
\n
"
,
ia64_get_itc
(),
new_itm
);
ia64_get_itc
(),
new_itm
);
while
(
1
)
{
while
(
1
)
{
...
@@ -247,21 +245,22 @@ ia64_init_itm (void)
...
@@ -247,21 +245,22 @@ ia64_init_itm (void)
*/
*/
status
=
ia64_sal_freq_base
(
SAL_FREQ_BASE_PLATFORM
,
&
platform_base_freq
,
&
drift
);
status
=
ia64_sal_freq_base
(
SAL_FREQ_BASE_PLATFORM
,
&
platform_base_freq
,
&
drift
);
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
printk
(
"SAL_FREQ_BASE_PLATFORM failed: %s
\n
"
,
ia64_sal_strerror
(
status
));
printk
(
KERN_ERR
"SAL_FREQ_BASE_PLATFORM failed: %s
\n
"
,
ia64_sal_strerror
(
status
));
}
else
{
}
else
{
status
=
ia64_pal_freq_ratios
(
&
proc_ratio
,
0
,
&
itc_ratio
);
status
=
ia64_pal_freq_ratios
(
&
proc_ratio
,
0
,
&
itc_ratio
);
if
(
status
!=
0
)
if
(
status
!=
0
)
printk
(
"PAL_FREQ_RATIOS failed with status=%ld
\n
"
,
status
);
printk
(
KERN_ERR
"PAL_FREQ_RATIOS failed with status=%ld
\n
"
,
status
);
}
}
if
(
status
!=
0
)
{
if
(
status
!=
0
)
{
/* invent "random" values */
/* invent "random" values */
printk
(
"SAL/PAL failed to obtain frequency info---inventing reasonably values
\n
"
);
printk
(
KERN_ERR
"SAL/PAL failed to obtain frequency info---inventing reasonably values
\n
"
);
platform_base_freq
=
100000000
;
platform_base_freq
=
100000000
;
itc_ratio
.
num
=
3
;
itc_ratio
.
num
=
3
;
itc_ratio
.
den
=
1
;
itc_ratio
.
den
=
1
;
}
}
if
(
platform_base_freq
<
40000000
)
{
if
(
platform_base_freq
<
40000000
)
{
printk
(
"Platform base frequency %lu bogus---resetting to 75MHz!
\n
"
,
printk
(
KERN_ERR
"Platform base frequency %lu bogus---resetting to 75MHz!
\n
"
,
platform_base_freq
);
platform_base_freq
);
platform_base_freq
=
75000000
;
platform_base_freq
=
75000000
;
}
}
...
@@ -272,8 +271,8 @@ ia64_init_itm (void)
...
@@ -272,8 +271,8 @@ ia64_init_itm (void)
itc_freq
=
(
platform_base_freq
*
itc_ratio
.
num
)
/
itc_ratio
.
den
;
itc_freq
=
(
platform_base_freq
*
itc_ratio
.
num
)
/
itc_ratio
.
den
;
local_cpu_data
->
itm_delta
=
(
itc_freq
+
HZ
/
2
)
/
HZ
;
local_cpu_data
->
itm_delta
=
(
itc_freq
+
HZ
/
2
)
/
HZ
;
printk
(
"CPU %d: base freq=%lu.%03luMHz, ITC ratio=%lu/%lu, ITC freq=%lu.%03luMHz
\n
"
,
printk
(
KERN_INFO
"CPU %d: base freq=%lu.%03luMHz, ITC ratio=%lu/%lu, "
smp_processor_id
(),
"ITC freq=%lu.%03luMHz
\n
"
,
smp_processor_id
(),
platform_base_freq
/
1000000
,
(
platform_base_freq
/
1000
)
%
1000
,
platform_base_freq
/
1000000
,
(
platform_base_freq
/
1000
)
%
1000
,
itc_ratio
.
num
,
itc_ratio
.
den
,
itc_freq
/
1000000
,
(
itc_freq
/
1000
)
%
1000
);
itc_ratio
.
num
,
itc_ratio
.
den
,
itc_freq
/
1000000
,
(
itc_freq
/
1000
)
%
1000
);
...
...
arch/ia64/kernel/traps.c
View file @
2995a981
...
@@ -57,7 +57,8 @@ trap_init (void)
...
@@ -57,7 +57,8 @@ trap_init (void)
major
=
fpswa_interface
->
revision
>>
16
;
major
=
fpswa_interface
->
revision
>>
16
;
minor
=
fpswa_interface
->
revision
&
0xffff
;
minor
=
fpswa_interface
->
revision
&
0xffff
;
}
}
printk
(
"fpswa interface at %lx (rev %d.%d)
\n
"
,
ia64_boot_param
->
fpswa
,
major
,
minor
);
printk
(
KERN_INFO
"fpswa interface at %lx (rev %d.%d)
\n
"
,
ia64_boot_param
->
fpswa
,
major
,
minor
);
}
}
/*
/*
...
@@ -222,7 +223,7 @@ ia64_ni_syscall (unsigned long arg0, unsigned long arg1, unsigned long arg2, uns
...
@@ -222,7 +223,7 @@ ia64_ni_syscall (unsigned long arg0, unsigned long arg1, unsigned long arg2, uns
{
{
struct
pt_regs
*
regs
=
(
struct
pt_regs
*
)
&
stack
;
struct
pt_regs
*
regs
=
(
struct
pt_regs
*
)
&
stack
;
printk
(
"%s(%d): <sc%ld(%lx,%lx,%lx,%lx)>
\n
"
,
current
->
comm
,
current
->
pid
,
printk
(
KERN_DEBUG
"%s(%d): <sc%ld(%lx,%lx,%lx,%lx)>
\n
"
,
current
->
comm
,
current
->
pid
,
regs
->
r15
,
arg0
,
arg1
,
arg2
,
arg3
);
regs
->
r15
,
arg0
,
arg1
,
arg2
,
arg3
);
return
-
ENOSYS
;
return
-
ENOSYS
;
}
}
...
@@ -346,7 +347,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
...
@@ -346,7 +347,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
/* emulation was successful */
/* emulation was successful */
ia64_increment_ip
(
regs
);
ia64_increment_ip
(
regs
);
}
else
if
(
exception
==
-
1
)
{
}
else
if
(
exception
==
-
1
)
{
printk
(
"handle_fpu_swa: fp_emulate() returned -1
\n
"
);
printk
(
KERN_ERR
"handle_fpu_swa: fp_emulate() returned -1
\n
"
);
return
-
1
;
return
-
1
;
}
else
{
}
else
{
/* is next instruction a trap? */
/* is next instruction a trap? */
...
@@ -369,7 +370,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
...
@@ -369,7 +370,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
}
}
}
else
{
}
else
{
if
(
exception
==
-
1
)
{
if
(
exception
==
-
1
)
{
printk
(
"handle_fpu_swa: fp_emulate() returned -1
\n
"
);
printk
(
KERN_ERR
"handle_fpu_swa: fp_emulate() returned -1
\n
"
);
return
-
1
;
return
-
1
;
}
else
if
(
exception
!=
0
)
{
}
else
if
(
exception
!=
0
)
{
/* raise exception */
/* raise exception */
...
@@ -467,7 +468,9 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
...
@@ -467,7 +468,9 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
?
" (RSE access)"
:
" (data access)"
)
:
""
);
?
" (RSE access)"
:
" (data access)"
)
:
""
);
if
(
code
==
8
)
{
if
(
code
==
8
)
{
# ifdef CONFIG_IA64_PRINT_HAZARDS
# ifdef CONFIG_IA64_PRINT_HAZARDS
printk
(
"%016lx:possible hazard, pr = %016lx
\n
"
,
regs
->
cr_iip
,
regs
->
pr
);
printk
(
"%s[%d]: possible hazard @ ip=%016lx (pr = %016lx)
\n
"
,
current
->
comm
,
current
->
pid
,
regs
->
cr_iip
+
ia64_psr
(
regs
)
->
ri
,
regs
->
pr
);
# endif
# endif
return
;
return
;
}
}
...
@@ -614,8 +617,9 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
...
@@ -614,8 +617,9 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
if
(
ia32_exception
(
regs
,
isr
)
==
0
)
if
(
ia32_exception
(
regs
,
isr
)
==
0
)
return
;
return
;
#endif
#endif
printk
(
"Unexpected IA-32 exception (Trap 45)
\n
"
);
printk
(
KERN_ERR
"Unexpected IA-32 exception (Trap 45)
\n
"
);
printk
(
" iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx
\n
"
,
regs
->
cr_iip
,
ifa
,
isr
);
printk
(
KERN_ERR
" iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx
\n
"
,
regs
->
cr_iip
,
ifa
,
isr
);
force_sig
(
SIGSEGV
,
current
);
force_sig
(
SIGSEGV
,
current
);
break
;
break
;
...
@@ -624,8 +628,8 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
...
@@ -624,8 +628,8 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
if
(
ia32_intercept
(
regs
,
isr
)
==
0
)
if
(
ia32_intercept
(
regs
,
isr
)
==
0
)
return
;
return
;
#endif
#endif
printk
(
"Unexpected IA-32 intercept trap (Trap 46)
\n
"
);
printk
(
KERN_ERR
"Unexpected IA-32 intercept trap (Trap 46)
\n
"
);
printk
(
" iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx, iim - 0x%lx
\n
"
,
printk
(
KERN_ERR
" iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx, iim - 0x%lx
\n
"
,
regs
->
cr_iip
,
ifa
,
isr
,
iim
);
regs
->
cr_iip
,
ifa
,
isr
,
iim
);
force_sig
(
SIGSEGV
,
current
);
force_sig
(
SIGSEGV
,
current
);
return
;
return
;
...
...
arch/ia64/kernel/unwind.c
View file @
2995a981
/*
/*
* Copyright (C) 1999-200
2
Hewlett-Packard Co
* Copyright (C) 1999-200
3
Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
* David Mosberger-Tang <davidm@hpl.hp.com>
*/
*/
/*
/*
...
@@ -532,7 +532,7 @@ push (struct unw_state_record *sr)
...
@@ -532,7 +532,7 @@ push (struct unw_state_record *sr)
rs
=
alloc_reg_state
();
rs
=
alloc_reg_state
();
if
(
!
rs
)
{
if
(
!
rs
)
{
printk
(
"unwind: cannot stack reg state!
\n
"
);
printk
(
KERN_ERR
"unwind: cannot stack reg state!
\n
"
);
return
;
return
;
}
}
memcpy
(
rs
,
&
sr
->
curr
,
sizeof
(
*
rs
));
memcpy
(
rs
,
&
sr
->
curr
,
sizeof
(
*
rs
));
...
@@ -545,7 +545,7 @@ pop (struct unw_state_record *sr)
...
@@ -545,7 +545,7 @@ pop (struct unw_state_record *sr)
struct
unw_reg_state
*
rs
=
sr
->
curr
.
next
;
struct
unw_reg_state
*
rs
=
sr
->
curr
.
next
;
if
(
!
rs
)
{
if
(
!
rs
)
{
printk
(
"unwind: stack underflow!
\n
"
);
printk
(
KERN_ERR
"unwind: stack underflow!
\n
"
);
return
;
return
;
}
}
memcpy
(
&
sr
->
curr
,
rs
,
sizeof
(
*
rs
));
memcpy
(
&
sr
->
curr
,
rs
,
sizeof
(
*
rs
));
...
@@ -561,7 +561,7 @@ dup_state_stack (struct unw_reg_state *rs)
...
@@ -561,7 +561,7 @@ dup_state_stack (struct unw_reg_state *rs)
while
(
rs
)
{
while
(
rs
)
{
copy
=
alloc_reg_state
();
copy
=
alloc_reg_state
();
if
(
!
copy
)
{
if
(
!
copy
)
{
printk
(
"unwind.dup_state_stack: out of memory
\n
"
);
printk
(
KERN_ERR
"unwind.dup_state_stack: out of memory
\n
"
);
return
NULL
;
return
NULL
;
}
}
memcpy
(
copy
,
rs
,
sizeof
(
*
copy
));
memcpy
(
copy
,
rs
,
sizeof
(
*
copy
));
...
@@ -951,7 +951,7 @@ desc_copy_state (unw_word label, struct unw_state_record *sr)
...
@@ -951,7 +951,7 @@ desc_copy_state (unw_word label, struct unw_state_record *sr)
return
;
return
;
}
}
}
}
printk
(
"unwind: failed to find state labeled 0x%lx
\n
"
,
label
);
printk
(
KERN_ERR
"unwind: failed to find state labeled 0x%lx
\n
"
,
label
);
}
}
static
inline
void
static
inline
void
...
@@ -961,7 +961,7 @@ desc_label_state (unw_word label, struct unw_state_record *sr)
...
@@ -961,7 +961,7 @@ desc_label_state (unw_word label, struct unw_state_record *sr)
ls
=
alloc_labeled_state
();
ls
=
alloc_labeled_state
();
if
(
!
ls
)
{
if
(
!
ls
)
{
printk
(
"unwind.desc_label_state(): out of memory
\n
"
);
printk
(
KERN_ERR
"unwind.desc_label_state(): out of memory
\n
"
);
return
;
return
;
}
}
ls
->
label
=
label
;
ls
->
label
=
label
;
...
@@ -1055,7 +1055,8 @@ desc_spill_sprel_p (unsigned char qp, unw_word t, unsigned char abreg, unw_word
...
@@ -1055,7 +1055,8 @@ desc_spill_sprel_p (unsigned char qp, unw_word t, unsigned char abreg, unw_word
r
->
val
=
4
*
spoff
;
r
->
val
=
4
*
spoff
;
}
}
#define UNW_DEC_BAD_CODE(code) printk("unwind: unknown code 0x%02x\n", code);
#define UNW_DEC_BAD_CODE(code) printk(KERN_ERR "unwind: unknown code 0x%02x\n", \
code);
/*
/*
* region headers:
* region headers:
...
@@ -2015,7 +2016,7 @@ unw_create_gate_table (void)
...
@@ -2015,7 +2016,7 @@ unw_create_gate_table (void)
unw
.
gate_table
=
alloc_bootmem
(
size
);
unw
.
gate_table
=
alloc_bootmem
(
size
);
if
(
!
unw
.
gate_table
)
{
if
(
!
unw
.
gate_table
)
{
unw
.
gate_table_size
=
0
;
unw
.
gate_table_size
=
0
;
printk
(
"unwind: unable to create unwind data for gate page!
\n
"
);
printk
(
KERN_ERR
"unwind: unable to create unwind data for gate page!
\n
"
);
return
;
return
;
}
}
unw
.
gate_table_size
=
size
;
unw
.
gate_table_size
=
size
;
...
...
arch/ia64/lib/swiotlb.c
View file @
2995a981
...
@@ -113,7 +113,7 @@ swiotlb_init (void)
...
@@ -113,7 +113,7 @@ swiotlb_init (void)
io_tlb_index
=
0
;
io_tlb_index
=
0
;
io_tlb_orig_addr
=
alloc_bootmem
(
io_tlb_nslabs
*
sizeof
(
char
*
));
io_tlb_orig_addr
=
alloc_bootmem
(
io_tlb_nslabs
*
sizeof
(
char
*
));
printk
(
"Placing software IO TLB between 0x%p - 0x%p
\n
"
,
printk
(
KERN_INFO
"Placing software IO TLB between 0x%p - 0x%p
\n
"
,
(
void
*
)
io_tlb_start
,
(
void
*
)
io_tlb_end
);
(
void
*
)
io_tlb_start
,
(
void
*
)
io_tlb_end
);
}
}
...
...
arch/ia64/mm/discontig.c
View file @
2995a981
...
@@ -215,7 +215,7 @@ discontig_mem_init(void)
...
@@ -215,7 +215,7 @@ discontig_mem_init(void)
int
node
;
int
node
;
if
(
numnodes
==
0
)
{
if
(
numnodes
==
0
)
{
printk
(
"node info missing!
\n
"
);
printk
(
KERN_ERR
"node info missing!
\n
"
);
numnodes
=
1
;
numnodes
=
1
;
}
}
...
...
arch/ia64/mm/fault.c
View file @
2995a981
...
@@ -196,7 +196,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
...
@@ -196,7 +196,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
yield
();
yield
();
goto
survive
;
goto
survive
;
}
}
printk
(
"VM: killing process %s
\n
"
,
current
->
comm
);
printk
(
KERN_CRIT
"VM: killing process %s
\n
"
,
current
->
comm
);
if
(
user_mode
(
regs
))
if
(
user_mode
(
regs
))
do_exit
(
SIGKILL
);
do_exit
(
SIGKILL
);
goto
no_context
;
goto
no_context
;
...
...
arch/ia64/mm/init.c
View file @
2995a981
...
@@ -234,7 +234,7 @@ put_gate_page (struct page *page, unsigned long address)
...
@@ -234,7 +234,7 @@ put_gate_page (struct page *page, unsigned long address)
pte_t
*
pte
;
pte_t
*
pte
;
if
(
!
PageReserved
(
page
))
if
(
!
PageReserved
(
page
))
printk
(
"put_gate_page: gate page at 0x%p not in reserved memory
\n
"
,
printk
(
KERN_ERR
"put_gate_page: gate page at 0x%p not in reserved memory
\n
"
,
page_address
(
page
));
page_address
(
page
));
pgd
=
pgd_offset_k
(
address
);
/* note: this is NOT pgd_offset()! */
pgd
=
pgd_offset_k
(
address
);
/* note: this is NOT pgd_offset()! */
...
@@ -431,10 +431,10 @@ mem_init (void)
...
@@ -431,10 +431,10 @@ mem_init (void)
datasize
=
(
unsigned
long
)
&
_edata
-
(
unsigned
long
)
&
_etext
;
datasize
=
(
unsigned
long
)
&
_edata
-
(
unsigned
long
)
&
_etext
;
initsize
=
(
unsigned
long
)
&
__init_end
-
(
unsigned
long
)
&
__init_begin
;
initsize
=
(
unsigned
long
)
&
__init_end
-
(
unsigned
long
)
&
__init_begin
;
printk
(
"Memory: %luk/%luk available (%luk code, %luk reserved, %luk data, %luk init)
\n
"
,
printk
(
KERN_INFO
"Memory: %luk/%luk available (%luk code, %luk reserved, "
(
unsigned
long
)
nr_free_pages
()
<<
(
PAGE_SHIFT
-
10
),
"%luk data, %luk init)
\n
"
,
(
unsigned
long
)
nr_free_pages
()
<<
(
PAGE_SHIFT
-
10
),
num_physpages
<<
(
PAGE_SHIFT
-
10
),
codesize
>>
10
,
reserved_pages
<<
(
PAGE_SHIFT
-
10
),
num_physpages
<<
(
PAGE_SHIFT
-
10
),
codesize
>>
10
,
datasize
>>
10
,
initsize
>>
10
);
reserved_pages
<<
(
PAGE_SHIFT
-
10
),
datasize
>>
10
,
initsize
>>
10
);
/*
/*
* Allow for enough (cached) page table pages so that we can map the entire memory
* Allow for enough (cached) page table pages so that we can map the entire memory
...
...
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