summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/dev/arch/i386/kernel/irq.c4
-rw-r--r--linux/dev/include/linux/skbuff.h10
-rw-r--r--linux/src/drivers/block/triton.c8
-rw-r--r--linux/src/drivers/scsi/ultrastor.c2
-rw-r--r--linux/src/include/linux/skbuff.h8
5 files changed, 10 insertions, 22 deletions
diff --git a/linux/dev/arch/i386/kernel/irq.c b/linux/dev/arch/i386/kernel/irq.c
index 8966dea1..7faaa62c 100644
--- a/linux/dev/arch/i386/kernel/irq.c
+++ b/linux/dev/arch/i386/kernel/irq.c
@@ -229,6 +229,10 @@ setup_x86_irq (int irq, struct linux_action *new)
if ((old->flags ^ new->flags) & SA_INTERRUPT)
return (-LINUX_EBUSY);
+ /* Can't share at different levels */
+ if (intpri[irq] && linux_intr_pri != intpri[irq])
+ return (-LINUX_EBUSY);
+
/* add new interrupt at end of irq queue */
do
{
diff --git a/linux/dev/include/linux/skbuff.h b/linux/dev/include/linux/skbuff.h
index cbaba20a..c55e5297 100644
--- a/linux/dev/include/linux/skbuff.h
+++ b/linux/dev/include/linux/skbuff.h
@@ -404,10 +404,7 @@ extern __inline__ unsigned char *skb_put(struct sk_buff *skb, int len)
skb->len+=len;
if(skb->tail>skb->end)
{
- __label__ here;
- panic("skput:over: %p:%d", &&here,len);
-here:
- ;
+ panic("skput:over: %d", len);
}
return tmp;
}
@@ -418,10 +415,7 @@ extern __inline__ unsigned char *skb_push(struct sk_buff *skb, int len)
skb->len+=len;
if(skb->data<skb->head)
{
- __label__ here;
- panic("skpush:under: %p:%d", &&here,len);
-here:
- ;
+ panic("skpush:under: %d", len);
}
return skb->data;
}
diff --git a/linux/src/drivers/block/triton.c b/linux/src/drivers/block/triton.c
index 2e3d1878..3ed069d9 100644
--- a/linux/src/drivers/block/triton.c
+++ b/linux/src/drivers/block/triton.c
@@ -129,13 +129,7 @@
const char *good_dma_drives[] = {"Micropolis 2112A",
"CONNER CTMA 4000",
"CONNER CTT8000-A",
- // Should work, but kvm/qemu seem to produce
- // issues:
- // hd1 irq timeout: status=0xd8 { Busy }
- // hd0: disabled DMA
- // hd1: disabled DMA
- // ide0: reset: success
- //"QEMU HARDDISK",
+ "QEMU HARDDISK",
NULL};
/*
diff --git a/linux/src/drivers/scsi/ultrastor.c b/linux/src/drivers/scsi/ultrastor.c
index 3d9b4118..a1a1982d 100644
--- a/linux/src/drivers/scsi/ultrastor.c
+++ b/linux/src/drivers/scsi/ultrastor.c
@@ -306,7 +306,7 @@ static inline int find_and_clear_bit_16(unsigned short *field)
cli();
if (*field == 0) panic("No free mscp");
asm("xorl %0,%0\n0:\tbsfw %1,%w0\n\tbtr %0,%1\n\tjnc 0b"
- : "=&r" (rv), "=m" (*field) : "1" (*field));
+ : "=&r" (rv), "+m" (*field));
restore_flags(flags);
return rv;
}
diff --git a/linux/src/include/linux/skbuff.h b/linux/src/include/linux/skbuff.h
index cf05129b..e4c77b48 100644
--- a/linux/src/include/linux/skbuff.h
+++ b/linux/src/include/linux/skbuff.h
@@ -405,9 +405,7 @@ extern __inline__ unsigned char *skb_put(struct sk_buff *skb, int len)
skb->len+=len;
if(skb->tail>skb->end)
{
- __label__ here;
- panic("skput:over: %p:%d", &&here,len);
-here:
+ panic("skput:over: %d", len);
}
return tmp;
}
@@ -418,9 +416,7 @@ extern __inline__ unsigned char *skb_push(struct sk_buff *skb, int len)
skb->len+=len;
if(skb->data<skb->head)
{
- __label__ here;
- panic("skpush:under: %p:%d", &&here,len);
-here:
+ panic("skpush:under: %d", len);
}
return skb->data;
}