nfc_rawsock
#define nfc_rawsock(sk) ((struct nfc_rawsock *) sk)
((struct sock *) container_of(_tx_work, struct nfc_rawsock, tx_work))
nfc_rawsock(sk)->dev = dev;
nfc_rawsock(sk)->target_idx = addr->target_idx;
schedule_work(&nfc_rawsock(sk)->tx_work);
nfc_rawsock(sk)->tx_work_scheduled = false;
struct nfc_dev *dev = nfc_rawsock(sk)->dev;
u32 target_idx = nfc_rawsock(sk)->target_idx;
struct nfc_dev *dev = nfc_rawsock(sk)->dev;
if (!nfc_rawsock(sk)->tx_work_scheduled) {
schedule_work(&nfc_rawsock(sk)->tx_work);
nfc_rawsock(sk)->tx_work_scheduled = true;
nfc_deactivate_target(nfc_rawsock(sk)->dev,
nfc_rawsock(sk)->target_idx,
nfc_put_device(nfc_rawsock(sk)->dev);
INIT_WORK(&nfc_rawsock(sk)->tx_work, rawsock_tx_work);
nfc_rawsock(sk)->tx_work_scheduled = false;
.obj_size = sizeof(struct nfc_rawsock),
nfc_rawsock(sk)->tx_work_scheduled = false;
cancel_work_sync(&nfc_rawsock(sk)->tx_work);