Commit 96f3ee28 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
  [S390] irqstats: fix counting of pfault, dasd diag and virtio irqs
  [S390] prng: fix pointer arithmetic
parents fa515888 a9851832
...@@ -76,7 +76,7 @@ static void prng_seed(int nbytes) ...@@ -76,7 +76,7 @@ static void prng_seed(int nbytes)
/* Add the entropy */ /* Add the entropy */
while (nbytes >= 8) { while (nbytes >= 8) {
*((__u64 *)parm_block) ^= *((__u64 *)buf+i); *((__u64 *)parm_block) ^= *((__u64 *)(buf+i));
prng_add_entropy(); prng_add_entropy();
i += 8; i += 8;
nbytes -= 8; nbytes -= 8;
......
...@@ -543,7 +543,6 @@ static void pfault_interrupt(unsigned int ext_int_code, ...@@ -543,7 +543,6 @@ static void pfault_interrupt(unsigned int ext_int_code,
struct task_struct *tsk; struct task_struct *tsk;
__u16 subcode; __u16 subcode;
kstat_cpu(smp_processor_id()).irqs[EXTINT_PFL]++;
/* /*
* Get the external interruption subcode & pfault * Get the external interruption subcode & pfault
* initial/completion signal bit. VM stores this * initial/completion signal bit. VM stores this
...@@ -553,6 +552,7 @@ static void pfault_interrupt(unsigned int ext_int_code, ...@@ -553,6 +552,7 @@ static void pfault_interrupt(unsigned int ext_int_code,
subcode = ext_int_code >> 16; subcode = ext_int_code >> 16;
if ((subcode & 0xff00) != __SUBCODE_MASK) if ((subcode & 0xff00) != __SUBCODE_MASK)
return; return;
kstat_cpu(smp_processor_id()).irqs[EXTINT_PFL]++;
/* /*
* Get the token (= address of the task structure of the affected task). * Get the token (= address of the task structure of the affected task).
......
...@@ -239,7 +239,6 @@ static void dasd_ext_handler(unsigned int ext_int_code, ...@@ -239,7 +239,6 @@ static void dasd_ext_handler(unsigned int ext_int_code,
addr_t ip; addr_t ip;
int rc; int rc;
kstat_cpu(smp_processor_id()).irqs[EXTINT_DSD]++;
switch (ext_int_code >> 24) { switch (ext_int_code >> 24) {
case DASD_DIAG_CODE_31BIT: case DASD_DIAG_CODE_31BIT:
ip = (addr_t) param32; ip = (addr_t) param32;
...@@ -250,6 +249,7 @@ static void dasd_ext_handler(unsigned int ext_int_code, ...@@ -250,6 +249,7 @@ static void dasd_ext_handler(unsigned int ext_int_code,
default: default:
return; return;
} }
kstat_cpu(smp_processor_id()).irqs[EXTINT_DSD]++;
if (!ip) { /* no intparm: unsolicited interrupt */ if (!ip) { /* no intparm: unsolicited interrupt */
DBF_EVENT(DBF_NOTICE, "%s", "caught unsolicited " DBF_EVENT(DBF_NOTICE, "%s", "caught unsolicited "
"interrupt"); "interrupt");
......
...@@ -381,10 +381,10 @@ static void kvm_extint_handler(unsigned int ext_int_code, ...@@ -381,10 +381,10 @@ static void kvm_extint_handler(unsigned int ext_int_code,
u16 subcode; u16 subcode;
u32 param; u32 param;
kstat_cpu(smp_processor_id()).irqs[EXTINT_VRT]++;
subcode = ext_int_code >> 16; subcode = ext_int_code >> 16;
if ((subcode & 0xff00) != VIRTIO_SUBCODE_64) if ((subcode & 0xff00) != VIRTIO_SUBCODE_64)
return; return;
kstat_cpu(smp_processor_id()).irqs[EXTINT_VRT]++;
/* The LSB might be overloaded, we have to mask it */ /* The LSB might be overloaded, we have to mask it */
vq = (struct virtqueue *)(param64 & ~1UL); vq = (struct virtqueue *)(param64 & ~1UL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment