| .. | .. |
|---|
| 267 | 267 | return ret; |
|---|
| 268 | 268 | } |
|---|
| 269 | 269 | |
|---|
| 270 | +#define module_driver2(__driver, __register, __unregister, ...) \ |
|---|
| 271 | +static int __init __driver##_init(void) \ |
|---|
| 272 | +{ \ |
|---|
| 273 | + return __register(&(__driver), ##__VA_ARGS__); \ |
|---|
| 274 | +} \ |
|---|
| 275 | +late_initcall(__driver##_init); \ |
|---|
| 276 | +static void __exit __driver##_exit(void) \ |
|---|
| 277 | +{ \ |
|---|
| 278 | + __unregister(&(__driver), ##__VA_ARGS__); \ |
|---|
| 279 | +} \ |
|---|
| 280 | +module_exit(__driver##_exit); |
|---|
| 281 | + |
|---|
| 270 | 282 | /** |
|---|
| 271 | 283 | * devm_alloc_percpu - Resource-managed alloc_percpu |
|---|
| 272 | 284 | * @dev: Device to allocate per-cpu memory for |
|---|