#define NI_HANDLE_MAGIC 0xebc0de00
#define NI_HANDLE_MASK 0x000000ff
-static struct nal_t *ptl_nal_table[NAL_MAX_NR];
+static struct nal_t *ptl_nal_table[NAL_MAX_NR + 1];
#ifdef __KERNEL__
DECLARE_MUTEX(ptl_mutex);
idx &= NI_HANDLE_MASK;
- if (idx >= NAL_MAX_NR ||
+ if (idx > NAL_MAX_NR ||
ptl_nal_table[idx] == NULL ||
ptl_nal_table[idx]->nal_refct == 0)
return NULL;
ptl_mutex_enter();
- if (interface < 0 || interface >= NAL_MAX_NR)
+ if (interface < 0 || interface > NAL_MAX_NR)
rc = PTL_IFACE_INVALID;
else if (ptl_nal_table[interface] != NULL)
rc = PTL_IFACE_DUP;
void ptl_unregister_nal (ptl_interface_t interface)
{
- LASSERT(interface >= 0 && interface < NAL_MAX_NR);
+ LASSERT(interface >= 0 && interface <= NAL_MAX_NR);
LASSERT(ptl_nal_table[interface] != NULL);
LASSERT(ptl_nal_table[interface]->nal_refct == 0);
/* If this assertion fails, we need more bits in NI_HANDLE_MASK and
* to shift NI_HANDLE_MAGIC left appropriately */
- LASSERT (NAL_MAX_NR <= (NI_HANDLE_MASK + 1));
+ LASSERT (NAL_MAX_NR < (NI_HANDLE_MASK + 1));
if (max_interfaces != NULL)
- *max_interfaces = NAL_MAX_NR;
+ *max_interfaces = NAL_MAX_NR + 1;
ptl_mutex_enter();
ptl_mutex_enter();
if (ptl_init) {
- for (i = 0; i < NAL_MAX_NR; i++) {
+ for (i = 0; i <= NAL_MAX_NR; i++) {
nal = ptl_nal_table[i];
if (nal == NULL)
ptl_mutex_enter ();
if (interface == PTL_IFACE_DEFAULT) {
- for (i = 0; i < NAL_MAX_NR; i++)
+ for (i = 0; i <= NAL_MAX_NR; i++)
if (ptl_nal_table[i] != NULL) {
interface = i;
break;
}
if (interface < 0 ||
- interface >= NAL_MAX_NR ||
+ interface > NAL_MAX_NR ||
ptl_nal_table[interface] == NULL) {
GOTO(out, rc = PTL_IFACE_INVALID);
}