brintos

brintos / linux-shallow public Read only

0
0
Text · 2.5 KiB · 2ebef4d Raw
128 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * QLogic iSCSI Offload Driver4 * Copyright (c) 2016 Cavium Inc.5 */6 7#include "qedi_dbg.h"8#include <linux/vmalloc.h>9 10void11qedi_dbg_err(struct qedi_dbg_ctx *qedi, const char *func, u32 line,12	     const char *fmt, ...)13{14	va_list va;15	struct va_format vaf;16 17	va_start(va, fmt);18 19	vaf.fmt = fmt;20	vaf.va = &va;21 22	if (likely(qedi) && likely(qedi->pdev))23		pr_err("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev),24		       func, line, qedi->host_no, &vaf);25	else26		pr_err("[0000:00:00.0]:[%s:%d]: %pV", func, line, &vaf);27 28	va_end(va);29}30 31void32qedi_dbg_warn(struct qedi_dbg_ctx *qedi, const char *func, u32 line,33	      const char *fmt, ...)34{35	va_list va;36	struct va_format vaf;37 38	va_start(va, fmt);39 40	vaf.fmt = fmt;41	vaf.va = &va;42 43	if (!(qedi_dbg_log & QEDI_LOG_WARN))44		goto ret;45 46	if (likely(qedi) && likely(qedi->pdev))47		pr_warn("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev),48			func, line, qedi->host_no, &vaf);49	else50		pr_warn("[0000:00:00.0]:[%s:%d]: %pV", func, line, &vaf);51 52ret:53	va_end(va);54}55 56void57qedi_dbg_notice(struct qedi_dbg_ctx *qedi, const char *func, u32 line,58		const char *fmt, ...)59{60	va_list va;61	struct va_format vaf;62 63	va_start(va, fmt);64 65	vaf.fmt = fmt;66	vaf.va = &va;67 68	if (!(qedi_dbg_log & QEDI_LOG_NOTICE))69		goto ret;70 71	if (likely(qedi) && likely(qedi->pdev))72		pr_notice("[%s]:[%s:%d]:%d: %pV",73			  dev_name(&qedi->pdev->dev), func, line,74			  qedi->host_no, &vaf);75	else76		pr_notice("[0000:00:00.0]:[%s:%d]: %pV", func, line, &vaf);77 78ret:79	va_end(va);80}81 82void83qedi_dbg_info(struct qedi_dbg_ctx *qedi, const char *func, u32 line,84	      u32 level, const char *fmt, ...)85{86	va_list va;87	struct va_format vaf;88 89	va_start(va, fmt);90 91	vaf.fmt = fmt;92	vaf.va = &va;93 94	if (!(qedi_dbg_log & level))95		goto ret;96 97	if (likely(qedi) && likely(qedi->pdev))98		pr_info("[%s]:[%s:%d]:%d: %pV", dev_name(&qedi->pdev->dev),99			func, line, qedi->host_no, &vaf);100	else101		pr_info("[0000:00:00.0]:[%s:%d]: %pV", func, line, &vaf);102 103ret:104	va_end(va);105}106 107int108qedi_create_sysfs_attr(struct Scsi_Host *shost, struct sysfs_bin_attrs *iter)109{110	int ret = 0;111 112	for (; iter->name; iter++) {113		ret = sysfs_create_bin_file(&shost->shost_gendev.kobj,114					    iter->attr);115		if (ret)116			pr_err("Unable to create sysfs %s attr, err(%d).\n",117			       iter->name, ret);118	}119	return ret;120}121 122void123qedi_remove_sysfs_attr(struct Scsi_Host *shost, struct sysfs_bin_attrs *iter)124{125	for (; iter->name; iter++)126		sysfs_remove_bin_file(&shost->shost_gendev.kobj, iter->attr);127}128