cached_dev
static struct pci_dev *cached_dev;
if (!force_hpet_address || !cached_dev)
pci_read_config_dword(cached_dev, 0xD0, &gen_cntl);
pci_write_config_dword(cached_dev, 0xD0, gen_cntl);
pci_read_config_dword(cached_dev, 0xD0, &gen_cntl);
cached_dev = dev;
if (!force_hpet_address || !cached_dev)
pci_write_config_dword(cached_dev, 0x68, val);
pci_read_config_dword(cached_dev, 0x68, &val);
cached_dev = dev;
pci_write_config_dword(cached_dev, 0x14, 0xfed00000);
cached_dev = dev;
pci_write_config_dword(cached_dev, 0x44, 0xfed00001);
cached_dev = dev;
bool bch_cached_dev_error(struct cached_dev *dc);
void bch_write_bdev_super(struct cached_dev *dc, struct closure *parent);
int bch_cached_dev_attach(struct cached_dev *dc, struct cache_set *c,
void bch_cached_dev_detach(struct cached_dev *dc);
int bch_cached_dev_run(struct cached_dev *dc);
static inline void cached_dev_put(struct cached_dev *dc)
static inline bool cached_dev_get(struct cached_dev *dc)
void bch_count_backing_io_errors(struct cached_dev *dc, struct bio *bio);
struct cached_dev *dc;
dc = container_of(d, struct cached_dev, disk);
void bch_data_verify(struct cached_dev *dc, struct bio *bio)
void bch_data_verify(struct cached_dev *dc, struct bio *bio);
static inline void bch_data_verify(struct cached_dev *dc, struct bio *bio) {}
struct cached_dev;
void bch_count_backing_io_errors(struct cached_dev *dc, struct bio *bio)
struct cached_dev *dc = bio->bi_private;
struct cached_dev *dc = container_of(d, struct cached_dev, disk);
struct cached_dev *this_dc)
struct cached_dev *dc;
dc = container_of(d, struct cached_dev, disk);
struct cached_dev *dc = container_of(d, struct cached_dev, disk);
struct cached_dev *dc = container_of(d, struct cached_dev, disk);
void bch_cached_dev_request_init(struct cached_dev *dc)
static unsigned int cache_mode(struct cached_dev *dc)
static bool verify(struct cached_dev *dc)
static struct hlist_head *iohash(struct cached_dev *dc, uint64_t k)
static bool check_should_bypass(struct cached_dev *dc, struct bio *bio)
struct cached_dev *dc;
dc = container_of(s->d, struct cached_dev, disk);
struct cached_dev *dc = container_of(s->d,
struct cached_dev, disk);
struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
static void cached_dev_read(struct cached_dev *dc, struct search *s)
struct cached_dev *dc = container_of(s->d, struct cached_dev, disk);
static void cached_dev_write(struct cached_dev *dc, struct search *s)
void bch_cached_dev_request_init(struct cached_dev *dc);
struct cached_dev *dc = container_of(d, struct cached_dev, disk);
struct cached_dev *dc = container_of(d, struct cached_dev, disk);
void bch_mark_sectors_bypassed(struct cache_set *c, struct cached_dev *dc,
struct cached_dev;
struct cached_dev *dc,
struct cached_dev *dc;
struct cached_dev *dc = arg;
int bch_cached_dev_run(struct cached_dev *dc)
static void cancel_writeback_rate_update_dwork(struct cached_dev *dc)
struct cached_dev *dc = container_of(w, struct cached_dev, detach);
void bch_cached_dev_detach(struct cached_dev *dc)
int bch_cached_dev_attach(struct cached_dev *dc, struct cache_set *c,
struct cached_dev *exist_dc, *t;
struct cached_dev *dc = container_of(kobj, struct cached_dev,
closure_type(dc, struct cached_dev, disk.cl);
closure_type(dc, struct cached_dev, disk.cl);
static int cached_dev_init(struct cached_dev *dc, unsigned int block_size)
struct cached_dev *dc)
bool bch_cached_dev_error(struct cached_dev *dc)
struct cached_dev *dc)
struct cached_dev *dc;
dc = container_of(d, struct cached_dev, disk);
struct cached_dev *dc, *t;
struct cached_dev *dc, *t;
return kzalloc_obj(struct cached_dev);
struct cached_dev *dc;
struct cached_dev *dc, *tdc;
struct cached_dev *dc, *tdc;
struct cached_dev *dc = bio->bi_private;
closure_type(dc, struct cached_dev, sb_write);
void bch_write_bdev_super(struct cached_dev *dc, struct closure *parent)
struct cached_dev *dc = container_of(kobj, struct cached_dev,
struct cached_dev *dc = container_of(kobj, struct cached_dev,
struct cached_dev *dc = container_of(kobj, struct cached_dev,
void bch_cached_dev_writeback_init(struct cached_dev *dc)
int bch_cached_dev_writeback_start(struct cached_dev *dc)
struct cached_dev *dc)
struct cached_dev *dc = container_of(to_delayed_work(work),
struct cached_dev,
static uint64_t __calc_target_rate(struct cached_dev *dc)
static unsigned int writeback_delay(struct cached_dev *dc,
struct cached_dev *dc;
struct cached_dev *dc = io->dc;
struct cached_dev *dc = io->dc;
static void read_dirty(struct cached_dev *dc)
static void __update_writeback_rate(struct cached_dev *dc)
struct cached_dev *dc = container_of(buf,
struct cached_dev,
static void refill_full_stripes(struct cached_dev *dc)
static bool refill_dirty(struct cached_dev *dc)
struct cached_dev *dc = arg;
static inline bool should_writeback(struct cached_dev *dc, struct bio *bio,
static inline void bch_writeback_queue(struct cached_dev *dc)
static inline void bch_writeback_add(struct cached_dev *dc)
void bch_cached_dev_writeback_init(struct cached_dev *dc);
int bch_cached_dev_writeback_start(struct cached_dev *dc);
static inline bool bcache_dev_stripe_dirty(struct cached_dev *dc,
dev = rcu_dereference(po->cached_dev);
rcu_assign_pointer(po->cached_dev, dev);
RCU_INIT_POINTER(po->cached_dev, NULL);
struct net_device __rcu *cached_dev;