@@ -206,7 +206,7 @@ static long linehandle_ioctl(struct file *file, unsigned int cmd,
206
206
207
207
guard (srcu )(& lh -> gdev -> srcu );
208
208
209
- if (!rcu_dereference (lh -> gdev -> chip ))
209
+ if (!rcu_access_pointer (lh -> gdev -> chip ))
210
210
return - ENODEV ;
211
211
212
212
switch (cmd ) {
@@ -1521,7 +1521,7 @@ static long linereq_ioctl(struct file *file, unsigned int cmd,
1521
1521
1522
1522
guard (srcu )(& lr -> gdev -> srcu );
1523
1523
1524
- if (!rcu_dereference (lr -> gdev -> chip ))
1524
+ if (!rcu_access_pointer (lr -> gdev -> chip ))
1525
1525
return - ENODEV ;
1526
1526
1527
1527
switch (cmd ) {
@@ -1552,7 +1552,7 @@ static __poll_t linereq_poll(struct file *file,
1552
1552
1553
1553
guard (srcu )(& lr -> gdev -> srcu );
1554
1554
1555
- if (!rcu_dereference (lr -> gdev -> chip ))
1555
+ if (!rcu_access_pointer (lr -> gdev -> chip ))
1556
1556
return EPOLLHUP | EPOLLERR ;
1557
1557
1558
1558
poll_wait (file , & lr -> wait , wait );
@@ -1574,7 +1574,7 @@ static ssize_t linereq_read(struct file *file, char __user *buf,
1574
1574
1575
1575
guard (srcu )(& lr -> gdev -> srcu );
1576
1576
1577
- if (!rcu_dereference (lr -> gdev -> chip ))
1577
+ if (!rcu_access_pointer (lr -> gdev -> chip ))
1578
1578
return - ENODEV ;
1579
1579
1580
1580
if (count < sizeof (le ))
@@ -1875,7 +1875,7 @@ static __poll_t lineevent_poll(struct file *file,
1875
1875
1876
1876
guard (srcu )(& le -> gdev -> srcu );
1877
1877
1878
- if (!rcu_dereference (le -> gdev -> chip ))
1878
+ if (!rcu_access_pointer (le -> gdev -> chip ))
1879
1879
return EPOLLHUP | EPOLLERR ;
1880
1880
1881
1881
poll_wait (file , & le -> wait , wait );
@@ -1913,7 +1913,7 @@ static ssize_t lineevent_read(struct file *file, char __user *buf,
1913
1913
1914
1914
guard (srcu )(& le -> gdev -> srcu );
1915
1915
1916
- if (!rcu_dereference (le -> gdev -> chip ))
1916
+ if (!rcu_access_pointer (le -> gdev -> chip ))
1917
1917
return - ENODEV ;
1918
1918
1919
1919
/*
@@ -1996,7 +1996,7 @@ static long lineevent_ioctl(struct file *file, unsigned int cmd,
1996
1996
1997
1997
guard (srcu )(& le -> gdev -> srcu );
1998
1998
1999
- if (!rcu_dereference (le -> gdev -> chip ))
1999
+ if (!rcu_access_pointer (le -> gdev -> chip ))
2000
2000
return - ENODEV ;
2001
2001
2002
2002
/*
@@ -2510,7 +2510,7 @@ static long gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2510
2510
guard (srcu )(& gdev -> srcu );
2511
2511
2512
2512
/* We fail any subsequent ioctl():s when the chip is gone */
2513
- if (!rcu_dereference (gdev -> chip ))
2513
+ if (!rcu_access_pointer (gdev -> chip ))
2514
2514
return - ENODEV ;
2515
2515
2516
2516
/* Fill in the struct and pass to userspace */
@@ -2595,7 +2595,7 @@ static __poll_t lineinfo_watch_poll(struct file *file,
2595
2595
2596
2596
guard (srcu )(& cdev -> gdev -> srcu );
2597
2597
2598
- if (!rcu_dereference (cdev -> gdev -> chip ))
2598
+ if (!rcu_access_pointer (cdev -> gdev -> chip ))
2599
2599
return EPOLLHUP | EPOLLERR ;
2600
2600
2601
2601
poll_wait (file , & cdev -> wait , pollt );
@@ -2618,7 +2618,7 @@ static ssize_t lineinfo_watch_read(struct file *file, char __user *buf,
2618
2618
2619
2619
guard (srcu )(& cdev -> gdev -> srcu );
2620
2620
2621
- if (!rcu_dereference (cdev -> gdev -> chip ))
2621
+ if (!rcu_access_pointer (cdev -> gdev -> chip ))
2622
2622
return - ENODEV ;
2623
2623
2624
2624
#ifndef CONFIG_GPIO_CDEV_V1
@@ -2696,7 +2696,7 @@ static int gpio_chrdev_open(struct inode *inode, struct file *file)
2696
2696
guard (srcu )(& gdev -> srcu );
2697
2697
2698
2698
/* Fail on open if the backing gpiochip is gone */
2699
- if (!rcu_dereference (gdev -> chip ))
2699
+ if (!rcu_access_pointer (gdev -> chip ))
2700
2700
return - ENODEV ;
2701
2701
2702
2702
cdev = kzalloc (sizeof (* cdev ), GFP_KERNEL );
@@ -2796,8 +2796,7 @@ int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt)
2796
2796
2797
2797
guard (srcu )(& gdev -> srcu );
2798
2798
2799
- gc = rcu_dereference (gdev -> chip );
2800
- if (!gc )
2799
+ if (!rcu_access_pointer (gdev -> chip ))
2801
2800
return - ENODEV ;
2802
2801
2803
2802
chip_dbg (gc , "added GPIO chardev (%d:%d)\n" , MAJOR (devt ), gdev -> id );
0 commit comments