--- linux-2.6.12/drivers/net/wireless/atmel.c 2005-06-17 20:48:29.000000000 +0100 +++ atmel.c 2005-08-19 16:10:07.000000000 +0100 @@ -3680,8 +3680,14 @@ firmware_modifier[i], fw_table[fw_index].fw_file_ext); priv->firmware_id[31] = '\0'; if (request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev) == 0) { - success = 1; - break; + if(priv->firmware=kmalloc(fw_entry->size,GFP_KERNEL)) { + success = 1; + break; + } else { + printk(KERN_ALERT "%s: kmalloc for firmware image failed, cannot start.\n",dev->name); + release_firmware(fw_entry); + break; + } } } } @@ -3696,6 +3702,8 @@ fw = fw_entry->data; len = fw_entry->size; + memcpy(priv->firmware,fw,len); + priv->firmware_length=len; } if (len <= 0x6000) {