1) sun4{u,v}_build_msi() have improper return value handling.
We should always return negative error codes, instead of
using the magic value "0" which could in fact be a valid
MSI number.
2) sun4{u,v}_build_msi() should return -ENOMEM instead of
calling prom_prom() halt with kzalloc() of the interrupt
data fails.
3) We 'remembered' the MSI number using a singleton in the
struct device archdata area, this doesn't work for MSI-X
which can cause multiple MSIs assosciated with one device.
Delete that archdata member, and instead store the MSI
number in the IRQ chip data area.
Signed-off-by: David S. Miller <davem@davemloft.net>
21 lines
369 B
C
21 lines
369 B
C
/*
|
|
* Arch specific extensions to struct device
|
|
*
|
|
* This file is released under the GPLv2
|
|
*/
|
|
#ifndef _ASM_SPARC64_DEVICE_H
|
|
#define _ASM_SPARC64_DEVICE_H
|
|
|
|
struct device_node;
|
|
struct of_device;
|
|
|
|
struct dev_archdata {
|
|
void *iommu;
|
|
void *stc;
|
|
void *host_controller;
|
|
|
|
struct device_node *prom_node;
|
|
struct of_device *op;
|
|
};
|
|
|
|
#endif /* _ASM_SPARC64_DEVICE_H */
|