tracer             37 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_query_mtrc_caps(struct mlx5_fw_tracer *tracer)
tracer             39 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 *string_db_base_address_out = tracer->str_db.base_address_out;
tracer             40 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 *string_db_size_out = tracer->str_db.size_out;
tracer             41 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer             60 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->trc_ver = MLX5_GET(mtrc_cap, out, trc_ver);
tracer             61 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->str_db.first_string_trace =
tracer             63 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->str_db.num_string_trace =
tracer             65 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->str_db.num_string_db = MLX5_GET(mtrc_cap, out, num_string_db);
tracer             66 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner);
tracer             68 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	for (i = 0; i < tracer->str_db.num_string_db; i++) {
tracer             80 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_set_mtrc_caps_trace_owner(struct mlx5_fw_tracer *tracer,
tracer             84 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer             93 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_ownership_acquire(struct mlx5_fw_tracer *tracer)
tracer             95 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer             99 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out),
tracer            107 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->owner = !!MLX5_GET(mtrc_cap, out, trace_owner);
tracer            109 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->owner)
tracer            115 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_ownership_release(struct mlx5_fw_tracer *tracer)
tracer            119 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_set_mtrc_caps_trace_owner(tracer, out, sizeof(out),
tracer            121 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->owner = false;
tracer            124 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_create_log_buf(struct mlx5_fw_tracer *tracer)
tracer            126 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            133 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->buff.size = TRACE_BUFFER_SIZE_BYTE;
tracer            137 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 					get_order(tracer->buff.size));
tracer            143 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->buff.log_buf = buff;
tracer            145 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	dma = dma_map_single(ddev, buff, tracer->buff.size, DMA_FROM_DEVICE);
tracer            152 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->buff.dma = dma;
tracer            157 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size));
tracer            162 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_destroy_log_buf(struct mlx5_fw_tracer *tracer)
tracer            164 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            167 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->buff.log_buf)
tracer            170 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	dma_unmap_single(ddev, tracer->buff.dma, tracer->buff.size, DMA_FROM_DEVICE);
tracer            171 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	free_pages((unsigned long)tracer->buff.log_buf, get_order(tracer->buff.size));
tracer            174 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_create_mkey(struct mlx5_fw_tracer *tracer)
tracer            176 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            193 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		mtt[i] = cpu_to_be64(tracer->buff.dma + i * PAGE_SIZE);
tracer            199 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	MLX5_SET(mkc, mkc, pd, tracer->buff.pdn);
tracer            205 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	MLX5_SET64(mkc, mkc, start_addr, tracer->buff.dma);
tracer            206 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	MLX5_SET64(mkc, mkc, len, tracer->buff.size);
tracer            207 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_core_create_mkey(dev, &tracer->buff.mkey, in, inlen);
tracer            216 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_free_strings_db(struct mlx5_fw_tracer *tracer)
tracer            218 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 num_string_db = tracer->str_db.num_string_db;
tracer            222 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		kfree(tracer->str_db.buffer[i]);
tracer            223 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->str_db.buffer[i] = NULL;
tracer            227 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer)
tracer            229 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 *string_db_size_out = tracer->str_db.size_out;
tracer            230 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 num_string_db = tracer->str_db.num_string_db;
tracer            234 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->str_db.buffer[i] = kzalloc(string_db_size_out[i], GFP_KERNEL);
tracer            235 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (!tracer->str_db.buffer[i])
tracer            242 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_free_strings_db(tracer);
tracer            247 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_init_saved_traces_array(struct mlx5_fw_tracer *tracer)
tracer            249 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->st_arr.saved_traces_index = 0;
tracer            250 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_init(&tracer->st_arr.lock);
tracer            254 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c mlx5_fw_tracer_clean_saved_traces_array(struct mlx5_fw_tracer *tracer)
tracer            256 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_destroy(&tracer->st_arr.lock);
tracer            261 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer = container_of(work, struct mlx5_fw_tracer,
tracer            263 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	u32 num_of_reads, num_string_db = tracer->str_db.num_string_db;
tracer            264 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            281 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		num_of_reads = tracer->str_db.size_out[i] /
tracer            283 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		leftovers = (tracer->str_db.size_out[i] %
tracer            301 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			memcpy(tracer->str_db.buffer[i] + offset, out_value,
tracer            322 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			memcpy(tracer->str_db.buffer[i] + offset, out_value,
tracer            328 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->str_db.loaded = true;
tracer            359 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_message_insert(struct mlx5_fw_tracer *tracer,
tracer            363 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
tracer            375 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer *tracer,
tracer            384 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	for (i = 0; i < tracer->str_db.num_string_db; i++) {
tracer            385 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (str_ptr > tracer->str_db.base_address_out[i] &&
tracer            386 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		    str_ptr < tracer->str_db.base_address_out[i] +
tracer            387 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		    tracer->str_db.size_out[i]) {
tracer            388 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			offset = str_ptr - tracer->str_db.base_address_out[i];
tracer            390 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			cur_string = mlx5_tracer_message_insert(tracer, tracer_event);
tracer            393 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			cur_string->string = (char *)(tracer->str_db.buffer[i] +
tracer            444 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static struct tracer_string_format *mlx5_tracer_message_get(struct mlx5_fw_tracer *tracer,
tracer            448 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		&tracer->hash[mlx5_tracer_message_hash(tracer_event->string_event.tmsn)];
tracer            453 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void poll_trace(struct mlx5_fw_tracer *tracer,
tracer            465 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (tracer->trc_ver == 0)
tracer            483 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (tracer_event->event_id >= tracer->str_db.first_string_trace ||
tracer            484 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		    tracer_event->event_id <= tracer->str_db.first_string_trace +
tracer            485 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 					      tracer->str_db.num_string_trace) {
tracer            502 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static u64 get_block_timestamp(struct mlx5_fw_tracer *tracer, u64 *ts_event)
tracer            510 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		poll_trace(tracer, &tracer_event, ts_event);
tracer            517 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_clean_print_hash(struct mlx5_fw_tracer *tracer)
tracer            524 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		hlist_for_each_entry_safe(str_frmt, n, &tracer->hash[i], hlist)
tracer            529 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_clean_ready_list(struct mlx5_fw_tracer *tracer)
tracer            533 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list,
tracer            538 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_fw_tracer_save_trace(struct mlx5_fw_tracer *tracer,
tracer            544 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_lock(&tracer->st_arr.lock);
tracer            545 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	trace_data = &tracer->st_arr.straces[tracer->st_arr.saved_traces_index];
tracer            551 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->st_arr.saved_traces_index =
tracer            552 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		(tracer->st_arr.saved_traces_index + 1) & (SAVED_TRACES_NUM - 1);
tracer            553 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_unlock(&tracer->st_arr.lock);
tracer            572 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	trace_mlx5_fw(dev->tracer, trace_timestamp, str_frmt->lost,
tracer            575 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_save_trace(dev->tracer, trace_timestamp,
tracer            582 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_tracer_handle_string_trace(struct mlx5_fw_tracer *tracer,
tracer            588 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		cur_string = mlx5_tracer_get_string(tracer, tracer_event);
tracer            599 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			list_add_tail(&cur_string->list, &tracer->ready_strings_list);
tracer            601 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		cur_string = mlx5_tracer_message_get(tracer, tracer_event);
tracer            611 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			list_add_tail(&cur_string->list, &tracer->ready_strings_list);
tracer            618 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			list_add_tail(&cur_string->list, &tracer->ready_strings_list);
tracer            624 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static void mlx5_tracer_handle_timestamp_trace(struct mlx5_fw_tracer *tracer,
tracer            630 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            633 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	list_for_each_entry_safe(str_frmt, tmp_str, &tracer->ready_strings_list, list) {
tracer            646 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_tracer_handle_trace(struct mlx5_fw_tracer *tracer,
tracer            650 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		mlx5_tracer_handle_string_trace(tracer, tracer_event);
tracer            653 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			mlx5_tracer_handle_timestamp_trace(tracer, tracer_event);
tracer            663 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer =
tracer            668 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            672 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dbg(dev, "FWTracer: Handle Trace event, owner=(%d)\n", tracer->owner);
tracer            673 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->owner)
tracer            676 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	block_count = tracer->buff.size / TRACER_BLOCK_SIZE_BYTE;
tracer            677 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
tracer            680 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset,
tracer            684 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		get_block_timestamp(tracer, &tmp_trace_block[TRACES_PER_BLOCK - 1]);
tracer            686 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	while (block_timestamp > tracer->last_timestamp) {
tracer            688 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (!tracer->last_timestamp) {
tracer            696 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 				(tracer->buff.consumer_index - 1) & (block_count - 1);
tracer            699 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			ts_event = tracer->buff.log_buf + prev_start_offset +
tracer            701 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			last_block_timestamp = get_block_timestamp(tracer, ts_event);
tracer            707 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			if (tracer->last_timestamp != last_block_timestamp) {
tracer            709 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 				tracer->last_timestamp = block_timestamp;
tracer            710 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 				tracer->buff.consumer_index =
tracer            711 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 					(tracer->buff.consumer_index + 1) & (block_count - 1);
tracer            718 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			poll_trace(tracer, &tracer_event, &tmp_trace_block[i]);
tracer            719 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			mlx5_tracer_handle_trace(tracer, &tracer_event);
tracer            722 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->buff.consumer_index =
tracer            723 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			(tracer->buff.consumer_index + 1) & (block_count - 1);
tracer            725 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->last_timestamp = block_timestamp;
tracer            726 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		start_offset = tracer->buff.consumer_index * TRACER_BLOCK_SIZE_BYTE;
tracer            727 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		memcpy(tmp_trace_block, tracer->buff.log_buf + start_offset,
tracer            729 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		block_timestamp = get_block_timestamp(tracer,
tracer            736 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_set_mtrc_conf(struct mlx5_fw_tracer *tracer)
tracer            738 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            746 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	MLX5_SET(mtrc_conf, in, trace_mkey, tracer->buff.mkey.key);
tracer            756 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_set_mtrc_ctrl(struct mlx5_fw_tracer *tracer, u8 status, u8 arm)
tracer            758 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            771 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->last_timestamp = 0;
tracer            776 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c static int mlx5_fw_tracer_start(struct mlx5_fw_tracer *tracer)
tracer            778 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer            781 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_ownership_acquire(tracer);
tracer            788 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_set_mtrc_conf(tracer);
tracer            795 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_set_mtrc_ctrl(tracer, 1, 1);
tracer            805 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_ownership_release(tracer);
tracer            811 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer =
tracer            814 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dbg(tracer->dev, "FWTracer: ownership changed, current=(%d)\n", tracer->owner);
tracer            815 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (tracer->owner) {
tracer            816 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->owner = false;
tracer            817 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		tracer->buff.consumer_index = 0;
tracer            821 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_start(tracer);
tracer            839 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer = dev->tracer;
tracer            843 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!MLX5_CAP_DEBUG(dev, core_dump_general) || !tracer)
tracer            845 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->owner)
tracer            853 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	queue_work(tracer->work_queue, &tracer->handle_traces_work);
tracer            854 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	flush_workqueue(tracer->work_queue);
tracer            890 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer,
tracer            893 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_trace_data *straces = tracer->st_arr.straces;
tracer            901 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_lock(&tracer->st_arr.lock);
tracer            902 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	saved_traces_index = tracer->st_arr.saved_traces_index;
tracer            923 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mutex_unlock(&tracer->st_arr.lock);
tracer            930 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer = NULL;
tracer            938 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer = kvzalloc(sizeof(*tracer), GFP_KERNEL);
tracer            939 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer)
tracer            942 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->work_queue = create_singlethread_workqueue("mlx5_fw_tracer");
tracer            943 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->work_queue) {
tracer            948 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->dev = dev;
tracer            950 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	INIT_LIST_HEAD(&tracer->ready_strings_list);
tracer            951 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	INIT_WORK(&tracer->ownership_change_work, mlx5_fw_tracer_ownership_change);
tracer            952 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	INIT_WORK(&tracer->read_fw_strings_work, mlx5_tracer_read_strings_db);
tracer            953 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	INIT_WORK(&tracer->handle_traces_work, mlx5_fw_tracer_handle_traces);
tracer            956 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_query_mtrc_caps(tracer);
tracer            962 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_create_log_buf(tracer);
tracer            968 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_allocate_strings_db(tracer);
tracer            974 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_init_saved_traces_array(tracer);
tracer            977 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	return tracer;
tracer            980 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_destroy_log_buf(tracer);
tracer            982 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	tracer->dev = NULL;
tracer            983 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	destroy_workqueue(tracer->work_queue);
tracer            985 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	kvfree(tracer);
tracer            992 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer)
tracer            997 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (IS_ERR_OR_NULL(tracer))
tracer           1000 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	dev = tracer->dev;
tracer           1002 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (!tracer->str_db.loaded)
tracer           1003 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		queue_work(tracer->work_queue, &tracer->read_fw_strings_work);
tracer           1005 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_core_alloc_pd(dev, &tracer->buff.pdn);
tracer           1011 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	err = mlx5_fw_tracer_create_mkey(tracer);
tracer           1017 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	MLX5_NB_INIT(&tracer->nb, fw_tracer_event, DEVICE_TRACER);
tracer           1018 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_eq_notifier_register(dev, &tracer->nb);
tracer           1020 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_start(tracer);
tracer           1025 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dealloc_pd(dev, tracer->buff.pdn);
tracer           1030 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer)
tracer           1032 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (IS_ERR_OR_NULL(tracer))
tracer           1035 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dbg(tracer->dev, "FWTracer: Cleanup, is owner ? (%d)\n",
tracer           1036 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		      tracer->owner);
tracer           1037 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_eq_notifier_unregister(tracer->dev, &tracer->nb);
tracer           1038 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	cancel_work_sync(&tracer->ownership_change_work);
tracer           1039 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	cancel_work_sync(&tracer->handle_traces_work);
tracer           1041 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (tracer->owner)
tracer           1042 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		mlx5_fw_tracer_ownership_release(tracer);
tracer           1044 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_destroy_mkey(tracer->dev, &tracer->buff.mkey);
tracer           1045 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dealloc_pd(tracer->dev, tracer->buff.pdn);
tracer           1049 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer)
tracer           1051 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	if (IS_ERR_OR_NULL(tracer))
tracer           1054 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_core_dbg(tracer->dev, "FWTracer: Destroy\n");
tracer           1056 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	cancel_work_sync(&tracer->read_fw_strings_work);
tracer           1057 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_clean_ready_list(tracer);
tracer           1058 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_clean_print_hash(tracer);
tracer           1059 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_clean_saved_traces_array(tracer);
tracer           1060 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_free_strings_db(tracer);
tracer           1061 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	mlx5_fw_tracer_destroy_log_buf(tracer);
tracer           1062 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	flush_workqueue(tracer->work_queue);
tracer           1063 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	destroy_workqueue(tracer->work_queue);
tracer           1064 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	kvfree(tracer);
tracer           1069 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_fw_tracer *tracer = mlx5_nb_cof(nb, struct mlx5_fw_tracer, nb);
tracer           1070 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 	struct mlx5_core_dev *dev = tracer->dev;
tracer           1076 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			queue_work(tracer->work_queue, &tracer->ownership_change_work);
tracer           1079 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 		if (likely(tracer->str_db.loaded))
tracer           1080 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c 			queue_work(tracer->work_queue, &tracer->handle_traces_work);
tracer            188 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h int mlx5_fw_tracer_init(struct mlx5_fw_tracer *tracer);
tracer            189 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h void mlx5_fw_tracer_cleanup(struct mlx5_fw_tracer *tracer);
tracer            190 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h void mlx5_fw_tracer_destroy(struct mlx5_fw_tracer *tracer);
tracer            192 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.h int mlx5_fw_tracer_get_saved_traces_objects(struct mlx5_fw_tracer *tracer,
tracer             44 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h 	TP_PROTO(const struct mlx5_fw_tracer *tracer, u64 trace_timestamp,
tracer             47 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h 	TP_ARGS(tracer, trace_timestamp, lost, event_id, msg),
tracer             50 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h 		__string(dev_name, dev_name(tracer->dev->device))
tracer             59 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer_tracepoint.h 			     dev_name(tracer->dev->device));
tracer            522 drivers/net/ethernet/mellanox/mlx5/core/health.c 	return mlx5_fw_tracer_get_saved_traces_objects(dev->tracer, fmsg);
tracer            888 drivers/net/ethernet/mellanox/mlx5/core/main.c 	dev->tracer = mlx5_fw_tracer_create(dev);
tracer            921 drivers/net/ethernet/mellanox/mlx5/core/main.c 	mlx5_fw_tracer_destroy(dev->tracer);
tracer           1083 drivers/net/ethernet/mellanox/mlx5/core/main.c 	err = mlx5_fw_tracer_init(dev->tracer);
tracer           1147 drivers/net/ethernet/mellanox/mlx5/core/main.c 	mlx5_fw_tracer_cleanup(dev->tracer);
tracer           1168 drivers/net/ethernet/mellanox/mlx5/core/main.c 	mlx5_fw_tracer_cleanup(dev->tracer);
tracer            158 fs/proc/array.c 	struct task_struct *tracer;
tracer            167 fs/proc/array.c 	tracer = ptrace_parent(p);
tracer            168 fs/proc/array.c 	if (tracer)
tracer            169 fs/proc/array.c 		tpid = task_pid_nr_ns(tracer, ns);
tracer            719 include/linux/mlx5/driver.h 	struct mlx5_fw_tracer   *tracer;
tracer             68 include/linux/ptrace.h extern void exit_ptrace(struct task_struct *tracer, struct list_head *dead);
tracer             15 include/linux/trace_events.h struct tracer;
tracer             76 include/linux/trace_events.h 	struct tracer		*trace;
tracer            524 kernel/ptrace.c static bool __ptrace_detach(struct task_struct *tracer, struct task_struct *p)
tracer            536 kernel/ptrace.c 		if (!same_thread_group(p->real_parent, tracer))
tracer            538 kernel/ptrace.c 		else if (ignoring_children(tracer->sighand)) {
tracer            539 kernel/ptrace.c 			__wake_up_parent(p, tracer);
tracer            580 kernel/ptrace.c void exit_ptrace(struct task_struct *tracer, struct list_head *dead)
tracer            584 kernel/ptrace.c 	list_for_each_entry_safe(p, n, &tracer->ptraced, ptrace_entry) {
tracer            588 kernel/ptrace.c 		if (__ptrace_detach(tracer, p))
tracer           1588 kernel/trace/blktrace.c static struct tracer blk_tracer __read_mostly = {
tracer            645 kernel/trace/trace.c static struct tracer		*trace_types __read_mostly;
tracer            921 kernel/trace/trace.c 	struct tracer *tracer = tr->current_trace;
tracer            938 kernel/trace/trace.c 	if (tracer->use_max_tr) {
tracer           1646 kernel/trace/trace.c 	struct tracer			*type;
tracer           1651 kernel/trace/trace.c static int save_selftest(struct tracer *type)
tracer           1664 kernel/trace/trace.c static int run_tracer_selftest(struct tracer *type)
tracer           1667 kernel/trace/trace.c 	struct tracer *saved_tracer = tr->current_trace;
tracer           1734 kernel/trace/trace.c 	struct tracer *t, **last;
tracer           1778 kernel/trace/trace.c static inline int run_tracer_selftest(struct tracer *type)
tracer           1784 kernel/trace/trace.c static void add_tracer_options(struct trace_array *tr, struct tracer *t);
tracer           1794 kernel/trace/trace.c int __init register_tracer(struct tracer *type)
tracer           1796 kernel/trace/trace.c 	struct tracer *t;
tracer           3640 kernel/trace/trace.c 	struct tracer *type = iter->trace;
tracer           4306 kernel/trace/trace.c trace_ok_for_array(struct tracer *t, struct trace_array *tr)
tracer           4312 kernel/trace/trace.c static struct tracer *
tracer           4313 kernel/trace/trace.c get_tracer_for_array(struct trace_array *tr, struct tracer *t)
tracer           4325 kernel/trace/trace.c 	struct tracer *t = v;
tracer           4338 kernel/trace/trace.c 	struct tracer *t;
tracer           4357 kernel/trace/trace.c 	struct tracer *t = v;
tracer           4558 kernel/trace/trace.c 	struct tracer *trace = tracer_flags->trace;
tracer           4575 kernel/trace/trace.c 	struct tracer *trace = tr->current_trace;
tracer           4591 kernel/trace/trace.c int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
tracer           4593 kernel/trace/trace.c 	if (tracer->enabled && (mask & TRACE_ITER_OVERWRITE) && !set)
tracer           5448 kernel/trace/trace.c int tracer_init(struct tracer *t, struct trace_array *tr)
tracer           5608 kernel/trace/trace.c create_trace_option_files(struct trace_array *tr, struct tracer *tracer);
tracer           5627 kernel/trace/trace.c static void add_tracer_options(struct trace_array *tr, struct tracer *t)
tracer           5638 kernel/trace/trace.c 	struct tracer *t;
tracer           8068 kernel/trace/trace.c create_trace_option_files(struct trace_array *tr, struct tracer *tracer)
tracer           8077 kernel/trace/trace.c 	if (!tracer)
tracer           8080 kernel/trace/trace.c 	flags = tracer->flags;
tracer           8089 kernel/trace/trace.c 	if (!trace_ok_for_array(tracer, tr))
tracer           8094 kernel/trace/trace.c 		if (WARN_ON_ONCE(tr->topts[i].tracer->flags == tracer->flags))
tracer           8115 kernel/trace/trace.c 	tr->topts[tr->nr_topts].tracer = tracer;
tracer           8370 kernel/trace/trace.c 	struct tracer *t;
tracer            173 kernel/trace/trace.h struct tracer;
tracer            187 kernel/trace/trace.h 	struct tracer			*tracer;
tracer            296 kernel/trace/trace.h 	struct tracer		*current_trace;
tracer            432 kernel/trace/trace.h 	struct tracer		*trace;
tracer            487 kernel/trace/trace.h 	int			(*selftest)(struct tracer *trace,
tracer            498 kernel/trace/trace.h 	struct tracer		*next;
tracer            679 kernel/trace/trace.h int tracer_init(struct tracer *t, struct trace_array *tr);
tracer            749 kernel/trace/trace.h int register_tracer(struct tracer *type);
tracer            820 kernel/trace/trace.h extern int trace_selftest_startup_function(struct tracer *trace,
tracer            822 kernel/trace/trace.h extern int trace_selftest_startup_function_graph(struct tracer *trace,
tracer            824 kernel/trace/trace.h extern int trace_selftest_startup_irqsoff(struct tracer *trace,
tracer            826 kernel/trace/trace.h extern int trace_selftest_startup_preemptoff(struct tracer *trace,
tracer            828 kernel/trace/trace.h extern int trace_selftest_startup_preemptirqsoff(struct tracer *trace,
tracer            830 kernel/trace/trace.h extern int trace_selftest_startup_wakeup(struct tracer *trace,
tracer            832 kernel/trace/trace.h extern int trace_selftest_startup_nop(struct tracer *trace,
tracer            834 kernel/trace/trace.h extern int trace_selftest_startup_branch(struct tracer *trace,
tracer           1308 kernel/trace/trace.h extern struct tracer nop_trace;
tracer           1894 kernel/trace/trace.h int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
tracer             24 kernel/trace/trace_branch.c static struct tracer branch_trace;
tracer            173 kernel/trace/trace_branch.c static struct tracer branch_trace __read_mostly =
tracer            233 kernel/trace/trace_functions.c static struct tracer function_trace;
tracer            266 kernel/trace/trace_functions.c static struct tracer function_trace __tracer_data =
tracer           1281 kernel/trace/trace_functions_graph.c static struct tracer graph_trace __tracer_data = {
tracer            612 kernel/trace/trace_hwlat.c static struct tracer hwlat_tracer __read_mostly =
tracer            519 kernel/trace/trace_irqsoff.c 	struct tracer *tracer = tr->current_trace;
tracer            529 kernel/trace/trace_irqsoff.c 	return trace_keep_overwrite(tracer, mask, set);
tracer            640 kernel/trace/trace_irqsoff.c static struct tracer irqsoff_tracer __read_mostly =
tracer            690 kernel/trace/trace_irqsoff.c static struct tracer preemptoff_tracer __read_mostly =
tracer            725 kernel/trace/trace_irqsoff.c static struct tracer preemptirqsoff_tracer __read_mostly =
tracer            276 kernel/trace/trace_mmiotrace.c static struct tracer mmio_tracer __read_mostly =
tracer             88 kernel/trace/trace_nop.c struct tracer nop_trace __read_mostly =
tracer            316 kernel/trace/trace_sched_wakeup.c 	struct tracer *tracer = tr->current_trace;
tracer            326 kernel/trace/trace_sched_wakeup.c 	return trace_keep_overwrite(tracer, mask, set);
tracer            744 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_tracer __read_mostly =
tracer            764 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_rt_tracer __read_mostly =
tracer            784 kernel/trace/trace_sched_wakeup.c static struct tracer wakeup_dl_tracer __read_mostly =
tracer             97 kernel/trace/trace_selftest.c static inline void warn_failed_init_tracer(struct tracer *trace, int init_ret)
tracer            325 kernel/trace/trace_selftest.c static int trace_selftest_startup_dynamic_tracing(struct tracer *trace,
tracer            653 kernel/trace/trace_selftest.c trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr)
tracer            754 kernel/trace/trace_selftest.c trace_selftest_startup_function_graph(struct tracer *trace,
tracer            821 kernel/trace/trace_selftest.c trace_selftest_startup_irqsoff(struct tracer *trace, struct trace_array *tr)
tracer            870 kernel/trace/trace_selftest.c trace_selftest_startup_preemptoff(struct tracer *trace, struct trace_array *tr)
tracer            932 kernel/trace/trace_selftest.c trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *tr)
tracer           1033 kernel/trace/trace_selftest.c trace_selftest_startup_nop(struct tracer *trace, struct trace_array *tr)
tracer           1085 kernel/trace/trace_selftest.c trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr)
tracer           1163 kernel/trace/trace_selftest.c trace_selftest_startup_branch(struct tracer *trace, struct trace_array *tr)
tracer            204 samples/seccomp/user-trap.c 	pid_t worker = 0 , tracer = 0;
tracer            282 samples/seccomp/user-trap.c 	tracer = fork();
tracer            283 samples/seccomp/user-trap.c 	if (tracer < 0) {
tracer            288 samples/seccomp/user-trap.c 	if (tracer == 0) {
tracer            366 samples/seccomp/user-trap.c 	if (tracer > 0)
tracer            367 samples/seccomp/user-trap.c 		kill(tracer, SIGKILL);
tracer             62 security/apparmor/domain.c 	struct task_struct *tracer;
tracer             67 security/apparmor/domain.c 	tracer = ptrace_parent(current);
tracer             68 security/apparmor/domain.c 	if (tracer)
tracer             70 security/apparmor/domain.c 		tracerl = aa_get_task_label(tracer);
tracer             73 security/apparmor/domain.c 	if (!tracer || unconfined(tracerl))
tracer             32 security/apparmor/include/ipc.h int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee,
tracer             79 security/apparmor/ipc.c 			       struct aa_label *tracer, u32 request,
tracer             82 security/apparmor/ipc.c 	if (profile_unconfined(tracee) || unconfined(tracer) ||
tracer             86 security/apparmor/ipc.c 	return profile_ptrace_perm(tracee, tracer, request, sa);
tracer             89 security/apparmor/ipc.c static int profile_tracer_perm(struct aa_profile *tracer,
tracer             93 security/apparmor/ipc.c 	if (profile_unconfined(tracer))
tracer             96 security/apparmor/ipc.c 	if (PROFILE_MEDIATES(tracer, AA_CLASS_PTRACE))
tracer             97 security/apparmor/ipc.c 		return profile_ptrace_perm(tracer, tracee, request, sa);
tracer            100 security/apparmor/ipc.c 	if (&tracer->label == tracee)
tracer            103 security/apparmor/ipc.c 	aad(sa)->label = &tracer->label;
tracer            106 security/apparmor/ipc.c 	aad(sa)->error = aa_capable(&tracer->label, CAP_SYS_PTRACE,
tracer            109 security/apparmor/ipc.c 	return aa_audit(AUDIT_APPARMOR_AUTO, tracer, sa, audit_ptrace_cb);
tracer            120 security/apparmor/ipc.c int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee,
tracer            127 security/apparmor/ipc.c 	return xcheck_labels(tracer, tracee, profile,
tracer            129 security/apparmor/ipc.c 			profile_tracee_perm(profile, tracer, xrequest, &sa));
tracer            108 security/apparmor/lsm.c 	struct aa_label *tracer, *tracee;
tracer            111 security/apparmor/lsm.c 	tracer = __begin_current_label_crit_section();
tracer            113 security/apparmor/lsm.c 	error = aa_may_ptrace(tracer, tracee,
tracer            117 security/apparmor/lsm.c 	__end_current_label_crit_section(tracer);
tracer            124 security/apparmor/lsm.c 	struct aa_label *tracer, *tracee;
tracer            128 security/apparmor/lsm.c 	tracer = aa_get_task_label(parent);
tracer            129 security/apparmor/lsm.c 	error = aa_may_ptrace(tracer, tracee, AA_PTRACE_TRACE);
tracer            130 security/apparmor/lsm.c 	aa_put_label(tracer);
tracer           2264 security/selinux/hooks.c 	struct task_struct *tracer;
tracer           2267 security/selinux/hooks.c 	tracer = ptrace_parent(current);
tracer           2268 security/selinux/hooks.c 	if (tracer)
tracer           2269 security/selinux/hooks.c 		sid = task_sid(tracer);
tracer            417 security/smack/smack_lsm.c static int smk_ptrace_rule_check(struct task_struct *tracer,
tracer            429 security/smack/smack_lsm.c 		smk_ad_setfield_u_tsk(&ad, tracer);
tracer            434 security/smack/smack_lsm.c 	tracercred = __task_cred(tracer);
tracer            924 security/smack/smack_lsm.c 		struct task_struct *tracer;
tracer            928 security/smack/smack_lsm.c 		tracer = ptrace_parent(current);
tracer            929 security/smack/smack_lsm.c 		if (likely(tracer != NULL))
tracer            930 security/smack/smack_lsm.c 			rc = smk_ptrace_rule_check(tracer,
tracer             31 security/yama/yama_lsm.c 	struct task_struct *tracer;
tracer            141 security/yama/yama_lsm.c static int yama_ptracer_add(struct task_struct *tracer,
tracer            151 security/yama/yama_lsm.c 	added->tracer = tracer;
tracer            179 security/yama/yama_lsm.c static void yama_ptracer_del(struct task_struct *tracer,
tracer            190 security/yama/yama_lsm.c 		    (tracer && relation->tracer == tracer)) {
tracer            247 security/yama/yama_lsm.c 			struct task_struct *tracer;
tracer            249 security/yama/yama_lsm.c 			tracer = find_get_task_by_vpid(arg2);
tracer            250 security/yama/yama_lsm.c 			if (!tracer) {
tracer            253 security/yama/yama_lsm.c 				rc = yama_ptracer_add(tracer, myself);
tracer            254 security/yama/yama_lsm.c 				put_task_struct(tracer);
tracer            305 security/yama/yama_lsm.c static int ptracer_exception_found(struct task_struct *tracer,
tracer            320 security/yama/yama_lsm.c 	if (parent != NULL && same_thread_group(parent, tracer)) {
tracer            332 security/yama/yama_lsm.c 			parent = relation->tracer;
tracer            338 security/yama/yama_lsm.c 	if (found && (parent == NULL || task_is_descendant(parent, tracer)))
tracer             35 tools/perf/builtin-ftrace.c 	const char		*tracer;
tracer            338 tools/perf/builtin-ftrace.c 	if (write_tracing_file("current_tracer", ftrace->tracer) < 0) {
tracer            339 tools/perf/builtin-ftrace.c 		pr_err("failed to set current_tracer to %s\n", ftrace->tracer);
tracer            414 tools/perf/builtin-ftrace.c 		ftrace->tracer = value;
tracer            452 tools/perf/builtin-ftrace.c 		.tracer = DEFAULT_TRACER,
tracer            461 tools/perf/builtin-ftrace.c 	OPT_STRING('t', "tracer", &ftrace.tracer, "tracer",
tracer           1463 tools/testing/selftests/seccomp/seccomp_bpf.c 			    pid_t tracer)
tracer           1465 tools/testing/selftests/seccomp/seccomp_bpf.c 	if (tracer) {
tracer           1471 tools/testing/selftests/seccomp/seccomp_bpf.c 		ASSERT_EQ(0, kill(tracer, SIGUSR1));
tracer           1472 tools/testing/selftests/seccomp/seccomp_bpf.c 		ASSERT_EQ(tracer, waitpid(tracer, &status, 0));
tracer           1507 tools/testing/selftests/seccomp/seccomp_bpf.c 	pid_t tracer;
tracer           1533 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_poke,
tracer           1539 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           1811 tools/testing/selftests/seccomp/seccomp_bpf.c 	pid_t tracer, mytid, mypid, parent;
tracer           1852 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_syscall, NULL,
tracer           1858 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           1866 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           1867 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,
tracer           1877 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           1878 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,
tracer           1888 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           1889 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,
tracer           2032 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           2033 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,
tracer           2064 tools/testing/selftests/seccomp/seccomp_bpf.c 	teardown_trace_fixture(_metadata, self->tracer);
tracer           2065 tools/testing/selftests/seccomp/seccomp_bpf.c 	self->tracer = setup_trace_fixture(_metadata, tracer_ptrace, NULL,