id_tbl 656 drivers/net/ethernet/broadcom/cnic.c static int cnic_init_id_tbl(struct cnic_id_tbl *id_tbl, u32 size, u32 start_id, id_tbl 659 drivers/net/ethernet/broadcom/cnic.c id_tbl->start = start_id; id_tbl 660 drivers/net/ethernet/broadcom/cnic.c id_tbl->max = size; id_tbl 661 drivers/net/ethernet/broadcom/cnic.c id_tbl->next = next; id_tbl 662 drivers/net/ethernet/broadcom/cnic.c spin_lock_init(&id_tbl->lock); id_tbl 663 drivers/net/ethernet/broadcom/cnic.c id_tbl->table = kcalloc(BITS_TO_LONGS(size), sizeof(long), GFP_KERNEL); id_tbl 664 drivers/net/ethernet/broadcom/cnic.c if (!id_tbl->table) id_tbl 670 drivers/net/ethernet/broadcom/cnic.c static void cnic_free_id_tbl(struct cnic_id_tbl *id_tbl) id_tbl 672 drivers/net/ethernet/broadcom/cnic.c kfree(id_tbl->table); id_tbl 673 drivers/net/ethernet/broadcom/cnic.c id_tbl->table = NULL; id_tbl 676 drivers/net/ethernet/broadcom/cnic.c static int cnic_alloc_id(struct cnic_id_tbl *id_tbl, u32 id) id_tbl 680 drivers/net/ethernet/broadcom/cnic.c id -= id_tbl->start; id_tbl 681 drivers/net/ethernet/broadcom/cnic.c if (id >= id_tbl->max) id_tbl 684 drivers/net/ethernet/broadcom/cnic.c spin_lock(&id_tbl->lock); id_tbl 685 drivers/net/ethernet/broadcom/cnic.c if (!test_bit(id, id_tbl->table)) { id_tbl 686 drivers/net/ethernet/broadcom/cnic.c set_bit(id, id_tbl->table); id_tbl 689 drivers/net/ethernet/broadcom/cnic.c spin_unlock(&id_tbl->lock); id_tbl 694 drivers/net/ethernet/broadcom/cnic.c static u32 cnic_alloc_new_id(struct cnic_id_tbl *id_tbl) id_tbl 698 drivers/net/ethernet/broadcom/cnic.c spin_lock(&id_tbl->lock); id_tbl 699 drivers/net/ethernet/broadcom/cnic.c id = find_next_zero_bit(id_tbl->table, id_tbl->max, id_tbl->next); id_tbl 700 drivers/net/ethernet/broadcom/cnic.c if (id >= id_tbl->max) { id_tbl 702 drivers/net/ethernet/broadcom/cnic.c if (id_tbl->next != 0) { id_tbl 703 drivers/net/ethernet/broadcom/cnic.c id = find_first_zero_bit(id_tbl->table, id_tbl->next); id_tbl 704 drivers/net/ethernet/broadcom/cnic.c if (id >= id_tbl->next) id_tbl 709 drivers/net/ethernet/broadcom/cnic.c if (id < id_tbl->max) { id_tbl 710 drivers/net/ethernet/broadcom/cnic.c set_bit(id, id_tbl->table); id_tbl 711 drivers/net/ethernet/broadcom/cnic.c id_tbl->next = (id + 1) & (id_tbl->max - 1); id_tbl 712 drivers/net/ethernet/broadcom/cnic.c id += id_tbl->start; id_tbl 715 drivers/net/ethernet/broadcom/cnic.c spin_unlock(&id_tbl->lock); id_tbl 720 drivers/net/ethernet/broadcom/cnic.c static void cnic_free_id(struct cnic_id_tbl *id_tbl, u32 id) id_tbl 725 drivers/net/ethernet/broadcom/cnic.c id -= id_tbl->start; id_tbl 726 drivers/net/ethernet/broadcom/cnic.c if (id >= id_tbl->max) id_tbl 729 drivers/net/ethernet/broadcom/cnic.c clear_bit(id, id_tbl->table); id_tbl 68 drivers/scsi/qedi/qedi_gbl.h int qedi_alloc_id(struct qedi_portid_tbl *id_tbl, u16 id); id_tbl 69 drivers/scsi/qedi/qedi_gbl.h u16 qedi_alloc_new_id(struct qedi_portid_tbl *id_tbl); id_tbl 70 drivers/scsi/qedi/qedi_gbl.h void qedi_free_id(struct qedi_portid_tbl *id_tbl, u16 id); id_tbl 522 drivers/scsi/qedi/qedi_main.c static int qedi_init_id_tbl(struct qedi_portid_tbl *id_tbl, u16 size, id_tbl 525 drivers/scsi/qedi/qedi_main.c id_tbl->start = start_id; id_tbl 526 drivers/scsi/qedi/qedi_main.c id_tbl->max = size; id_tbl 527 drivers/scsi/qedi/qedi_main.c id_tbl->next = next; id_tbl 528 drivers/scsi/qedi/qedi_main.c spin_lock_init(&id_tbl->lock); id_tbl 529 drivers/scsi/qedi/qedi_main.c id_tbl->table = kcalloc(BITS_TO_LONGS(size), sizeof(long), GFP_KERNEL); id_tbl 530 drivers/scsi/qedi/qedi_main.c if (!id_tbl->table) id_tbl 536 drivers/scsi/qedi/qedi_main.c static void qedi_free_id_tbl(struct qedi_portid_tbl *id_tbl) id_tbl 538 drivers/scsi/qedi/qedi_main.c kfree(id_tbl->table); id_tbl 539 drivers/scsi/qedi/qedi_main.c id_tbl->table = NULL; id_tbl 542 drivers/scsi/qedi/qedi_main.c int qedi_alloc_id(struct qedi_portid_tbl *id_tbl, u16 id) id_tbl 546 drivers/scsi/qedi/qedi_main.c id -= id_tbl->start; id_tbl 547 drivers/scsi/qedi/qedi_main.c if (id >= id_tbl->max) id_tbl 550 drivers/scsi/qedi/qedi_main.c spin_lock(&id_tbl->lock); id_tbl 551 drivers/scsi/qedi/qedi_main.c if (!test_bit(id, id_tbl->table)) { id_tbl 552 drivers/scsi/qedi/qedi_main.c set_bit(id, id_tbl->table); id_tbl 555 drivers/scsi/qedi/qedi_main.c spin_unlock(&id_tbl->lock); id_tbl 559 drivers/scsi/qedi/qedi_main.c u16 qedi_alloc_new_id(struct qedi_portid_tbl *id_tbl) id_tbl 563 drivers/scsi/qedi/qedi_main.c spin_lock(&id_tbl->lock); id_tbl 564 drivers/scsi/qedi/qedi_main.c id = find_next_zero_bit(id_tbl->table, id_tbl->max, id_tbl->next); id_tbl 565 drivers/scsi/qedi/qedi_main.c if (id >= id_tbl->max) { id_tbl 567 drivers/scsi/qedi/qedi_main.c if (id_tbl->next != 0) { id_tbl 568 drivers/scsi/qedi/qedi_main.c id = find_first_zero_bit(id_tbl->table, id_tbl->next); id_tbl 569 drivers/scsi/qedi/qedi_main.c if (id >= id_tbl->next) id_tbl 574 drivers/scsi/qedi/qedi_main.c if (id < id_tbl->max) { id_tbl 575 drivers/scsi/qedi/qedi_main.c set_bit(id, id_tbl->table); id_tbl 576 drivers/scsi/qedi/qedi_main.c id_tbl->next = (id + 1) & (id_tbl->max - 1); id_tbl 577 drivers/scsi/qedi/qedi_main.c id += id_tbl->start; id_tbl 580 drivers/scsi/qedi/qedi_main.c spin_unlock(&id_tbl->lock); id_tbl 585 drivers/scsi/qedi/qedi_main.c void qedi_free_id(struct qedi_portid_tbl *id_tbl, u16 id) id_tbl 590 drivers/scsi/qedi/qedi_main.c id -= id_tbl->start; id_tbl 591 drivers/scsi/qedi/qedi_main.c if (id >= id_tbl->max) id_tbl 594 drivers/scsi/qedi/qedi_main.c clear_bit(id, id_tbl->table);