1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (C) 2018 Samsung Electronics Co., Ltd. 4 */ 5 6#include "ksmbd_ida.h" 7 8int ksmbd_acquire_smb2_tid(struct ida *ida) 9{ 10 return ida_alloc_range(ida, 1, 0xFFFFFFFE, GFP_KERNEL); 11} 12 13int ksmbd_acquire_smb2_uid(struct ida *ida) 14{ 15 int id; 16 17 id = ida_alloc_min(ida, 1, GFP_KERNEL); 18 if (id == 0xFFFE) 19 id = ida_alloc_min(ida, 1, GFP_KERNEL); 20 21 return id; 22} 23 24int ksmbd_acquire_async_msg_id(struct ida *ida) 25{ 26 return ida_alloc_min(ida, 1, GFP_KERNEL); 27} 28 29int ksmbd_acquire_id(struct ida *ida) 30{ 31 return ida_alloc(ida, GFP_KERNEL); 32} 33 34void ksmbd_release_id(struct ida *ida, int id) 35{ 36 ida_free(ida, id); 37} 38