Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e43ace89 authored by David Vrabel's avatar David Vrabel
Browse files

uwb: use print_hex_dump()



Use print_hex_dump() instead of the home-grown dump_bytes().

Signed-off-by: default avatarDavid Vrabel <david.vrabel@csr.com>
parent bce83697
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -51,13 +51,18 @@
#include <linux/uwb.h>
#include <linux/usb/wusb.h>
#include <linux/scatterlist.h>
#include <linux/uwb/debug.h>

static int debug_crypto_verify = 0;

module_param(debug_crypto_verify, int, 0);
MODULE_PARM_DESC(debug_crypto_verify, "verify the key generation algorithms");

static void wusb_key_dump(const void *buf, size_t len)
{
	print_hex_dump(KERN_ERR, "  ", DUMP_PREFIX_OFFSET, 16, 1,
		       buf, len, 0);
}

/*
 * Block of data, as understood by AES-CCM
 *
@@ -396,14 +401,14 @@ static int wusb_oob_mic_verify(void)
		       "mismatch between MIC result and WUSB1.0[A2]\n");
		hs_size = sizeof(stv_hsmic_hs) - sizeof(stv_hsmic_hs.MIC);
		printk(KERN_ERR "E: Handshake2 in: (%zu bytes)\n", hs_size);
		dump_bytes(NULL, &stv_hsmic_hs, hs_size);
		wusb_key_dump(&stv_hsmic_hs, hs_size);
		printk(KERN_ERR "E: CCM Nonce in: (%zu bytes)\n",
		       sizeof(stv_hsmic_n));
		dump_bytes(NULL, &stv_hsmic_n, sizeof(stv_hsmic_n));
		wusb_key_dump(&stv_hsmic_n, sizeof(stv_hsmic_n));
		printk(KERN_ERR "E: MIC out:\n");
		dump_bytes(NULL, mic, sizeof(mic));
		wusb_key_dump(mic, sizeof(mic));
		printk(KERN_ERR "E: MIC out (from WUSB1.0[A.2]):\n");
		dump_bytes(NULL, stv_hsmic_hs.MIC, sizeof(stv_hsmic_hs.MIC));
		wusb_key_dump(stv_hsmic_hs.MIC, sizeof(stv_hsmic_hs.MIC));
		result = -EINVAL;
	} else
		result = 0;
@@ -471,19 +476,16 @@ static int wusb_key_derive_verify(void)
		printk(KERN_ERR "E: WUSB key derivation test: "
		       "mismatch between key derivation result "
		       "and WUSB1.0[A1] Errata 2006/12\n");
		printk(KERN_ERR "E: keydvt in: key (%zu bytes)\n",
		       sizeof(stv_key_a1));
		dump_bytes(NULL, stv_key_a1, sizeof(stv_key_a1));
		printk(KERN_ERR "E: keydvt in: nonce (%zu bytes)\n",
		       sizeof(stv_keydvt_n_a1));
		dump_bytes(NULL, &stv_keydvt_n_a1, sizeof(stv_keydvt_n_a1));
		printk(KERN_ERR "E: keydvt in: hnonce & dnonce (%zu bytes)\n",
		       sizeof(stv_keydvt_in_a1));
		dump_bytes(NULL, &stv_keydvt_in_a1, sizeof(stv_keydvt_in_a1));
		printk(KERN_ERR "E: keydvt in: key\n");
		wusb_key_dump(stv_key_a1, sizeof(stv_key_a1));
		printk(KERN_ERR "E: keydvt in: nonce\n");
		wusb_key_dump( &stv_keydvt_n_a1, sizeof(stv_keydvt_n_a1));
		printk(KERN_ERR "E: keydvt in: hnonce & dnonce\n");
		wusb_key_dump(&stv_keydvt_in_a1, sizeof(stv_keydvt_in_a1));
		printk(KERN_ERR "E: keydvt out: KCK\n");
		dump_bytes(NULL, &keydvt_out.kck, sizeof(keydvt_out.kck));
		wusb_key_dump(&keydvt_out.kck, sizeof(keydvt_out.kck));
		printk(KERN_ERR "E: keydvt out: PTK\n");
		dump_bytes(NULL, &keydvt_out.ptk, sizeof(keydvt_out.ptk));
		wusb_key_dump(&keydvt_out.ptk, sizeof(keydvt_out.ptk));
		result = -EINVAL;
	} else
		result = 0;
+5 −11
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@
 */
#include <linux/workqueue.h>
#include <linux/ctype.h>
#include <linux/uwb/debug.h>

#include "wa-hc.h"
#include "wusbhc.h"

@@ -139,13 +139,10 @@ static void wa_notif_dispatch(struct work_struct *ws)
			/* FIXME: unimplemented WA NOTIFs */
			/* fallthru */
		default:
			if (printk_ratelimit()) {
			dev_err(dev, "HWA: unknown notification 0x%x, "
				"%zu bytes; discarding\n",
				notif_hdr->bNotifyType,
				(size_t)notif_hdr->bLength);
				dump_bytes(dev, notif_hdr, 16);
			}
			break;
		}
	}
@@ -160,12 +157,9 @@ static void wa_notif_dispatch(struct work_struct *ws)
	 * discard the data, as this should not happen.
	 */
exhausted_buffer:
	if (!printk_ratelimit())
		goto out;
	dev_warn(dev, "HWA: device sent short notification, "
		 "%d bytes missing; discarding %d bytes.\n",
		 missing, (int)size);
	dump_bytes(dev, itr, size);
	goto out;
}

+1 −20
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
 *
 * Copyright (C) 2005-2006 Intel Corporation
 * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
 * Copyright (C) 2008 Cambridge Silicon Radio Ltd.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
@@ -36,26 +37,6 @@

#include "uwb-internal.h"

void dump_bytes(struct device *dev, const void *_buf, size_t rsize)
{
	const char *buf = _buf;
	char line[32];
	size_t offset = 0;
	int cnt, cnt2;
	for (cnt = 0; cnt < rsize; cnt += 8) {
		size_t rtop = rsize - cnt < 8 ? rsize - cnt : 8;
		for (offset = cnt2 = 0; cnt2 < rtop; cnt2++) {
			offset += scnprintf(line + offset, sizeof(line) - offset,
					    "%02x ", buf[cnt + cnt2] & 0xff);
		}
		if (dev)
			dev_info(dev, "%s\n", line);
		else
			printk(KERN_INFO "%s\n", line);
	}
}
EXPORT_SYMBOL_GPL(dump_bytes);

/*
 * Debug interface
 *