Hi,
I checked again.. yes it contains symbols of all loaded modules but after a reboot the call addresses from the last trace don't match those found in ksyms. They have to be converted in some way using the data from the oops trace../proc/ksyms contains the symbols of all loaded modules
hmmm. Does this only occur with the bt8xx cards or also with the old Nova cards?I don't know. I just have a bt8xx card. You have a nova card so you should try the code out but if tcpdump works that doesn't necessarily mean everything is fine.. As I said in my last mail I can use tcpdump alone too, but as soon as I start the ipviasky proxy, the kernel's life will be short ;) Your new additions unfortunately didn't help. Still same crash..
I suppose this oops occurs because the software demux is called with invalid buffer pointers or buffer length arguments. Thus the memcpy function crashes when it's trying to read after the end of the buffer. Or there is a serious undiscovered bug in the software demultiplexer.I will try that out soon..
I added some more restricted locking and an additional sanity check in the synchronizer code, could you please add some printk()'s in the dvb_dmx_swfilter(), dvb_dmx_swfilter_section_packet() and dvb_dmx_memcopy() functions in order to find out what exactly is going wrong?
Please print the actual line number (remember that you must not insert new lines in order to maintain the original line numbers), the requested number of copied bytes, the copy start offset and whether the bytes are copied from demux->tsbuf in dvb_dmx_swfilter() or from card->bt->buf_cpu[] through the tasklet processing function (dvb_bt8xx_task() in dvb-bt8xx.c)?