diff options
| -rw-r--r-- | drivers/serial/serial.c | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c index acb74af96..5bbf3aeb4 100644 --- a/drivers/serial/serial.c +++ b/drivers/serial/serial.c @@ -97,12 +97,20 @@ serial_initfunc(sh_serial_initialize);  void serial_register(struct serial_device *dev)  {  #ifdef CONFIG_NEEDS_MANUAL_RELOC -	dev->start += gd->reloc_off; -	dev->setbrg += gd->reloc_off; -	dev->getc += gd->reloc_off; -	dev->tstc += gd->reloc_off; -	dev->putc += gd->reloc_off; -	dev->puts += gd->reloc_off; +	if (dev->start) +		dev->start += gd->reloc_off; +	if (dev->stop) +		dev->stop += gd->reloc_off; +	if (dev->setbrg) +		dev->setbrg += gd->reloc_off; +	if (dev->getc) +		dev->getc += gd->reloc_off; +	if (dev->tstc) +		dev->tstc += gd->reloc_off; +	if (dev->putc) +		dev->putc += gd->reloc_off; +	if (dev->puts) +		dev->puts += gd->reloc_off;  #endif  	dev->next = serial_devices; |