@@ -42,7 +42,8 @@ field##_show(struct device *dev, struct device_attribute *attr, char *buf) \
42
42
\
43
43
pdev = to_pci_dev (dev); \
44
44
return sprintf (buf, format_string, pdev->field); \
45
- }
45
+ } \
46
+ static DEVICE_ATTR_RO(field)
46
47
47
48
pci_config_attr (vendor , "0x%04x\n" );
48
49
pci_config_attr (device , "0x%04x\n" );
@@ -73,6 +74,7 @@ static ssize_t broken_parity_status_store(struct device *dev,
73
74
74
75
return count ;
75
76
}
77
+ static DEVICE_ATTR_RW (broken_parity_status );
76
78
77
79
static ssize_t local_cpus_show (struct device * dev ,
78
80
struct device_attribute * attr , char * buf )
@@ -91,7 +93,7 @@ static ssize_t local_cpus_show(struct device *dev,
91
93
buf [len ] = '\0' ;
92
94
return len ;
93
95
}
94
-
96
+ static DEVICE_ATTR_RO ( local_cpus );
95
97
96
98
static ssize_t local_cpulist_show (struct device * dev ,
97
99
struct device_attribute * attr , char * buf )
@@ -110,6 +112,7 @@ static ssize_t local_cpulist_show(struct device *dev,
110
112
buf [len ] = '\0' ;
111
113
return len ;
112
114
}
115
+ static DEVICE_ATTR_RO (local_cpulist );
113
116
114
117
/*
115
118
* PCI Bus Class Devices
@@ -170,6 +173,7 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf)
170
173
}
171
174
return (str - buf );
172
175
}
176
+ static DEVICE_ATTR_RO (resource );
173
177
174
178
static ssize_t modalias_show (struct device * dev , struct device_attribute * attr , char * buf )
175
179
{
@@ -181,10 +185,11 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
181
185
(u8 )(pci_dev -> class >> 16 ), (u8 )(pci_dev -> class >> 8 ),
182
186
(u8 )(pci_dev -> class ));
183
187
}
188
+ static DEVICE_ATTR_RO (modalias );
184
189
185
- static ssize_t is_enabled_store (struct device * dev ,
186
- struct device_attribute * attr , const char * buf ,
187
- size_t count )
190
+ static ssize_t enabled_store (struct device * dev ,
191
+ struct device_attribute * attr , const char * buf ,
192
+ size_t count )
188
193
{
189
194
struct pci_dev * pdev = to_pci_dev (dev );
190
195
unsigned long val ;
@@ -208,21 +213,23 @@ static ssize_t is_enabled_store(struct device *dev,
208
213
return result < 0 ? result : count ;
209
214
}
210
215
211
- static ssize_t is_enabled_show (struct device * dev ,
212
- struct device_attribute * attr , char * buf )
216
+ static ssize_t enabled_show (struct device * dev ,
217
+ struct device_attribute * attr , char * buf )
213
218
{
214
219
struct pci_dev * pdev ;
215
220
216
221
pdev = to_pci_dev (dev );
217
222
return sprintf (buf , "%u\n" , atomic_read (& pdev -> enable_cnt ));
218
223
}
224
+ static DEVICE_ATTR_RW (enabled );
219
225
220
226
#ifdef CONFIG_NUMA
221
227
static ssize_t
222
228
numa_node_show (struct device * dev , struct device_attribute * attr , char * buf )
223
229
{
224
230
return sprintf (buf , "%d\n" , dev -> numa_node );
225
231
}
232
+ static DEVICE_ATTR_RO (numa_node );
226
233
#endif
227
234
228
235
static ssize_t
@@ -232,13 +239,15 @@ dma_mask_bits_show(struct device *dev, struct device_attribute *attr, char *buf)
232
239
233
240
return sprintf (buf , "%d\n" , fls64 (pdev -> dma_mask ));
234
241
}
242
+ static DEVICE_ATTR_RO (dma_mask_bits );
235
243
236
244
static ssize_t
237
245
consistent_dma_mask_bits_show (struct device * dev , struct device_attribute * attr ,
238
246
char * buf )
239
247
{
240
248
return sprintf (buf , "%d\n" , fls64 (dev -> coherent_dma_mask ));
241
249
}
250
+ static DEVICE_ATTR_RO (consistent_dma_mask_bits );
242
251
243
252
static ssize_t
244
253
msi_bus_show (struct device * dev , struct device_attribute * attr , char * buf )
@@ -283,6 +292,7 @@ msi_bus_store(struct device *dev, struct device_attribute *attr,
283
292
284
293
return count ;
285
294
}
295
+ static DEVICE_ATTR_RW (msi_bus );
286
296
287
297
static DEFINE_MUTEX (pci_remove_rescan_mutex );
288
298
static ssize_t bus_rescan_store (struct bus_type * bus , const char * buf ,
@@ -414,6 +424,7 @@ static ssize_t d3cold_allowed_show(struct device *dev,
414
424
struct pci_dev * pdev = to_pci_dev (dev );
415
425
return sprintf (buf , "%u\n" , pdev -> d3cold_allowed );
416
426
}
427
+ static DEVICE_ATTR_RW (d3cold_allowed );
417
428
#endif
418
429
419
430
#ifdef CONFIG_PCI_IOV
@@ -499,30 +510,38 @@ static struct device_attribute sriov_numvfs_attr =
499
510
sriov_numvfs_show , sriov_numvfs_store );
500
511
#endif /* CONFIG_PCI_IOV */
501
512
502
- struct device_attribute pci_dev_attrs [] = {
503
- __ATTR_RO ( resource ) ,
504
- __ATTR_RO ( vendor ) ,
505
- __ATTR_RO ( device ) ,
506
- __ATTR_RO ( subsystem_vendor ) ,
507
- __ATTR_RO ( subsystem_device ) ,
508
- __ATTR_RO ( class ) ,
509
- __ATTR_RO ( irq ) ,
510
- __ATTR_RO ( local_cpus ) ,
511
- __ATTR_RO ( local_cpulist ) ,
512
- __ATTR_RO ( modalias ) ,
513
+ struct attribute * pci_dev_attrs [] = {
514
+ & dev_attr_resource . attr ,
515
+ & dev_attr_vendor . attr ,
516
+ & dev_attr_device . attr ,
517
+ & dev_attr_subsystem_vendor . attr ,
518
+ & dev_attr_subsystem_device . attr ,
519
+ & dev_attr_class . attr ,
520
+ & dev_attr_irq . attr ,
521
+ & dev_attr_local_cpus . attr ,
522
+ & dev_attr_local_cpulist . attr ,
523
+ & dev_attr_modalias . attr ,
513
524
#ifdef CONFIG_NUMA
514
- __ATTR_RO ( numa_node ) ,
525
+ & dev_attr_numa_node . attr ,
515
526
#endif
516
- __ATTR_RO (dma_mask_bits ),
517
- __ATTR_RO (consistent_dma_mask_bits ),
518
- __ATTR (enable , 0600 , is_enabled_show , is_enabled_store ),
519
- __ATTR (broken_parity_status ,(S_IRUGO |S_IWUSR ),
520
- broken_parity_status_show ,broken_parity_status_store ),
521
- __ATTR (msi_bus , 0644 , msi_bus_show , msi_bus_store ),
527
+ & dev_attr_dma_mask_bits .attr ,
528
+ & dev_attr_consistent_dma_mask_bits .attr ,
529
+ & dev_attr_enabled .attr ,
530
+ & dev_attr_broken_parity_status .attr ,
531
+ & dev_attr_msi_bus .attr ,
522
532
#if defined(CONFIG_PM_RUNTIME ) && defined (CONFIG_ACPI )
523
- __ATTR ( d3cold_allowed , 0644 , d3cold_allowed_show , d3cold_allowed_store ) ,
533
+ & dev_attr_d3cold_allowed . attr ,
524
534
#endif
525
- __ATTR_NULL ,
535
+ NULL ,
536
+ };
537
+
538
+ static const struct attribute_group pci_dev_group = {
539
+ .attrs = pci_dev_attrs ,
540
+ };
541
+
542
+ const struct attribute_group * pci_dev_groups [] = {
543
+ & pci_dev_group ,
544
+ NULL ,
526
545
};
527
546
528
547
static struct attribute * pcibus_attrs [] = {
0 commit comments