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
This commit is contained in:
@@ -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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user