git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
xen
/
console
/
xencons_ring.c
diff --git
a/drivers/xen/console/xencons_ring.c
b/drivers/xen/console/xencons_ring.c
index
454fe42
..
aafc6b2
100644
(file)
--- a/
drivers/xen/console/xencons_ring.c
+++ b/
drivers/xen/console/xencons_ring.c
@@
-52,13
+52,13
@@
static int xencons_irq;
static inline struct xencons_interface *xencons_interface(void)
{
static inline struct xencons_interface *xencons_interface(void)
{
- return mfn_to_virt(xen_start_info->console
_
mfn);
+ return mfn_to_virt(xen_start_info->console
.domU.
mfn);
}
static inline void notify_daemon(void)
{
/* Use evtchn: this is called early, before irq is set up. */
}
static inline void notify_daemon(void)
{
/* Use evtchn: this is called early, before irq is set up. */
- notify_remote_via_evtchn(xen_start_info->console
_
evtchn);
+ notify_remote_via_evtchn(xen_start_info->console
.domU.
evtchn);
}
int xencons_ring_send(const char *data, unsigned len)
}
int xencons_ring_send(const char *data, unsigned len)
@@
-83,7
+83,7
@@
int xencons_ring_send(const char *data, unsigned len)
return sent;
}
return sent;
}
-static irqreturn_t handle_input(int irq, void *unused
, struct pt_regs *regs
)
+static irqreturn_t handle_input(int irq, void *unused)
{
struct xencons_interface *intf = xencons_interface();
XENCONS_RING_IDX cons, prod;
{
struct xencons_interface *intf = xencons_interface();
XENCONS_RING_IDX cons, prod;
@@
-94,7
+94,7
@@
static irqreturn_t handle_input(int irq, void *unused, struct pt_regs *regs)
BUG_ON((prod - cons) > sizeof(intf->in));
while (cons != prod) {
BUG_ON((prod - cons) > sizeof(intf->in));
while (cons != prod) {
- xencons_rx(intf->in+MASK_XENCONS_IDX(cons,intf->in), 1
, regs
);
+ xencons_rx(intf->in+MASK_XENCONS_IDX(cons,intf->in), 1);
cons++;
}
cons++;
}
@@
-110,24
+110,26
@@
static irqreturn_t handle_input(int irq, void *unused, struct pt_regs *regs)
int xencons_ring_init(void)
{
int xencons_ring_init(void)
{
- int
err
;
+ int
irq
;
if (xencons_irq)
unbind_from_irqhandler(xencons_irq, NULL);
xencons_irq = 0;
if (xencons_irq)
unbind_from_irqhandler(xencons_irq, NULL);
xencons_irq = 0;
- if (!xen_start_info->console_evtchn)
- return 0;
+ if (!is_running_on_xen() ||
+ is_initial_xendomain() ||
+ !xen_start_info->console.domU.evtchn)
+ return -ENODEV;
-
err
= bind_evtchn_to_irqhandler(
- xen_start_info->console
_
evtchn,
+
irq
= bind_evtchn_to_irqhandler(
+ xen_start_info->console
.domU.
evtchn,
handle_input, 0, "xencons", NULL);
handle_input, 0, "xencons", NULL);
- if (
err <=
0) {
- printk(KERN_ERR "XEN console request irq failed %i\n",
err
);
- return
err
;
+ if (
irq <
0) {
+ printk(KERN_ERR "XEN console request irq failed %i\n",
irq
);
+ return
irq
;
}
}
- xencons_irq =
err
;
+ xencons_irq =
irq
;
/* In case we have in-flight data after save/restore... */
notify_daemon();
/* In case we have in-flight data after save/restore... */
notify_daemon();