Symbol: proxy_dev
drivers/char/tpm/tpm_vtpm_proxy.c
101
rc = copy_to_user(buf, proxy_dev->buffer, len);
drivers/char/tpm/tpm_vtpm_proxy.c
102
memset(proxy_dev->buffer, 0, len);
drivers/char/tpm/tpm_vtpm_proxy.c
103
proxy_dev->req_len = 0;
drivers/char/tpm/tpm_vtpm_proxy.c
106
proxy_dev->state |= STATE_WAIT_RESPONSE_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
108
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
130
struct proxy_dev *proxy_dev = filp->private_data;
drivers/char/tpm/tpm_vtpm_proxy.c
132
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
134
if (!(proxy_dev->state & STATE_OPENED_FLAG)) {
drivers/char/tpm/tpm_vtpm_proxy.c
135
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
139
if (count > sizeof(proxy_dev->buffer) ||
drivers/char/tpm/tpm_vtpm_proxy.c
140
!(proxy_dev->state & STATE_WAIT_RESPONSE_FLAG)) {
drivers/char/tpm/tpm_vtpm_proxy.c
141
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
145
proxy_dev->state &= ~STATE_WAIT_RESPONSE_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
147
proxy_dev->req_len = 0;
drivers/char/tpm/tpm_vtpm_proxy.c
149
if (copy_from_user(proxy_dev->buffer, buf, count)) {
drivers/char/tpm/tpm_vtpm_proxy.c
150
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
154
proxy_dev->resp_len = count;
drivers/char/tpm/tpm_vtpm_proxy.c
156
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
158
wake_up_interruptible(&proxy_dev->wq);
drivers/char/tpm/tpm_vtpm_proxy.c
173
struct proxy_dev *proxy_dev = filp->private_data;
drivers/char/tpm/tpm_vtpm_proxy.c
176
poll_wait(filp, &proxy_dev->wq, wait);
drivers/char/tpm/tpm_vtpm_proxy.c
180
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
182
if (proxy_dev->req_len)
drivers/char/tpm/tpm_vtpm_proxy.c
185
if (!(proxy_dev->state & STATE_OPENED_FLAG))
drivers/char/tpm/tpm_vtpm_proxy.c
188
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
202
struct proxy_dev *proxy_dev = filp->private_data;
drivers/char/tpm/tpm_vtpm_proxy.c
204
proxy_dev->state |= STATE_OPENED_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
213
static void vtpm_proxy_fops_undo_open(struct proxy_dev *proxy_dev)
drivers/char/tpm/tpm_vtpm_proxy.c
215
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
217
proxy_dev->state &= ~STATE_OPENED_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
219
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
222
wake_up_interruptible(&proxy_dev->wq);
drivers/char/tpm/tpm_vtpm_proxy.c
235
struct proxy_dev *proxy_dev = filp->private_data;
drivers/char/tpm/tpm_vtpm_proxy.c
239
vtpm_proxy_delete_device(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
268
struct proxy_dev *proxy_dev = dev_get_drvdata(&chip->dev);
drivers/char/tpm/tpm_vtpm_proxy.c
272
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
274
if (!(proxy_dev->state & STATE_OPENED_FLAG)) {
drivers/char/tpm/tpm_vtpm_proxy.c
275
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
279
len = proxy_dev->resp_len;
drivers/char/tpm/tpm_vtpm_proxy.c
288
memcpy(buf, proxy_dev->buffer, len);
drivers/char/tpm/tpm_vtpm_proxy.c
289
proxy_dev->resp_len = 0;
drivers/char/tpm/tpm_vtpm_proxy.c
292
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
333
struct proxy_dev *proxy_dev = dev_get_drvdata(&chip->dev);
drivers/char/tpm/tpm_vtpm_proxy.c
335
if (count > sizeof(proxy_dev->buffer)) {
drivers/char/tpm/tpm_vtpm_proxy.c
338
count, sizeof(proxy_dev->buffer));
drivers/char/tpm/tpm_vtpm_proxy.c
342
if (!(proxy_dev->state & STATE_DRIVER_COMMAND) &&
drivers/char/tpm/tpm_vtpm_proxy.c
346
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
348
if (!(proxy_dev->state & STATE_OPENED_FLAG)) {
drivers/char/tpm/tpm_vtpm_proxy.c
349
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
353
proxy_dev->resp_len = 0;
drivers/char/tpm/tpm_vtpm_proxy.c
355
proxy_dev->req_len = count;
drivers/char/tpm/tpm_vtpm_proxy.c
356
memcpy(proxy_dev->buffer, buf, count);
drivers/char/tpm/tpm_vtpm_proxy.c
358
proxy_dev->state &= ~STATE_WAIT_RESPONSE_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
360
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
362
wake_up_interruptible(&proxy_dev->wq);
drivers/char/tpm/tpm_vtpm_proxy.c
374
struct proxy_dev *proxy_dev = dev_get_drvdata(&chip->dev);
drivers/char/tpm/tpm_vtpm_proxy.c
376
if (proxy_dev->resp_len)
drivers/char/tpm/tpm_vtpm_proxy.c
384
struct proxy_dev *proxy_dev = dev_get_drvdata(&chip->dev);
drivers/char/tpm/tpm_vtpm_proxy.c
387
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
389
ret = !(proxy_dev->state & STATE_OPENED_FLAG);
drivers/char/tpm/tpm_vtpm_proxy.c
391
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
401
struct proxy_dev *proxy_dev = dev_get_drvdata(&chip->dev);
drivers/char/tpm/tpm_vtpm_proxy.c
413
proxy_dev->state |= STATE_DRIVER_COMMAND;
drivers/char/tpm/tpm_vtpm_proxy.c
417
proxy_dev->state &= ~STATE_DRIVER_COMMAND;
drivers/char/tpm/tpm_vtpm_proxy.c
454
struct proxy_dev *proxy_dev = container_of(work, struct proxy_dev,
drivers/char/tpm/tpm_vtpm_proxy.c
458
rc = tpm_chip_register(proxy_dev->chip);
drivers/char/tpm/tpm_vtpm_proxy.c
460
vtpm_proxy_fops_undo_open(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
462
proxy_dev->state |= STATE_REGISTERED_FLAG;
drivers/char/tpm/tpm_vtpm_proxy.c
471
static void vtpm_proxy_work_stop(struct proxy_dev *proxy_dev)
drivers/char/tpm/tpm_vtpm_proxy.c
473
vtpm_proxy_fops_undo_open(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
474
flush_work(&proxy_dev->work);
drivers/char/tpm/tpm_vtpm_proxy.c
480
static inline void vtpm_proxy_work_start(struct proxy_dev *proxy_dev)
drivers/char/tpm/tpm_vtpm_proxy.c
482
queue_work(workqueue, &proxy_dev->work);
drivers/char/tpm/tpm_vtpm_proxy.c
488
static struct proxy_dev *vtpm_proxy_create_proxy_dev(void)
drivers/char/tpm/tpm_vtpm_proxy.c
490
struct proxy_dev *proxy_dev;
drivers/char/tpm/tpm_vtpm_proxy.c
494
proxy_dev = kzalloc_obj(*proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
495
if (proxy_dev == NULL)
drivers/char/tpm/tpm_vtpm_proxy.c
498
init_waitqueue_head(&proxy_dev->wq);
drivers/char/tpm/tpm_vtpm_proxy.c
499
mutex_init(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
500
INIT_WORK(&proxy_dev->work, vtpm_proxy_work);
drivers/char/tpm/tpm_vtpm_proxy.c
507
dev_set_drvdata(&chip->dev, proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
509
proxy_dev->chip = chip;
drivers/char/tpm/tpm_vtpm_proxy.c
511
return proxy_dev;
drivers/char/tpm/tpm_vtpm_proxy.c
514
kfree(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
522
static inline void vtpm_proxy_delete_proxy_dev(struct proxy_dev *proxy_dev)
drivers/char/tpm/tpm_vtpm_proxy.c
524
put_device(&proxy_dev->chip->dev); /* frees chip */
drivers/char/tpm/tpm_vtpm_proxy.c
525
kfree(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
537
struct proxy_dev *proxy_dev;
drivers/char/tpm/tpm_vtpm_proxy.c
544
proxy_dev = vtpm_proxy_create_proxy_dev();
drivers/char/tpm/tpm_vtpm_proxy.c
545
if (IS_ERR(proxy_dev))
drivers/char/tpm/tpm_vtpm_proxy.c
546
return ERR_CAST(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
548
proxy_dev->flags = vtpm_new_dev->flags;
drivers/char/tpm/tpm_vtpm_proxy.c
55
static void vtpm_proxy_delete_device(struct proxy_dev *proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
557
file = anon_inode_getfile("[vtpms]", &vtpm_proxy_fops, proxy_dev,
drivers/char/tpm/tpm_vtpm_proxy.c
568
if (proxy_dev->flags & VTPM_PROXY_FLAG_TPM2)
drivers/char/tpm/tpm_vtpm_proxy.c
569
proxy_dev->chip->flags |= TPM_CHIP_FLAG_TPM2;
drivers/char/tpm/tpm_vtpm_proxy.c
571
vtpm_proxy_work_start(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
574
vtpm_new_dev->major = MAJOR(proxy_dev->chip->dev.devt);
drivers/char/tpm/tpm_vtpm_proxy.c
575
vtpm_new_dev->minor = MINOR(proxy_dev->chip->dev.devt);
drivers/char/tpm/tpm_vtpm_proxy.c
576
vtpm_new_dev->tpm_num = proxy_dev->chip->dev_num;
drivers/char/tpm/tpm_vtpm_proxy.c
584
vtpm_proxy_delete_proxy_dev(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
592
static void vtpm_proxy_delete_device(struct proxy_dev *proxy_dev)
drivers/char/tpm/tpm_vtpm_proxy.c
594
vtpm_proxy_work_stop(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
601
vtpm_proxy_fops_undo_open(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
603
if (proxy_dev->state & STATE_REGISTERED_FLAG)
drivers/char/tpm/tpm_vtpm_proxy.c
604
tpm_chip_unregister(proxy_dev->chip);
drivers/char/tpm/tpm_vtpm_proxy.c
606
vtpm_proxy_delete_proxy_dev(proxy_dev);
drivers/char/tpm/tpm_vtpm_proxy.c
75
struct proxy_dev *proxy_dev = filp->private_data;
drivers/char/tpm/tpm_vtpm_proxy.c
79
sig = wait_event_interruptible(proxy_dev->wq,
drivers/char/tpm/tpm_vtpm_proxy.c
80
proxy_dev->req_len != 0 ||
drivers/char/tpm/tpm_vtpm_proxy.c
81
!(proxy_dev->state & STATE_OPENED_FLAG));
drivers/char/tpm/tpm_vtpm_proxy.c
85
mutex_lock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
87
if (!(proxy_dev->state & STATE_OPENED_FLAG)) {
drivers/char/tpm/tpm_vtpm_proxy.c
88
mutex_unlock(&proxy_dev->buf_lock);
drivers/char/tpm/tpm_vtpm_proxy.c
92
len = proxy_dev->req_len;
drivers/char/tpm/tpm_vtpm_proxy.c
94
if (count < len || len > sizeof(proxy_dev->buffer)) {
drivers/char/tpm/tpm_vtpm_proxy.c
95
mutex_unlock(&proxy_dev->buf_lock);