Wind River Support Network

HomeOther Downloadswrlinux 1.5 : dev_printk is not checking arguments as the standard kernel dev_printk is doing.
Recommended Type: Patch

wrlinux 1.5 : dev_printk is not checking arguments as the standard kernel dev_printk is doing.

Released: Sep 25, 2008     Updated: Sep 25, 2008

Description

the drivers (in this specific case the scsi driver sym53c8xx_2) is using dev_info to dump strings. for example in the

drivers\scsi\sym53c8xx_2\sym_glue.c :
dev_info(&tp->starget->dev,
"tagged command queuing %s, command queue depth %d.\n",
lp->s.reqtags ? "enabled" : "disabled",
lp->started_limit);


The tp->starget->dev.driver is set to NULL in that case, which makes the dev_info crash.
In our device.h (that we patch) we define :

#define dev_info(dev, format, arg…) \
dev_printk(KERN_INFO , dev , format , ## arg)

And in the same file, a bit above:
#ifdef CONFIG_EVLOG
#include
#define dev_printk(level, dev, format, arg…) \
do { \
printk(level "%s %s: " format , (dev)->driver->name , (dev)->bus_id , ## arg); \
evl_printk((dev)->driver->name , 0, (level[1]-'0') , \
"%s %s: " format , (dev)->driver->name , (dev)->bus_id , ## arg); \
} while (0)
#else
#define dev_printk(level, dev, format, arg…) \
printk(level "%s %s: " format , (dev)->driver->name , (dev)->bus_id , ## arg)
#endif

The accesses to (dev)->driver->name are crashing the modules…because (dev)->driver==0 IDENTIFIER = WIND00112878


Product Version

Linux Platforms 1.x

Downloads


Installation Notes

Installation Notes

WIND00134145.zip is for 1.4
WIND00133951.zip is for 1.5

1. Unzip the patch under [install_dir]/updates

2. Install the patch CD by entering the patch CD directory and run setup_linux.

3. This is a source only patch so you will have to build the kernel

4. Issue a make fs and make the kernel in a configured directory.

5. Upload the kernel and rootfs into the target and boot it up.


Live chat
Online