- 29 Feb, 2016 40 commits
-
-
Alistair Popple authored
BugLink: http://bugs.launchpad.net/bugs/1522415 P8+ hardware reports all errors on PE#0. This patch ensures PE#0 is not assigned to NPU devices so that it can be used for EEH. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> (cherry picked from commit 08f48f32) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Alistair Popple authored
BugLink: http://bugs.launchpad.net/bugs/1522415 The P8+ hardware supports four partitionable endpoints (PEs) however the hardware reports all errors as occurring on PE#0. This means we need to reserve this PE for error handling (EEH) and not assign it to a NPU device, implying that some devices will need to share PEs. This patch changes the PE assignment for NPU devices such that NPU devices which connect to the same GPU are assigned to the same PE#. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> (cherry picked from commit b521549a) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Alistair Popple authored
BugLink: http://bugs.launchpad.net/bugs/1522415 The emulated NVLink PCI devices share the same IODA2 TCE tables but only support a single TVT (instead of the normal two for PCI devices). This requires the kernel to manually replace windows with either the bypass or non-bypass window depending on what the driver has requested. Unfortunately an incorrect optimisation was made in pnv_pci_ioda_dma_set_mask() which caused updating of some NPU device PEs to be skipped in certain configurations due to an incorrect assumption that a NULL peer PE in the array indicated there were no more peers present. This patch fixes the problem by ensuring all peer PEs are updated. Fixes: 5d2aa710 ("powerpc/powernv: Add support for Nvlink NPUs") Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> (cherry picked from commit 419dbd5e) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Ignore: yes Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Alistair Popple authored
BugLink: http://bugs.launchpad.net/bugs/1522415 NVLink is a high speed interconnect that is used in conjunction with a PCI-E connection to create an interface between CPU and GPU that provides very high data bandwidth. A PCI-E connection to a GPU is used as the control path to initiate and report status of large data transfers sent via the NVLink. On IBM Power systems the NVLink processing unit (NPU) is similar to the existing PHB3. This patch adds support for a new NPU PHB type. DMA operations on the NPU are not supported as this patch sets the TCE translation tables to be the same as the related GPU PCIe device for each NVLink. Therefore all DMA operations are setup and controlled via the PCIe device. EEH is not presently supported for the NPU devices, although it may be added in future. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> (cherry picked from commit 5d2aa710) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
BugLink: http://bugs.launchpad.net/bugs/1532886Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
BugLink: http://bugs.launchpad.net/bugs/1514711Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Thomas Falcon authored
BugLink: http://bugs.launchpad.net/bugs/1532303 This is a new device driver for a high performance SR-IOV assisted virtual network for IBM System p and IBM System i systems. The SR-IOV VF will be attached to the VIOS partition and mapped to the Linux client via the hypervisor's VNIC protocol that this driver implements. This driver is able to perform basic tx and rx, new features and improvements will be added as they are being developed and tested. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Signed-off-by: John Allen <jallen@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net> (cherry picked from commit 032c5e82) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Jim Snow authored
BugLink: http://bugs.launchpad.net/bugs/1519631 Knights Landing is the next generation architecture for HPC market. KNL introduces concept of a tile and CHA - Cache/Home Agent for memory accesses. Some things are fixed in KNL: () There's single DIMM slot per channel () There's 2 memory controllers with 3 channels each, however, from EDAC standpoint, it is presented as single memory controller with 6 channels. In order to represent 2 MCs w/ 3 CH, it would require major redesign of EDAC core driver. Basically, two functionalities are added/extended: () during driver initialization KNL topology is being recognized, i.e. which channels are populated with what DIMM sizes (knl_get_dimm_capacity function) () handle MCE errors - channel swizzling Reviewed-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Jim Snow <jim.m.snow@intel.com> Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: linux-edac <linux-edac@vger.kernel.org> Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-5-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> (cherry picked from commit d0cdf900) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Jim Snow authored
BugLink: http://bugs.launchpad.net/bugs/1519631 Add options to sbridge_get_all_devices() to allow for duplicate device IDs and devices that are scattered across mulitple PCI buses. Signed-off-by: Jim Snow <jim.m.snow@intel.com> Acked-by: Tony Luck <tony.luck@intel.com> Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: linux-edac <linux-edac@vger.kernel.org> Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-4-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> (cherry picked from commit c1979ba2) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Jim Snow authored
BugLink: http://bugs.launchpad.net/bugs/1519631 SAD limit, interleave mode and DRAM related functionalities are now virtualized, so that overriding them is easier. Signed-off-by: Jim Snow <jim.m.snow@intel.com> Acked-by: Tony Luck <tony.luck@intel.com> Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: linux-edac <linux-edac@vger.kernel.org> Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-3-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> (cherry picked from commit c59f9c06) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Jim Snow authored
BugLink: http://bugs.launchpad.net/bugs/1519631 Make EDAC aware of DDR4/RDDR4 mem types. Signed-off-by: Jim Snow <jim.m.snow@intel.com> Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Cc: linux-edac <linux-edac@vger.kernel.org> Cc: lukasz.anaczkowski@intel.com Link: http://lkml.kernel.org/r/1449136134-23706-2-git-send-email-hubert.chrzaniuk@intel.com [ Rebase to 4.4-rc3. ] Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com> Signed-off-by: Borislav Petkov <bp@suse.de> (cherry picked from commit 255379ae) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Kan Liang authored
BugLink: http://bugs.launchpad.net/bugs/1524574 The uncore subsystem for Broadwell-EP is similar to Haswell-EP. There are some differences in pci device IDs, box number and constraints. This patch extends the Broadwell-DE codes to support Broadwell-EP. Signed-off-by: Kan Liang <kan.liang@intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Link: http://lkml.kernel.org/r/1449176411-9499-1-git-send-email-kan.liang@intel.comSigned-off-by: Ingo Molnar <mingo@kernel.org> (cherry picked from commit d6980ef3) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
This reverts commit dc2781ca67ef072fff4494c4ca50acf901887cfb. Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Eric Dumazet authored
BugLink: http://bugs.launchpad.net/bugs/1527902 Backport of this upstream commit into stable kernels : 89c22d8c ("net: Fix skb csum races when peeking") exposed a bug in udp stack vs MSG_PEEK support, when user provides a buffer smaller than skb payload. In this case, skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov); returns -EFAULT. This bug does not happen in upstream kernels since Al Viro did a great job to replace this into : skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg); This variant is safe vs short buffers. For the time being, instead reverting Herbert Xu patch and add back skb->ip_summed invalid changes, simply store the result of udp_lib_checksum_complete() so that we avoid computing the checksum a second time, and avoid the problematic skb_copy_and_csum_datagram_iovec() call. This patch can be applied on recent kernels as it avoids a double checksumming, then backported to stable kernels as a bug fix. Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patchwork.ozlabs.org/patch/561746/Signed-off-by: Kamal Mostafa <kamal@canonical.com>
-
Tim Gardner authored
BugLink: http://bugs.launchpad.net/bugs/1532886 Change these config settings to be consistent with all of the other architectures. Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Guilherme G. Piccoli authored
BugLink: http://bugs.launchpad.net/bugs/1486180 Commit 89a51df5 ("powerpc/eeh: Fix crash in eeh_add_device_early() on Cell") added a check on function eeh_add_device_early(): since in Cell arch eeh_ops is NULL, that code used to crash on Cell. The commit's approach was validate if EEH was available by checking the result of function eeh_enabled(). Since the function eeh_add_device_early() is used to perform EEH initialization in devices added later on the system, like in hotplug/DLPAR scenarios, we might reach a case in which no PCI devices are present on boot and so EEH is not initialized. Then, if a device is added via DLPAR for example, eeh_add_device_early() fails because eeh_enabled() is false. We can hit a kernel oops on pSeries arch if eeh_add_device_early() fails: if we have no PCI devices on machine at boot time, and then we add a PCI device via DLPAR operation, the function query_ddw() triggers the oops on NULL pointer dereference in the line "cfg_addr = edev->config_addr;". It happens because config_addr in edev is NULL, since the function eeh_add_device_early() was not completed successfully. This patch just changes the way the arch checking is done in function eeh_add_device_early(): we use no more eeh_enabled(), but instead we check the running architecture by using the macro machine_is(). If we are running on pSeries or PowerNV, the EEH mechanism can be enabled; otherwise, we bail out the function. This way, we don't enable EEH on Cell and we don't hit the oops on DLPAR either. Fixes: 89a51df5 ("powerpc/eeh: Fix crash in eeh_add_device_early() on Cell") Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Ignore: yes Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Ignore: yes Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
CC [M] drivers/dma/ioat/prep.o drivers/dma/ioat/prep.c: In function 'ioat_prep_pqxor': drivers/dma/ioat/prep.c:682:1: warning: the frame size of 1048 bytes is larger than 1024 bytes [-Wframe-larger-than=] } ^ drivers/dma/ioat/prep.c: In function 'ioat_prep_pqxor_val': drivers/dma/ioat/prep.c:714:1: warning: the frame size of 1048 bytes is larger than 1024 bytes [-Wframe-larger-than=] } gcc version 5.3.1 20151219 (Ubuntu 5.3.1-4ubuntu1) Cc: Vinod Koul <vinod.koul@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Nicholas Mc Guire <der.herr@hofr.at> Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
CC [M] drivers/gpu/drm/radeon/r100.o In file included from drivers/gpu/drm/radeon/radeon_mode.h:37:0, from drivers/gpu/drm/radeon/radeon.h:80, from drivers/gpu/drm/radeon/r100.c:33: drivers/gpu/drm/radeon/r100.c: In function 'r100_bandwidth_update': include/drm/drm_fixed.h:64:13: warning: 'crit_point_ff.full' may be used uninitialized in this function [-Wmaybe-uninitialized] u64 tmp = ((u64)A.full << 13); ^ drivers/gpu/drm/radeon/r100.c:3153:63: note: 'crit_point_ff.full' was declared here fixed20_12 peak_disp_bw, mem_bw, pix_clk, pix_clk2, temp_ff, crit_point_ff; ^ drivers/gpu/drm/radeon/r100.c:3583:42: warning: 'disp_drain_rate.full' may be used uninitialized in this function [-Wmaybe-uninitialized] temp_ff.full = read_return_rate.full - disp_drain_rate.full; gcc version 5.3.1 20151219 (Ubuntu 5.3.1-4ubuntu1) Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
CC security/apparmor/af_unix.o In file included from ./arch/x86/include/asm/bug.h:35:0, from include/linux/bug.h:4, from include/linux/cpumask.h:12, from ./arch/x86/include/asm/cpumask.h:4, from ./arch/x86/include/asm/msr.h:10, from ./arch/x86/include/asm/processor.h:20, from ./arch/x86/include/asm/atomic.h:6, from include/linux/atomic.h:4, from include/linux/mutex.h:18, from include/net/af_unix.h:6, from security/apparmor/include/af_unix.h:15, from security/apparmor/af_unix.c:16: security/apparmor/af_unix.c: In function 'unix_fs_perm': security/apparmor/af_unix.c:29:18: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] AA_BUG(!UNIX_FS(u)); ^ include/asm-generic/bug.h:95:25: note: in definition of macro 'WARN' int __ret_warn_on = !!(condition); \ ^ security/apparmor/include/apparmor.h:75:28: note: in expansion of macro 'AA_BUG_FMT' #define AA_BUG(X, args...) AA_BUG_FMT((X), "" args ) ^ security/apparmor/af_unix.c:29:2: note: in expansion of macro 'AA_BUG' AA_BUG(!UNIX_FS(u)); ^ security/apparmor/include/af_unix.h:36:22: note: in expansion of macro 'UNIX_ANONYMOUS' #define UNIX_FS(U) (!UNIX_ANONYMOUS(U) && unix_sk(U)->addr->name->sun_path[0]) ^ security/apparmor/af_unix.c:29:10: note: in expansion of macro 'UNIX_FS' AA_BUG(!UNIX_FS(u)); ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ In file included from ./arch/x86/include/asm/bug.h:35:0, from include/linux/bug.h:4, from include/linux/cpumask.h:12, from ./arch/x86/include/asm/cpumask.h:4, from ./arch/x86/include/asm/msr.h:10, from ./arch/x86/include/asm/processor.h:20, from ./arch/x86/include/asm/atomic.h:6, from include/linux/atomic.h:4, from include/linux/mutex.h:18, from include/net/af_unix.h:6, from security/apparmor/include/af_unix.h:15, from security/apparmor/af_unix.c:16: security/apparmor/af_unix.c:29:18: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] AA_BUG(!UNIX_FS(u)); ^ include/asm-generic/bug.h:95:25: note: in definition of macro 'WARN' int __ret_warn_on = !!(condition); \ ^ security/apparmor/include/apparmor.h:75:28: note: in expansion of macro 'AA_BUG_FMT' #define AA_BUG(X, args...) AA_BUG_FMT((X), "" args ) ^ security/apparmor/af_unix.c:29:2: note: in expansion of macro 'AA_BUG' AA_BUG(!UNIX_FS(u)); ^ security/apparmor/af_unix.c:29:10: note: in expansion of macro 'UNIX_FS' AA_BUG(!UNIX_FS(u)); ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ In file included from security/apparmor/af_unix.c:16:0: security/apparmor/af_unix.c: In function 'aa_unix_peer_perm': security/apparmor/af_unix.c:529:14: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] if (UNIX_FS(peeru)) ^ security/apparmor/include/af_unix.h:32:37: note: in definition of macro 'UNIX_ANONYMOUS' #define UNIX_ANONYMOUS(U) (!unix_sk(U)->addr) ^ security/apparmor/af_unix.c:529:6: note: in expansion of macro 'UNIX_FS' if (UNIX_FS(peeru)) ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ In file included from security/apparmor/af_unix.c:16:0: security/apparmor/af_unix.c:529:14: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] if (UNIX_FS(peeru)) ^ security/apparmor/include/af_unix.h:36:51: note: in definition of macro 'UNIX_FS' #define UNIX_FS(U) (!UNIX_ANONYMOUS(U) && unix_sk(U)->addr->name->sun_path[0]) ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ In file included from security/apparmor/af_unix.c:16:0: security/apparmor/af_unix.c:531:19: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] else if (UNIX_FS(u)) ^ security/apparmor/include/af_unix.h:32:37: note: in definition of macro 'UNIX_ANONYMOUS' #define UNIX_ANONYMOUS(U) (!unix_sk(U)->addr) ^ security/apparmor/af_unix.c:531:11: note: in expansion of macro 'UNIX_FS' else if (UNIX_FS(u)) ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ In file included from security/apparmor/af_unix.c:16:0: security/apparmor/af_unix.c:531:19: warning: passing argument 1 of 'unix_sk' from incompatible pointer type [-Wincompatible-pointer-types] else if (UNIX_FS(u)) ^ security/apparmor/include/af_unix.h:36:51: note: in definition of macro 'UNIX_FS' #define UNIX_FS(U) (!UNIX_ANONYMOUS(U) && unix_sk(U)->addr->name->sun_path[0]) ^ In file included from security/apparmor/include/af_unix.h:15:0, from security/apparmor/af_unix.c:16: include/net/af_unix.h:68:33: note: expected 'const struct sock *' but argument is of type 'struct unix_sock *' static inline struct unix_sock *unix_sk(const struct sock *sk) ^ Cc: John Johansen <john.johansen@canonical.com> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Serge Hallyn authored
It is turned on by default, but can be turned off if admins prefer or, more importantly, if a security vulnerability is found. The intent is to use this as mitigation so long as Ubuntu is on the cutting edge of enablement for things like unprivileged filesystem mounting. (This patch is tweaked from the one currently still in Debian sid, which in turn came from the patch we had in saucy) Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> [bwh: Remove unneeded binary sysctl bits] Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
BugLink: http://bugs.launchpad.net/bugs/1526869Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Haren Myneni authored
BugLink: http://bugs.launchpad.net/bugs/1529666 NX842 coprocessor sets 3rd bit in CR register with XER[S0] which is nothing to do with NX request. Since this bit can be set with other valuable return status, mast this bit. One of other bits (INITIATED, BUSY or REJECTED) will be returned for any given NX request. Signed-off-by: Haren Myneni <haren@us.ibm.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> (cherry picked from linux-next commit 6333ed8f) Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Ignore: yes Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-
Tim Gardner authored
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-