CRIS: Check if pointer is set before using it

Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
This commit is contained in:
Jesper Nilsson 2010-08-03 18:50:06 +02:00
parent a3af54ffa9
commit 243ba2fa46

View file

@ -46,10 +46,12 @@ static inline void crisv32_io_set(struct crisv32_iopin *iopin, int val)
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&iopin->port->lock, flags); spin_lock_irqsave(&iopin->port->lock, flags);
if (val) if (iopin->port->data) {
*iopin->port->data |= iopin->bit; if (val)
else *iopin->port->data |= iopin->bit;
*iopin->port->data &= ~iopin->bit; else
*iopin->port->data &= ~iopin->bit;
}
spin_unlock_irqrestore(&iopin->port->lock, flags); spin_unlock_irqrestore(&iopin->port->lock, flags);
} }
@ -60,10 +62,12 @@ static inline void crisv32_io_set_dir(struct crisv32_iopin* iopin,
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&iopin->port->lock, flags); spin_lock_irqsave(&iopin->port->lock, flags);
if (dir == crisv32_io_dir_in) if (iopin->port->oe) {
*iopin->port->oe &= ~iopin->bit; if (dir == crisv32_io_dir_in)
else *iopin->port->oe &= ~iopin->bit;
*iopin->port->oe |= iopin->bit; else
*iopin->port->oe |= iopin->bit;
}
spin_unlock_irqrestore(&iopin->port->lock, flags); spin_unlock_irqrestore(&iopin->port->lock, flags);
} }