rem: mempool_init((MAX_RX_PACKET_DESC_COUNT+10) * cards_found);
add: mempool_init((MAX_RX_PACKET_DESC_COUNT+MAX_TX_PACKET_DESC_COUNT) * cards_found);
context: status_t init_driver(void) {	int i = 0, j = 0, is_detected;	pci_info dev_info;		//debug_fd = open("/tmp/broadcom_traffic_log",O_RDWR | B_CREATE_FILE);	   	if (pci == NULL)   		get_module(B_PCI_MODULE_NAME,(module_info **)&pci);   	   		   	while (pci->get_nth_pci_info(i++,&dev_info) == 0) {   		is_detected = 0;   		for (j = 0; bcm5700_pci_tbl[j].vendor != 0; j++) {	   		if ((dev_info.class_base == PCI_network) && (dev_info.class_sub == PCI_ethernet)	   		      && (dev_info.vendor_id == bcm5700_pci_tbl[j].vendor) && (dev_info.device_id == bcm5700_pci_tbl[j].device)) { 					is_detected = 1; 					break; 			} 		} 		 		if (!is_detected) 			continue; 	 	   		 	 	if (cards_found >= 10) 	 		break; 	 	 	 	dev_list[cards_found] = (char *)malloc(16 /* net/bcm570x/xx */); 	 	sprintf(dev_list[cards_found],"net/bcm570x/%d",cards_found); 	 	be_b57_dev_cards[cards_found].pci_data = dev_info; 	 	be_b57_dev_cards[cards_found].packet_release_sem = create_sem(0,dev_list[cards_found]); 	 	be_b57_dev_cards[cards_found].mem_list_num = 0; 	 	be_b57_dev_cards[cards_found].lockmem_list_num = 0; 	 	be_b57_dev_cards[cards_found].opened = 0; 	 	be_b57_dev_cards[cards_found].block = 1; 	 	be_b57_dev_cards[cards_found].lock = 0; 	 	 	 	 	 	if (LM_GetAdapterInfo(&be_b57_dev_cards[cards_found].lm_dev) != LM_STATUS_SUCCESS) 	 		return ENODEV; 	 	 	 	 	 	QQ_InitQueue(&be_b57_dev_cards[cards_found].RxPacketReadQ.Container,MAX_RX_PACKET_DESC_COUNT); 	 	 		 		cards_found++; 	} 	 	 	mempool_init((MAX_RX_PACKET_DESC_COUNT+10) * cards_found); 	 	dev_list[cards_found] = NULL;	return B_OK;}