@@ -356,7 +356,7 @@ nv_alloc_t *nvos_create_alloc(
356356 }
357357
358358 memset (at -> page_table , 0 , pt_size );
359- NV_ATOMIC_SET ( at -> usage_count , 0 );
359+ atomic64_set ( & at -> usage_count , 0 );
360360
361361 for (i = 0 ; i < at -> num_pages ; i ++ )
362362 {
@@ -386,7 +386,7 @@ int nvos_free_alloc(
386386 if (at == NULL )
387387 return -1 ;
388388
389- if (NV_ATOMIC_READ ( at -> usage_count ))
389+ if (atomic64_read ( & at -> usage_count ))
390390 return 1 ;
391391
392392 for (i = 0 ; i < at -> num_pages ; i ++ )
@@ -1598,13 +1598,10 @@ static int nv_open_device(nv_state_t *nv, nvidia_stack_t *sp)
15981598 return - ENODEV ;
15991599 }
16001600
1601- if (unlikely (NV_ATOMIC_READ (nvl -> usage_count ) >= NV_S32_MAX ))
1602- return - EMFILE ;
1603-
16041601 if ( ! (nv -> flags & NV_FLAG_OPEN ))
16051602 {
16061603 /* Sanity check: !NV_FLAG_OPEN requires usage_count == 0 */
1607- if (NV_ATOMIC_READ ( nvl -> usage_count ) != 0 )
1604+ if (atomic64_read ( & nvl -> usage_count ) != 0 )
16081605 {
16091606 NV_DEV_PRINTF (NV_DBG_ERRORS , nv ,
16101607 "Minor device %u is referenced without being open!\n" ,
@@ -1626,7 +1623,7 @@ static int nv_open_device(nv_state_t *nv, nvidia_stack_t *sp)
16261623
16271624 nv_assert_not_in_gpu_exclusion_list (sp , nv );
16281625
1629- NV_ATOMIC_INC ( nvl -> usage_count );
1626+ atomic64_inc ( & nvl -> usage_count );
16301627
16311628 return 0 ;
16321629}
@@ -2065,7 +2062,7 @@ static void nv_close_device(nv_state_t *nv, nvidia_stack_t *sp)
20652062{
20662063 nv_linux_state_t * nvl = NV_GET_NVL_FROM_NV_STATE (nv );
20672064
2068- if (NV_ATOMIC_READ ( nvl -> usage_count ) == 0 )
2065+ if (atomic64_read ( & nvl -> usage_count ) == 0 )
20692066 {
20702067 nv_printf (NV_DBG_ERRORS ,
20712068 "NVRM: Attempting to close unopened minor device %u!\n" ,
@@ -2074,7 +2071,7 @@ static void nv_close_device(nv_state_t *nv, nvidia_stack_t *sp)
20742071 return ;
20752072 }
20762073
2077- if (NV_ATOMIC_DEC_AND_TEST ( nvl -> usage_count ))
2074+ if (atomic64_dec_and_test ( & nvl -> usage_count ))
20782075 nv_stop_device (nv , sp );
20792076}
20802077
@@ -2119,7 +2116,7 @@ nvidia_close_callback(
21192116 nv_close_device (nv , sp );
21202117
21212118 bRemove = (!NV_IS_DEVICE_IN_SURPRISE_REMOVAL (nv )) &&
2122- (NV_ATOMIC_READ ( nvl -> usage_count ) == 0 ) &&
2119+ (atomic64_read ( & nvl -> usage_count ) == 0 ) &&
21232120 rm_get_device_remove_flag (sp , nv -> gpu_id );
21242121
21252122 nv_free_file_private (nvlfp );
@@ -2138,7 +2135,7 @@ nvidia_close_callback(
21382135 * any cleanup related to linux layer locks and nv linux state struct.
21392136 * nvidia_pci_remove when scheduled will do necessary cleanup.
21402137 */
2141- if ((NV_ATOMIC_READ ( nvl -> usage_count ) == 0 ) && nv -> removed )
2138+ if ((atomic64_read ( & nvl -> usage_count ) == 0 ) && nv -> removed )
21422139 {
21432140 nv_lock_destroy_locks (sp , nv );
21442141 NV_KFREE (nvl , sizeof (nv_linux_state_t ));
@@ -2659,7 +2656,7 @@ nvidia_ioctl(
26592656 * Only the current client should have an open file
26602657 * descriptor for the device, to allow safe offlining.
26612658 */
2662- if (NV_ATOMIC_READ ( nvl -> usage_count ) > 1 )
2659+ if (atomic64_read ( & nvl -> usage_count ) > 1 )
26632660 {
26642661 status = - EBUSY ;
26652662 goto unlock ;
@@ -3048,12 +3045,12 @@ nvidia_ctl_open(
30483045 /* save the nv away in file->private_data */
30493046 nvlfp -> nvptr = nvl ;
30503047
3051- if (NV_ATOMIC_READ ( nvl -> usage_count ) == 0 )
3048+ if (atomic64_read ( & nvl -> usage_count ) == 0 )
30523049 {
30533050 nv -> flags |= (NV_FLAG_OPEN | NV_FLAG_CONTROL );
30543051 }
30553052
3056- NV_ATOMIC_INC ( nvl -> usage_count );
3053+ atomic64_inc ( & nvl -> usage_count );
30573054 up (& nvl -> ldata_lock );
30583055
30593056 return 0 ;
@@ -3078,7 +3075,7 @@ nvidia_ctl_close(
30783075 nv_printf (NV_DBG_INFO , "NVRM: nvidia_ctl_close\n" );
30793076
30803077 down (& nvl -> ldata_lock );
3081- if (NV_ATOMIC_DEC_AND_TEST ( nvl -> usage_count ))
3078+ if (atomic64_dec_and_test ( & nvl -> usage_count ))
30823079 {
30833080 nv -> flags &= ~NV_FLAG_OPEN ;
30843081 }
@@ -3243,7 +3240,7 @@ nv_alias_pages(
32433240
32443241 at -> guest_id = guest_id ;
32453242 * priv_data = at ;
3246- NV_ATOMIC_INC ( at -> usage_count );
3243+ atomic64_inc ( & at -> usage_count );
32473244
32483245 NV_PRINT_AT (NV_DBG_MEMINFO , at );
32493246
@@ -3810,7 +3807,7 @@ NV_STATUS NV_API_CALL nv_alloc_pages(
38103807 }
38113808
38123809 * priv_data = at ;
3813- NV_ATOMIC_INC ( at -> usage_count );
3810+ atomic64_inc ( & at -> usage_count );
38143811
38153812 NV_PRINT_AT (NV_DBG_MEMINFO , at );
38163813
@@ -3846,7 +3843,7 @@ NV_STATUS NV_API_CALL nv_free_pages(
38463843 * This is described in greater detail in the comments above the
38473844 * nvidia_vma_(open|release)() callbacks in nv-mmap.c.
38483845 */
3849- if (!NV_ATOMIC_DEC_AND_TEST ( at -> usage_count ))
3846+ if (!atomic64_dec_and_test ( & at -> usage_count ))
38503847 return NV_OK ;
38513848
38523849 if (!at -> flags .guest )
@@ -3875,7 +3872,7 @@ NvBool nv_lock_init_locks
38753872 NV_INIT_MUTEX (& nvl -> mmap_lock );
38763873 NV_INIT_MUTEX (& nvl -> open_q_lock );
38773874
3878- NV_ATOMIC_SET ( nvl -> usage_count , 0 );
3875+ atomic64_set ( & nvl -> usage_count , 0 );
38793876
38803877 if (!rm_init_event_locks (sp , nv ))
38813878 return NV_FALSE ;
0 commit comments