From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
"David S. Miller" <davem@davemloft.net>
Subject: [ 088/136 ] net/eth/ibmveth: Fixup retrieval of MAC address
Date: Fri, 17 May 2013 22:17:25 -0400 [thread overview]
Message-ID: <20130518021655.896249455@goodmis.org> (raw)
In-Reply-To: 20130518021557.139113314@goodmis.org
[-- Attachment #1: 0088-net-eth-ibmveth-Fixup-retrieval-of-MAC-address.patch --]
[-- Type: text/plain, Size: 2782 bytes --]
3.6.11.4 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[ Upstream commit 13f85203e1060da83d9ec1c1c5a63343eaab8de4 ]
Some ancient pHyp versions used to create a 8 bytes local-mac-address
property in the device-tree instead of a 6 bytes one for veth.
The Linux driver code to deal with that is an insane hack which also
happens to break with some choices of MAC addresses in qemu by testing
for a bit in the address rather than just looking at the size of the
property.
Sanitize this by doing the latter instead.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: <stable@vger.kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
drivers/net/ethernet/ibm/ibmveth.c | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c
index b68d28a..33a1760 100644
--- a/drivers/net/ethernet/ibm/ibmveth.c
+++ b/drivers/net/ethernet/ibm/ibmveth.c
@@ -1327,7 +1327,7 @@ static const struct net_device_ops ibmveth_netdev_ops = {
static int __devinit ibmveth_probe(struct vio_dev *dev,
const struct vio_device_id *id)
{
- int rc, i;
+ int rc, i, mac_len;
struct net_device *netdev;
struct ibmveth_adapter *adapter;
unsigned char *mac_addr_p;
@@ -1337,11 +1337,19 @@ static int __devinit ibmveth_probe(struct vio_dev *dev,
dev->unit_address);
mac_addr_p = (unsigned char *)vio_get_attribute(dev, VETH_MAC_ADDR,
- NULL);
+ &mac_len);
if (!mac_addr_p) {
dev_err(&dev->dev, "Can't find VETH_MAC_ADDR attribute\n");
return -EINVAL;
}
+ /* Workaround for old/broken pHyp */
+ if (mac_len == 8)
+ mac_addr_p += 2;
+ else if (mac_len != 6) {
+ dev_err(&dev->dev, "VETH_MAC_ADDR attribute wrong len %d\n",
+ mac_len);
+ return -EINVAL;
+ }
mcastFilterSize_p = (unsigned int *)vio_get_attribute(dev,
VETH_MCAST_FILTER_SIZE, NULL);
@@ -1366,17 +1374,6 @@ static int __devinit ibmveth_probe(struct vio_dev *dev,
netif_napi_add(netdev, &adapter->napi, ibmveth_poll, 16);
- /*
- * Some older boxes running PHYP non-natively have an OF that returns
- * a 8-byte local-mac-address field (and the first 2 bytes have to be
- * ignored) while newer boxes' OF return a 6-byte field. Note that
- * IEEE 1275 specifies that local-mac-address must be a 6-byte field.
- * The RPA doc specifies that the first byte must be 10b, so we'll
- * just look for it to solve this 8 vs. 6 byte field issue
- */
- if ((*mac_addr_p & 0x3) != 0x02)
- mac_addr_p += 2;
-
adapter->mac_addr = 0;
memcpy(&adapter->mac_addr, mac_addr_p, 6);
--
1.7.10.4
next prev parent reply other threads:[~2013-05-18 2:17 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-18 2:15 [ 000/136 ] 3.6.11.4-stable review Steven Rostedt
2013-05-18 2:15 ` [ 001/136 ] USB: serial: option: Added support Olivetti Olicard 145 Steven Rostedt
2013-05-18 2:15 ` [ 002/136 ] USB: option: add a D-Link DWM-156 variant Steven Rostedt
2013-05-18 2:16 ` [ 003/136 ] ARM: omap3: cpuidle: enable time keeping Steven Rostedt
2013-05-18 2:16 ` [ 004/136 ] ARM: u300: fix ages old copy/paste bug Steven Rostedt
2013-05-18 2:16 ` [ 005/136 ] ARM: at91: Fix typo in restart code panic message Steven Rostedt
2013-05-18 2:16 ` [ 006/136 ] powerpc: Add isync to copy_and_flush Steven Rostedt
2013-05-18 2:16 ` [ 007/136 ] powerpc/spufs: Initialise inode->i_ino in spufs_new_inode() Steven Rostedt
2013-05-18 2:16 ` [ 008/136 ] iwlwifi: fix freeing uninitialized pointer Steven Rostedt
2013-05-18 2:16 ` [ 009/136 ] iwlwifi: dvm: dont send zeroed LQ cmd Steven Rostedt
2013-05-18 2:16 ` [ 010/136 ] mwifiex: Use pci_release_region() instead of a pci_release_regions() Steven Rostedt
2013-05-18 2:16 ` [ 011/136 ] mwifiex: Call pci_release_region after calling pci_disable_device Steven Rostedt
2013-05-18 2:16 ` [ 012/136 ] usb/misc/appledisplay: Add 24" LED Cinema display Steven Rostedt
2013-05-18 2:16 ` [ 013/136 ] USB: add ftdi_sio USB ID for GDM Boost V1.x Steven Rostedt
2013-05-18 2:16 ` [ 014/136 ] USB: ftdi_sio: correct ST Micro Connect Lite PIDs Steven Rostedt
2013-05-18 2:16 ` [ 015/136 ] USB: ftdi_sio: enable two UART ports on ST Microconnect Lite Steven Rostedt
2013-05-18 2:16 ` [ 016/136 ] usbfs: Always allow ctrl requests with USB_RECIP_ENDPOINT on the ctrl ep Steven Rostedt
2013-05-18 2:16 ` [ 017/136 ] usb: chipidea: udc: fix memory access of shared memory on armv5 machines Steven Rostedt
2013-05-18 2:16 ` [ 018/136 ] usb: chipidea: udc: fix memory leak in _ep_nuke Steven Rostedt
2013-05-18 2:16 ` [ 019/136 ] usb: remove redundant tdi_reset Steven Rostedt
2013-05-18 2:16 ` [ 020/136 ] usb-storage: CY7C68300A chips do not support Cypress ATACB Steven Rostedt
2013-05-18 2:16 ` [ 021/136 ] s390/memory hotplug: prevent offline of active memory increments Steven Rostedt
2013-05-18 2:16 ` [ 022/136 ] xen/time: Fix kasprintf splat when allocating timer%d IRQ line Steven Rostedt
2013-05-18 2:16 ` [ 023/136 ] xen/smp: Fix leakage of timer interrupt line for every CPU online/offline Steven Rostedt
2013-05-18 2:16 ` [ 024/136 ] xen/smp/spinlock: Fix leakage of the spinlock " Steven Rostedt
2013-05-18 2:16 ` [ 025/136 ] serial_core.c: add put_device() after device_find_child() Steven Rostedt
2013-05-18 2:16 ` [ 026/136 ] arm: set the page table freeing ceiling to TASK_SIZE Steven Rostedt
2013-05-18 2:16 ` [ 027/136 ] gianfar: do not advertise any alarm capability Steven Rostedt
2013-05-18 2:16 ` [ 028/136 ] tty: fix up atime/mtime mess, take three Steven Rostedt
2013-05-18 2:16 ` [ 029/136 ] tracing: Use stack of calling function for stack tracer Steven Rostedt
2013-05-18 2:16 ` [ 030/136 ] tracing: Fix stack tracer with fentry use Steven Rostedt
2013-05-18 2:16 ` [ 031/136 ] tracing: Remove most or all of stack tracer stack size from stack_max_size Steven Rostedt
2013-05-18 2:16 ` [ 032/136 ] tracing: Fix off-by-one on allocating stat->pages Steven Rostedt
2013-05-18 2:16 ` [ 033/136 ] tracing: Check return value of tracing_init_dentry() Steven Rostedt
2013-05-18 2:16 ` [ 034/136 ] tracing: Reset ftrace_graph_filter_enabled if count is zero Steven Rostedt
2013-05-18 2:16 ` [ 035/136 ] i2c: xiic: must always write 16-bit words to TX_FIFO Steven Rostedt
2013-05-18 2:16 ` [ 036/136 ] sysfs: fix use after free in case of concurrent read/write and readdir Steven Rostedt
2013-05-18 2:16 ` [ 037/136 ] Fix initialization of CMCI/CMCP interrupts Steven Rostedt
2013-05-18 2:16 ` [ 038/136 ] PCI / ACPI: Dont query OSC support with all possible controls Steven Rostedt
2013-05-18 2:16 ` [ 039/136 ] PCI/PM: Fix fallback to PCI_D0 in pci_platform_power_transition() Steven Rostedt
2013-05-18 2:16 ` [ 040/136 ] rt2x00: Fix transmit power troubles on some Ralink RT30xx cards Steven Rostedt
2013-05-18 2:16 ` [ 041/136 ] Wrong asm register contraints in the futex implementation Steven Rostedt
2013-05-18 2:16 ` [ 042/136 ] Wrong asm register contraints in the kvm implementation Steven Rostedt
2013-05-18 2:16 ` [ 043/136 ] fs/fscache/stats.c: fix memory leak Steven Rostedt
2013-05-18 2:16 ` [ 044/136 ] mm: allow arch code to control the user page table ceiling Steven Rostedt
2013-05-18 2:16 ` [ 045/136 ] TPM: Retry SaveState command in suspend path Steven Rostedt
2013-05-18 2:16 ` [ 046/136 ] ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT Steven Rostedt
2013-05-18 2:16 ` [ 047/136 ] ALSA: usb: Add quirk for 192KHz recording on E-Mu devices Steven Rostedt
2013-05-18 2:16 ` [ 048/136 ] ALSA: usb-audio: Fix missing autopm for MIDI input Steven Rostedt
2013-05-18 2:16 ` [ 049/136 ] ALSA: usb-audio: disable autopm for MIDI devices Steven Rostedt
2013-05-18 2:16 ` [ 050/136 ] ALSA: usb-audio: Fix autopm error during probing Steven Rostedt
2013-05-18 2:16 ` [ 051/136 ] ASoC: max98088: Fix logging of hardware revision Steven Rostedt
2013-05-18 2:16 ` [ 052/136 ] hrtimer: Fix ktime_add_ns() overflow on 32bit architectures Steven Rostedt
2013-05-18 2:16 ` [ 053/136 ] hrtimer: Add expiry time overflow check in hrtimer_interrupt Steven Rostedt
2013-05-18 2:16 ` [ 054/136 ] swap: redirty page if page write fails on swap file Steven Rostedt
2013-05-18 2:16 ` [ 055/136 ] mm: swap: mark swap pages writeback before queueing for direct IO Steven Rostedt
2013-05-18 2:16 ` [ 056/136 ] drivers/rtc/rtc-cmos.c: dont disable hpet emulation on suspend Steven Rostedt
2013-05-18 2:16 ` [ 057/136 ] acpi: make ata_ap_acpi_handle not block Steven Rostedt
2013-05-18 2:16 ` [ 058/136 ] cgroup: fix an off-by-one bug which may trigger BUG_ON() Steven Rostedt
2013-05-18 2:16 ` [ 059/136 ] clockevents: Set dummy handler on CPU_DEAD shutdown Steven Rostedt
2013-05-18 2:16 ` [ 060/136 ] inotify: invalid mask should return a error number but not set it Steven Rostedt
2013-05-18 2:16 ` [ 061/136 ] fs/dcache.c: add cond_resched() to shrink_dcache_parent() Steven Rostedt
2013-05-18 2:16 ` [ 062/136 ] exec: do not abuse ->cred_guard_mutex in threadgroup_lock() Steven Rostedt
2013-05-18 2:17 ` [ 063/136 ] LOCKD: Ensure that nlmclnt_block resets block->b_status after a server reboot Steven Rostedt
2013-05-18 2:17 ` [ 064/136 ] md: bad block list should default to disabled Steven Rostedt
2013-05-18 2:17 ` [ 065/136 ] MD: ignore discard request for hard disks of hybid raid1/raid10 array Steven Rostedt
2013-05-18 2:17 ` [ 066/136 ] NFSv4: Handle NFS4ERR_DELAY and NFS4ERR_GRACE in nfs4_open_delegation_recall Steven Rostedt
2013-05-18 2:17 ` [ 067/136 ] nfsd4: dont close read-write opens too soon Steven Rostedt
2013-05-18 2:17 ` [ 068/136 ] nfsd: dont run get_file if nfs4_preprocess_stateid_op return error Steven Rostedt
2013-05-18 2:17 ` [ 069/136 ] nfsd: Decode and send 64bit time values Steven Rostedt
2013-05-18 2:17 ` [ 070/136 ] wireless: regulatory: fix channel disabling race condition Steven Rostedt
2013-05-18 2:17 ` [ 071/136 ] ipc: sysv shared memory limited to 8TiB Steven Rostedt
2013-05-18 2:17 ` [ 072/136 ] ixgbe: fix EICR write in ixgbe_msix_other Steven Rostedt
2013-05-18 2:17 ` [ 073/136 ] ext4/jbd2: dont wait (forever) for stale tid caused by wraparound Steven Rostedt
2013-05-18 2:17 ` [ 074/136 ] jbd2: fix race between jbd2_journal_remove_checkpoint and ->j_commit_callback Steven Rostedt
2013-05-18 2:17 ` [ 075/136 ] ext4: fix journal callback list traversal Steven Rostedt
2013-05-18 2:17 ` [ 076/136 ] ext4: fix big-endian bug in metadata checksum calculations Steven Rostedt
2013-05-18 2:17 ` [ 077/136 ] ext4: fix online resizing for ext3-compat file systems Steven Rostedt
2013-05-18 2:17 ` [ 078/136 ] ext4: fix Kconfig documentation for CONFIG_EXT4_DEBUG Steven Rostedt
2013-05-18 2:17 ` [ 079/136 ] mmc: at91/avr32/atmel-mci: fix DMA-channel leak on module unload Steven Rostedt
2013-05-18 2:17 ` [ 080/136 ] KVM: X86 emulator: fix source operand decoding for 8bit mov[zs]x instructions Steven Rostedt
2013-05-18 2:17 ` [ 081/136 ] x86: Eliminate irq_mis_count counted in arch_irq_stat Steven Rostedt
2013-05-18 2:17 ` [ 082/136 ] mmc: core: Fix bit width test failing on old eMMC cards Steven Rostedt
2013-05-18 2:17 ` [ 083/136 ] mmc: atmel-mci: pio hang on block errors Steven Rostedt
2013-05-18 2:17 ` [ 084/136 ] mfd: adp5520: Restore mode bits on resume Steven Rostedt
2013-05-18 2:17 ` [ 085/136 ] powerpc: Emulate non privileged DSCR read and write Steven Rostedt
2013-05-18 2:17 ` [ 086/136 ] powerpc: fix numa distance for form0 device tree Steven Rostedt
2013-05-18 2:17 ` [ 087/136 ] autofs - remove autofs dentry mount check Steven Rostedt
2013-05-18 2:17 ` Steven Rostedt [this message]
2013-05-18 2:17 ` [ 089/136 ] perf/x86/intel: Add support for IvyBridge model 58 Uncore Steven Rostedt
2013-05-18 2:17 ` [ 090/136 ] perf/x86/intel: Fix unintended variable name reuse Steven Rostedt
2013-05-18 2:17 ` [ 091/136 ] perf/x86/intel/lbr: Fix LBR filter Steven Rostedt
2013-05-18 2:17 ` [ 092/136 ] perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL Steven Rostedt
2013-05-18 2:17 ` [ 093/136 ] PCI/PM: Clear state_saved during suspend Steven Rostedt
2013-05-18 2:17 ` [ 094/136 ] e1000e: fix runtime power management transitions Steven Rostedt
2013-05-18 5:35 ` Konstantin Khlebnikov
2013-05-18 5:40 ` Jeff Kirsher
2013-05-20 19:35 ` Steven Rostedt
2013-05-20 20:24 ` Jeff Kirsher
2013-05-20 20:31 ` Steven Rostedt
2013-05-18 2:17 ` [ 095/136 ] xhci: Dont warn on empty ring for suspended devices Steven Rostedt
2013-05-18 2:17 ` [ 096/136 ] ipvs: ip_vs_sip_fill_param() BUG: bad check of return value Steven Rostedt
2013-05-18 2:17 ` [ 097/136 ] netfilter: ipset: list:set: fix reference counter update Steven Rostedt
2013-05-18 2:17 ` [ 098/136 ] netfilter: nf_ct_sip: dont drop packets with offsets pointing outside the packet Steven Rostedt
2013-05-18 2:17 ` [ 099/136 ] netfilter: ipset: "Directory not empty" error message Steven Rostedt
2013-05-18 2:17 ` [ 100/136 ] netfilter: nf_ct_helper: dont discard helper if it is actually the same Steven Rostedt
2013-05-18 2:17 ` [ 101/136 ] netfilter: ctnetlink: dont permit ct creation with random tuple Steven Rostedt
2013-05-18 2:17 ` [ 102/136 ] netfilter: xt_rpfilter: skip locally generated broadcast/multicast, too Steven Rostedt
2013-05-18 2:17 ` [ 103/136 ] ext4: add check for inodes_count overflow in new resize ioctl Steven Rostedt
2013-05-18 2:17 ` [ 104/136 ] r8169: fix 8168evl frame padding Steven Rostedt
2013-05-18 10:02 ` Francois Romieu
2013-05-20 19:40 ` Steven Rostedt
2013-05-20 19:45 ` David Miller
2013-05-20 19:51 ` Steven Rostedt
2013-05-30 20:11 ` Steven Rostedt
2013-05-30 21:00 ` Francois Romieu
2013-05-30 21:21 ` Steven Rostedt
2013-05-18 2:17 ` [ 105/136 ] drm/cirrus: deal with bo reserve fail in dirty update path Steven Rostedt
2013-05-18 2:17 ` [ 106/136 ] drm/mgag200: " Steven Rostedt
2013-05-18 2:17 ` [ 107/136 ] drm/gma500: fix backlight hotkeys behaviour on netbooks Steven Rostedt
2013-05-18 2:17 ` [ 108/136 ] drm/prime: keep a reference from the handle to exported dma-buf (v6) Steven Rostedt
2013-05-18 2:17 ` [ 109/136 ] drm/ast: deal with bo reserve fail in dirty update path Steven Rostedt
2013-05-18 2:17 ` [ 110/136 ] drm/i915: Fix detection of base of stolen memory Steven Rostedt
2013-05-18 2:17 ` [ 111/136 ] drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900 Steven Rostedt
2013-05-18 2:17 ` [ 112/136 ] drm/i915: Workaround incoherence between fences and LLC across multiple CPUs Steven Rostedt
2013-05-18 2:17 ` [ 113/136 ] drm/i915: Use MLC (l3$) for context objects Steven Rostedt
2013-05-18 2:17 ` [ 114/136 ] drm/i915: set CPT FDI RX polarity bits based on VBT Steven Rostedt
2013-05-18 2:17 ` [ 115/136 ] drm/i915: Fall back to bit banging mode for DVO transmitter detection Steven Rostedt
2013-05-18 2:17 ` [ 116/136 ] drm/radeon: dont use get_engine_clock() on APUs Steven Rostedt
2013-05-18 2:17 ` [ 117/136 ] drm/radeon: use frac fb div on RS780/RS880 Steven Rostedt
2013-05-18 2:17 ` [ 118/136 ] drm/radeon/dce6: add missing display reg for tiling setup Steven Rostedt
2013-05-18 2:17 ` [ 119/136 ] drm/radeon: update wait_for_vblank for r5xx-r7xx Steven Rostedt
2013-05-18 2:17 ` [ 120/136 ] drm/radeon: update wait_for_vblank for evergreen+ Steven Rostedt
2013-05-18 2:17 ` [ 121/136 ] drm/radeon: update wait_for_vblank for r1xx-r4xx Steven Rostedt
2013-05-18 2:17 ` [ 122/136 ] drm/radeon: disable the crtcs in mc_stop (evergreen+) (v2) Steven Rostedt
2013-05-18 2:18 ` [ 123/136 ] drm/radeon: add some new SI PCI ids Steven Rostedt
2013-05-18 2:18 ` [ 124/136 ] drm/radeon/evergreen+: dont enable HPD interrupts on eDP/LVDS Steven Rostedt
2013-05-18 2:18 ` [ 125/136 ] drm/radeon: cleanup properly if mmio mapping fails Steven Rostedt
2013-05-18 2:18 ` [ 126/136 ] drm/radeon: fix hdmi mode enable on RS600/RS690/RS740 Steven Rostedt
2013-05-18 2:18 ` [ 127/136 ] drm/radeon: fix typo in si_select_se_sh() Steven Rostedt
2013-05-18 2:18 ` [ 128/136 ] drm/radeon: fix endian bugs in atom_allocate_fb_scratch() Steven Rostedt
2013-05-18 2:18 ` [ 129/136 ] drm/radeon: fix possible segfault when parsing pm tables Steven Rostedt
2013-05-18 2:18 ` [ 130/136 ] drm/radeon: add new richland pci ids Steven Rostedt
2013-05-18 2:18 ` [ 131/136 ] drm/radeon: fix handling of v6 power tables Steven Rostedt
2013-05-18 2:18 ` [ 132/136 ] tracing: Fix ftrace_dump() Steven Rostedt
2013-05-18 2:18 ` [ 133/136 ] Btrfs: compare relevant parts of delayed tree refs Steven Rostedt
2013-05-18 2:18 ` [ 134/136 ] kernel/audit_tree.c: tree will leak memory when failure occurs in audit_trim_trees() Steven Rostedt
2013-05-18 2:18 ` [ 135/136 ] x86/mm: account for PGDIR_SIZE alignment Steven Rostedt
2013-05-18 2:18 ` [ 136/136 ] s390: move dummy io_remap_pfn_range() to asm/pgtable.h Steven Rostedt
2013-05-18 2:32 ` [ 000/136 ] 3.6.11.4-stable review Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130518021655.896249455@goodmis.org \
--to=rostedt@goodmis.org \
--cc=benh@kernel.crashing.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox