On Wed, Jan 25, 2006 at 12:21:42AM +0100, Mattia Dongili wrote: > I experienced the same today, I was planning to get a photo tomorrow :) > I'm running 2.6.16-rc1-mm2 and the last working kernel was 2.6.15-mm4 > (didn't try .16-rc1-mm1 being scared of the reiserfs breakage). I think that's because the latest driver version wants to wait for the ucode download, and e100_exec_cb_wait before allocating any control blocks. static inline int e100_exec_cb_wait(struct nic *nic, struct sk_buff *skb, void (*cb_prepare)(struct nic *, struct cb *, struct sk_buff *)) { int err = 0, counter = 50; struct cb *cb = nic->cb_to_clean; if ((err = e100_exec_cb(nic, NULL, e100_setup_ucode))) DPRINTK(PROBE,ERR, "ucode cmd failed with error %d\n", err); /* NOTE: the oops shows that e100_exec_cb fails with ENOMEM, * which also means there are no cbs */ /* ... other stuff... * and then we die here because cb is NULL: */ while (!(cb->status & cpu_to_le16(cb_complete))) { msleep(10); if (!--counter) break; } I'm not sure what the right fix would be. e100_resume would probably have to call e100_alloc_cbs early on, while e100_up should avoid calling it a second time if nic->cbs_avail != 0. A tentative patch for testing is attached. Olaf -- Olaf Kirch | --- o --- Nous sommes du soleil we love when we play okir@suse.de | / | \ sol.dhoop.naytheet.ah kin.ir.samse.qurax