Тааак.....вылетела такая бага:
После этого
b2c2-flexcop: CX24113 successfully attached
Jul 28 21:56:24 ubuntu kernel: [76465.213969] b2c2-flexcop: ISL6421 successfully attached
Jul 28 21:56:24 ubuntu kernel: [76465.213970] b2c2-flexcop: found 'Conexant CX24123/CX24109' .
Jul 28 21:56:24 ubuntu kernel: [76465.213974] DVB: registering adapter 4 frontend 0 (Conexant CX24123/CX24109)...
Jul 28 21:56:24 ubuntu kernel: [76465.214033] b2c2-flexcop: initialization of 'Sky2PC/SkyStar 2 DVB-S rev 2.8' at the 'PCI' bus controlled by a 'FlexCopIIb' complete
Jul 28 21:56:47 ubuntu kernel: [76487.709249] Contunuity error flag is set
Jul 28 21:56:47 ubuntu kernel: [76487.709253] 0 valid irq took place so far
Jul 28 21:56:47 ubuntu kernel: [76487.709260] 0 valid irq took place so far
Jul 28 21:56:47 ubuntu kernel: [76487.711220] 0 valid irq took place so fa
ядро начало лихорадочно сыпать последней фразой и в какой то момент комп ушел в халт.
В исходинике драйвера нашел такие строки:
/* errors */
+ /* errors */
if (v.irq_20c.Data_receiver_error)
deb_chk("data receiver error\n");
if (v.irq_20c.Continuity_error_flag)
@@ -165,24 +164,29 @@ static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
deb_chk("Transport error\n");
if ((fc_pci->count % 1000) == 0)
- deb_chk("%d valid irq took place so far\n",fc_pci->count);
+ deb_chk("%d valid irq took place so far\n", fc_pci->count);
Судя из лога, указатель fc_pci->count пустой
fc_pci описывается так:
struct flexcop_pci *fc_pci = fc->bus_specific;
bus_specific
как
void* bus_specific;
и потом
struct flexcop_device *flexcop_device_kmalloc(size_t bus_specific_len)
{
void *bus;
struct flexcop_device *fc = kzalloc(sizeof(struct flexcop_device), GFP_KERNEL);
if (!fc) {
err("no memory");
return NULL;
}
bus = kzalloc(bus_specific_len, GFP_KERNEL);
if (!bus) {
err("no memory");
kfree(fc);
return NULL;
}
fc->bus_specific = bus;
return fc;
}
В гугле подобная проблема не обозначена, кто шарит в си, объясните, где затык. я так понимаю, какая то проблема с выделением памяти