PNP: remove null pointer checks
Remove some null pointer checks. Null pointers in these areas indicate programming errors, and I think it's better to oops immediately rather than return an error that is easily ignored. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Acked-by: Adam Belay <abelay@novell.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
4f0217e302
commit
b173491339
|
@ -52,9 +52,6 @@ int pnp_register_protocol(struct pnp_protocol *protocol)
|
||||||
int nodenum;
|
int nodenum;
|
||||||
struct list_head *pos;
|
struct list_head *pos;
|
||||||
|
|
||||||
if (!protocol)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
INIT_LIST_HEAD(&protocol->devices);
|
INIT_LIST_HEAD(&protocol->devices);
|
||||||
INIT_LIST_HEAD(&protocol->cards);
|
INIT_LIST_HEAD(&protocol->cards);
|
||||||
nodenum = 0;
|
nodenum = 0;
|
||||||
|
@ -94,8 +91,6 @@ static void pnp_free_ids(struct pnp_dev *dev)
|
||||||
struct pnp_id *id;
|
struct pnp_id *id;
|
||||||
struct pnp_id *next;
|
struct pnp_id *next;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return;
|
|
||||||
id = dev->id;
|
id = dev->id;
|
||||||
while (id) {
|
while (id) {
|
||||||
next = id->next;
|
next = id->next;
|
||||||
|
@ -143,7 +138,7 @@ int __pnp_add_device(struct pnp_dev *dev)
|
||||||
*/
|
*/
|
||||||
int pnp_add_device(struct pnp_dev *dev)
|
int pnp_add_device(struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
if (!dev || !dev->protocol || dev->card)
|
if (dev->card)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
dev->dev.parent = &dev->protocol->dev;
|
dev->dev.parent = &dev->protocol->dev;
|
||||||
sprintf(dev->dev.bus_id, "%02x:%02x", dev->protocol->number,
|
sprintf(dev->dev.bus_id, "%02x:%02x", dev->protocol->number,
|
||||||
|
|
|
@ -232,10 +232,6 @@ int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
struct pnp_id *ptr;
|
struct pnp_id *ptr;
|
||||||
|
|
||||||
if (!id)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!dev)
|
|
||||||
return -EINVAL;
|
|
||||||
id->next = NULL;
|
id->next = NULL;
|
||||||
ptr = dev->id;
|
ptr = dev->id;
|
||||||
while (ptr && ptr->next)
|
while (ptr && ptr->next)
|
||||||
|
|
|
@ -1040,7 +1040,7 @@ static int isapnp_set_resources(struct pnp_dev *dev,
|
||||||
|
|
||||||
static int isapnp_disable_resources(struct pnp_dev *dev)
|
static int isapnp_disable_resources(struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
if (!dev || !dev->active)
|
if (!dev->active)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
isapnp_cfg_begin(dev->card->number, dev->number);
|
isapnp_cfg_begin(dev->card->number, dev->number);
|
||||||
isapnp_deactivate(dev->number);
|
isapnp_deactivate(dev->number);
|
||||||
|
|
|
@ -21,9 +21,6 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx)
|
||||||
resource_size_t *start, *end;
|
resource_size_t *start, *end;
|
||||||
unsigned long *flags;
|
unsigned long *flags;
|
||||||
|
|
||||||
if (!dev || !rule)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (idx >= PNP_MAX_PORT) {
|
if (idx >= PNP_MAX_PORT) {
|
||||||
pnp_err
|
pnp_err
|
||||||
("More than 4 ports is incompatible with pnp specifications.");
|
("More than 4 ports is incompatible with pnp specifications.");
|
||||||
|
@ -66,9 +63,6 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx)
|
||||||
resource_size_t *start, *end;
|
resource_size_t *start, *end;
|
||||||
unsigned long *flags;
|
unsigned long *flags;
|
||||||
|
|
||||||
if (!dev || !rule)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (idx >= PNP_MAX_MEM) {
|
if (idx >= PNP_MAX_MEM) {
|
||||||
pnp_err
|
pnp_err
|
||||||
("More than 8 mems is incompatible with pnp specifications.");
|
("More than 8 mems is incompatible with pnp specifications.");
|
||||||
|
@ -127,9 +121,6 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx)
|
||||||
5, 10, 11, 12, 9, 14, 15, 7, 3, 4, 13, 0, 1, 6, 8, 2
|
5, 10, 11, 12, 9, 14, 15, 7, 3, 4, 13, 0, 1, 6, 8, 2
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!dev || !rule)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (idx >= PNP_MAX_IRQ) {
|
if (idx >= PNP_MAX_IRQ) {
|
||||||
pnp_err
|
pnp_err
|
||||||
("More than 2 irqs is incompatible with pnp specifications.");
|
("More than 2 irqs is incompatible with pnp specifications.");
|
||||||
|
@ -181,9 +172,6 @@ static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx)
|
||||||
1, 3, 5, 6, 7, 0, 2, 4
|
1, 3, 5, 6, 7, 0, 2, 4
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!dev || !rule)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (idx >= PNP_MAX_DMA) {
|
if (idx >= PNP_MAX_DMA) {
|
||||||
pnp_err
|
pnp_err
|
||||||
("More than 2 dmas is incompatible with pnp specifications.");
|
("More than 2 dmas is incompatible with pnp specifications.");
|
||||||
|
@ -410,8 +398,6 @@ int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res,
|
||||||
int i;
|
int i;
|
||||||
struct pnp_resource_table *bak;
|
struct pnp_resource_table *bak;
|
||||||
|
|
||||||
if (!dev || !res)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!pnp_can_configure(dev))
|
if (!pnp_can_configure(dev))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
bak = pnp_alloc(sizeof(struct pnp_resource_table));
|
bak = pnp_alloc(sizeof(struct pnp_resource_table));
|
||||||
|
@ -460,9 +446,6 @@ int pnp_auto_config_dev(struct pnp_dev *dev)
|
||||||
struct pnp_option *dep;
|
struct pnp_option *dep;
|
||||||
int i = 1;
|
int i = 1;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (!pnp_can_configure(dev)) {
|
if (!pnp_can_configure(dev)) {
|
||||||
pnp_dbg("Device %s does not support resource configuration.",
|
pnp_dbg("Device %s does not support resource configuration.",
|
||||||
dev->dev.bus_id);
|
dev->dev.bus_id);
|
||||||
|
@ -541,8 +524,6 @@ int pnp_activate_dev(struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return -EINVAL;
|
|
||||||
if (dev->active)
|
if (dev->active)
|
||||||
return 0; /* the device is already active */
|
return 0; /* the device is already active */
|
||||||
|
|
||||||
|
@ -568,8 +549,6 @@ int pnp_disable_dev(struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!dev->active)
|
if (!dev->active)
|
||||||
return 0; /* the device is already disabled */
|
return 0; /* the device is already disabled */
|
||||||
|
|
||||||
|
@ -596,8 +575,6 @@ int pnp_disable_dev(struct pnp_dev *dev)
|
||||||
void pnp_resource_change(struct resource *resource, resource_size_t start,
|
void pnp_resource_change(struct resource *resource, resource_size_t start,
|
||||||
resource_size_t size)
|
resource_size_t size)
|
||||||
{
|
{
|
||||||
if (resource == NULL)
|
|
||||||
return;
|
|
||||||
resource->flags &= ~(IORESOURCE_AUTO | IORESOURCE_UNSET);
|
resource->flags &= ~(IORESOURCE_AUTO | IORESOURCE_UNSET);
|
||||||
resource->start = start;
|
resource->start = start;
|
||||||
resource->end = start + size - 1;
|
resource->end = start + size - 1;
|
||||||
|
|
|
@ -47,9 +47,6 @@ struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev)
|
||||||
{
|
{
|
||||||
struct pnp_option *option;
|
struct pnp_option *option;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
option = pnp_build_option(PNP_RES_PRIORITY_PREFERRED);
|
option = pnp_build_option(PNP_RES_PRIORITY_PREFERRED);
|
||||||
|
|
||||||
/* this should never happen but if it does we'll try to continue */
|
/* this should never happen but if it does we'll try to continue */
|
||||||
|
@ -64,9 +61,6 @@ struct pnp_option *pnp_register_dependent_option(struct pnp_dev *dev,
|
||||||
{
|
{
|
||||||
struct pnp_option *option;
|
struct pnp_option *option;
|
||||||
|
|
||||||
if (!dev)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
option = pnp_build_option(priority);
|
option = pnp_build_option(priority);
|
||||||
|
|
||||||
if (dev->dependent) {
|
if (dev->dependent) {
|
||||||
|
@ -83,11 +77,6 @@ int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data)
|
||||||
{
|
{
|
||||||
struct pnp_irq *ptr;
|
struct pnp_irq *ptr;
|
||||||
|
|
||||||
if (!option)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!data)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
ptr = option->irq;
|
ptr = option->irq;
|
||||||
while (ptr && ptr->next)
|
while (ptr && ptr->next)
|
||||||
ptr = ptr->next;
|
ptr = ptr->next;
|
||||||
|
@ -112,11 +101,6 @@ int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data)
|
||||||
{
|
{
|
||||||
struct pnp_dma *ptr;
|
struct pnp_dma *ptr;
|
||||||
|
|
||||||
if (!option)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!data)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
ptr = option->dma;
|
ptr = option->dma;
|
||||||
while (ptr && ptr->next)
|
while (ptr && ptr->next)
|
||||||
ptr = ptr->next;
|
ptr = ptr->next;
|
||||||
|
@ -132,11 +116,6 @@ int pnp_register_port_resource(struct pnp_option *option, struct pnp_port *data)
|
||||||
{
|
{
|
||||||
struct pnp_port *ptr;
|
struct pnp_port *ptr;
|
||||||
|
|
||||||
if (!option)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!data)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
ptr = option->port;
|
ptr = option->port;
|
||||||
while (ptr && ptr->next)
|
while (ptr && ptr->next)
|
||||||
ptr = ptr->next;
|
ptr = ptr->next;
|
||||||
|
@ -152,11 +131,6 @@ int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data)
|
||||||
{
|
{
|
||||||
struct pnp_mem *ptr;
|
struct pnp_mem *ptr;
|
||||||
|
|
||||||
if (!option)
|
|
||||||
return -EINVAL;
|
|
||||||
if (!data)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
ptr = option->mem;
|
ptr = option->mem;
|
||||||
while (ptr && ptr->next)
|
while (ptr && ptr->next)
|
||||||
ptr = ptr->next;
|
ptr = ptr->next;
|
||||||
|
|
Loading…
Reference in New Issue