/* * linux/fs/nfs/iostat.h * * Declarations for NFS client per-mount statistics * * Copyright (C) 2005, 2006 Chuck Lever * */ #ifndef _NFS_IOSTAT #define _NFS_IOSTAT #include #include #include struct nfs_iostats { unsigned long long bytes[__NFSIOS_BYTESMAX]; #ifdef CONFIG_NFS_FSCACHE unsigned long long fscache[__NFSIOS_FSCACHEMAX]; #endif unsigned long events[__NFSIOS_COUNTSMAX]; } ____cacheline_aligned; static inline void nfs_inc_server_stats(const struct nfs_server *server, enum nfs_stat_eventcounters stat) { this_cpu_inc(server->io_stats->events[stat]); } static inline void nfs_inc_stats(const struct inode *inode, enum nfs_stat_eventcounters stat) { nfs_inc_server_stats(NFS_SERVER(inode), stat); } static inline void nfs_add_server_stats(const struct nfs_server *server, enum nfs_stat_bytecounters stat, long addend) { this_cpu_add(server->io_stats->bytes[stat], addend); } static inline void nfs_add_stats(const struct inode *inode, enum nfs_stat_bytecounters stat, long addend) { nfs_add_server_stats(NFS_SERVER(inode), stat, addend); } #ifdef CONFIG_NFS_FSCACHE static inline void nfs_add_fscache_stats(struct inode *inode, enum nfs_stat_fscachecounters stat, long addend) { this_cpu_add(NFS_SERVER(inode)->io_stats->fscache[stat], addend); } static inline void nfs_inc_fscache_stats(struct inode *inode, enum nfs_stat_fscachecounters stat) { this_cpu_inc(NFS_SERVER(inode)->io_stats->fscache[stat]); } #endif static inline struct nfs_iostats __percpu *nfs_alloc_iostats(void) { return alloc_percpu(struct nfs_iostats); } static inline void nfs_free_iostats(struct nfs_iostats __percpu *stats) { if (stats != NULL) free_percpu(stats); } #endif /* _NFS_IOSTAT */ ee/drivers/usb/usbip/stub_tx.c?id=4e5b54f127426c82dc2816340c26d951a5bb3429'>treecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2016-12-18 14:35:45 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2017-01-30 10:17:17 +0100
commit4e5b54f127426c82dc2816340c26d951a5bb3429 (patch)
treecc3a8f7e335cf12880bc8d1a1e2066f6cfe0a68e /drivers/usb/usbip/stub_tx.c
parent566cf877a1fcb6d6dc0126b076aad062054c2637 (diff)
drm: prevent double-(un)registration for connectors
If we're unlucky then the registration from a hotplugged connector might race with the final registration step on driver load. And since MST topology discover is asynchronous that's even somewhat likely. v2: Also update the kerneldoc for @registered! v3: Review from Chris: - Improve kerneldoc for late_register/early_unregister callbacks. - Use mutex_destroy. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Sean Paul <seanpaul@chromium.org> Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20161218133545.2106-1-daniel.vetter@ffwll.ch (cherry picked from commit e73ab00e9a0f1731f34d0620a9c55f5c30c4ad4e)
Diffstat (limited to 'drivers/usb/usbip/stub_tx.c')