[PATCH] ath10k_htt_rx_amsdu_allowed(): use ath10k_dbg()

2017-07-19 Thread Gabriel C
Each time we get disconencted from AP we get flooded with messages like: ... ath10k_pci :03:00.0: no channel configured; ignoring frame(s)! ath10k_warn: 155 callbacks suppressed ... Use ath10k_dbg() here too. Signed-off-by: Gabriel

[PATCH] ath10k_htt_rx_amsdu_allowed(): use ath10k_dbg()

2017-07-19 Thread Gabriel Craciunescu
From: Gabriel Craciunescu Each time we get disconencted from AP we get flooded with messages like: ... ath10k_pci :03:00.0: no channel configured; ignoring frame(s)! ath10k_warn: 155 callbacks suppressed ... Use

[PATCH v1 2/6] mei: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. Cc: Tomas Winkler Cc: Guenter Roeck Cc: Samuel Ortiz

[PATCH v1 0/6] uuid: Convert rest users to new API

2017-07-19 Thread Andy Shevchenko
This series is converting the rest of the users of old UUID API to a new one and dropping UUID UAPI header away. Note, ABI is kept the same. User space should have not used those headers. We have libuuid and it likely would be extended to cover GUID operations. All patches have been compiled

[PATCH v1 3/6] staging: unisys: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. While here, re-indent couple of lines to increase readability. Cc: David Kershner Cc: Greg Kroah-Hartman

[PATCH v1 6/6] device property: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. Cc: "Rafael J. Wysocki" Cc: Mika Westerberg Cc: linux-a...@vger.kernel.org

[PATCH v1 4/6] vmbus: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. Cc: "K. Y. Srinivasan" Cc: Haiyang Zhang Cc: Stephen Hemminger

[PATCH v1 1/6] efi: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. Cc: Matt Fleming Cc: Ard Biesheuvel Signed-off-by: Andy Shevchenko

[PATCH 049/102] ath10k: explicitly request exclusive reset control

2017-07-19 Thread Philipp Zabel
Commit a53e35db70d1 ("reset: Ensure drivers are explicit when requesting reset lines") started to transition the reset control request API calls to explicitly state whether the driver needs exclusive or shared reset control behavior. Convert all drivers requesting exclusive resets to the explicit

Re: [PATCH] ath10k_htt_rx_amsdu_allowed(): use ath10k_dbg()

2017-07-19 Thread Gabriel C
On 19.07.2017 18:26, Joe Perches wrote: On Wed, 2017-07-19 at 17:37 +0200, Gabriel C wrote: Each time we get disconencted from AP we get flooded with messages like: ... ath10k_pci :03:00.0: no channel configured; ignoring frame(s)!

[PATCH v1 5/6] uuid: Kill uapi/uuid.h

2017-07-19 Thread Andy Shevchenko
There is no more users for uapi/uuid.h. Remove it for good. Anyone needs it in user space better to use libuuid. Signed-off-by: Andy Shevchenko --- include/linux/uuid.h | 20 +++- include/uapi/linux/uuid.h | 42

[PATCH] mwifiex: add tdls uapsd support module parameter

2017-07-19 Thread Xinming Hu
From: Xinming Hu Add module parameter to control tdls uapsd support, which is default disabled. Signed-off-by: Xinming Hu Signed-off-by: Cathy Luo --- drivers/net/wireless/marvell/mwifiex/init.c| 5 +

Re: [PATCH v2] iwlwifi: mvm: Fix a memory leak in an error handling path in 'iwl_mvm_sar_get_wgds_table()'

2017-07-19 Thread Luca Coelho
On Fri, 2017-07-14 at 12:06 +0200, Christophe JAILLET wrote: > We should free 'wgds.pointer' here as done a few lines above in another > error handling path. > It was allocated within 'acpi_evaluate_object()'. > > Signed-off-by: Christophe JAILLET > --- > v2:

Re: [PATCH] iwlwifi: pcie: Fix error code in iwl_trans_pcie_alloc()

2017-07-19 Thread Coelho, Luciano
Hi Dan, On Wed, 2017-07-12 at 10:53 +0300, Dan Carpenter wrote: > We accidentally forgot to propogate the error code on this path. It > means we return ERR_PTR(0) which is NULL and it results in a NULL > dereference in the caller. > > Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration

Re: [PATCH] iwlwifi: pcie: Fix error code in iwl_trans_pcie_alloc()

2017-07-19 Thread Coelho, Luciano
On Wed, 2017-07-19 at 11:21 +0300, Dan Carpenter wrote: > Oops, heh, sorry. I switched computers so I first one wasn't in my > outbox. No worries, better safe than sorry. :) -- Luca.

Re: brcmfmac bus level addressing issues.

2017-07-19 Thread Ian Molton
On 19/07/17 09:39, Hante Meuleman wrote: > Dear Ian, Hi, > Stuff like " The PCIe code sets the window *regardless* of wether its > changed, on *every single* write." Is totally incorrect. Sure if you limit > yourself to the function brcmf_pcie_buscore_{read,write}32(). But you > talked about

Re: [PATCH] iwlwifi: pcie: Fix error code in iwl_trans_pcie_alloc()

2017-07-19 Thread Dan Carpenter
Oops, heh, sorry. I switched computers so I first one wasn't in my outbox. regards, dan carpenter

RE: brcmfmac bus level addressing issues.

2017-07-19 Thread Hante Meuleman
Dear Ian, Yes, I was intentionally provocative. Sure, you made no personal attacks, but this is how you entered my space; I've been working (partrly) for the last 5 years on brcmfmac and to be honest, I don't work much on it anymore. But here it is; my screen filled with mails from you with a

Re: brcmfmac bus level addressing issues.

2017-07-19 Thread Arend van Spriel
On 19-07-17 00:45, Ian Molton wrote: [...] > Fair enough - I guess now that its in the kernel it needs fixing before > 4.13 - but I would argue that no new features should go into the driver > for the short term once that is done. Lets give it a good spring clean. > > I am, actually, able to

[PATCH 19/34] brcmfmac: Get rid of chip_priv and core_priv structs

2017-07-19 Thread Ian Molton
There is zero need to keep these structures separate, they are *always* allocated together. All they do is obfuscate the code, whilst offering zero real gain. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/chip.c| 384 +

[PATCH 10/34] brcmfmac: Rename bcmerror to err

2017-07-19 Thread Ian Molton
Trivial cleanup of nasty variable name Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c

[PATCH 06/34] brcmfmac: Remove bandaid for SleepCSR

2017-07-19 Thread Ian Molton
Register access code is not the place for band-aid fixes like this. If this is a genuine problem, it should be fixed further up in the driver stack. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 26 -- 1 file changed,

[PATCH 01/34] brcmfmac: Fix parameter order in brcmf_sdiod_f0_writeb()

2017-07-19 Thread Ian Molton
All the other IO functions are the other way round in this driver. Make this one match. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git

[PATCH 05/34] brcmfmac: Remove dead IO code

2017-07-19 Thread Ian Molton
The value passed to brcmf_sdiod_addrprep() is *always* 4 remove this parameter and the unused code to handle it. Signed-off-by: Ian Molton --- .../net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 18 -- 1 file changed, 8 insertions(+), 10

[PATCH 02/34] brcmfmac: Register sizes on hardware are not dependent on compiler types

2017-07-19 Thread Ian Molton
The 4 IO functions in this patch are incorrect as they use compiler types to determine how many bytes to send to the hardware. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 22 +++--- 1 file changed, 11 insertions(+), 11

[PATCH 22/34] brcmfmac: Rename axi functions for clarity.

2017-07-19 Thread Ian Molton
These functions are poorly named. for the sake of one character, correct this. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git

[PATCH 04/34] brcmfmac: Clean up brcmf_sdiod_set_sbaddr_window()

2017-07-19 Thread Ian Molton
This function sets the address of the IO window used for SDIO accesses onto the backplane of the chip. It currently uses 3 separate masks despite the full mask being defined in the code already. Remove the separate masks and clean up. Signed-off-by: Ian Molton ---

[PATCH 09/34] brcmfmac: Remove noisy debugging.

2017-07-19 Thread Ian Molton
If you need debugging this low level, you're doing something wrong. Remove these noisy debug statements so the code is more readable. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 7 +-- 1 file changed, 1 insertion(+), 6

[PATCH 17/34] brcmfmac: Remove unused macro.

2017-07-19 Thread Ian Molton
This macro is used exactly nowhere in the code. Delete it. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

[PATCH v3] ath10k: ath10k_htt_rx_amsdu_allowed() use ath10k_dbg()

2017-07-19 Thread Gabriel Craciunescu
Each time we get disconencted from AP we get flooded with messages like: ... ath10k_pci :03:00.0: no channel configured; ignoring frame(s)! ath10k_warn: 155 callbacks suppressed ... Use ath10k_dbg() here too Signed-off-by: Gabriel Craciunescu ---

Re: [PATCH v1 6/6] device property: Switch to use new generic UUID API

2017-07-19 Thread Rafael J. Wysocki
On Wed, Jul 19, 2017 at 8:28 PM, Andy Shevchenko wrote: > There are new types and helpers that are supposed to be used in new code. > > As a preparation to get rid of legacy types and API functions do > the conversion here. Please talk to Mika about this one.

Re: [PATCH] mwifiex: add tdls uapsd support module parameter

2017-07-19 Thread Brian Norris
On Wed, Jul 19, 2017 at 06:36:27AM +, Xinming Hu wrote: > From: Xinming Hu > > Add module parameter to control tdls uapsd support, which is > default disabled. Why default disabled, when it looks like it used to be on by default?

RE: [PATCH v1 4/6] vmbus: Switch to use new generic UUID API

2017-07-19 Thread Haiyang Zhang
> -Original Message- > From: Andy Shevchenko [mailto:andriy.shevche...@linux.intel.com] > Sent: Wednesday, July 19, 2017 2:29 PM > To: linux-a...@vger.kernel.org; de...@linuxdriverproject.org; > sparmaintai...@unisys.com; de...@driverdev.osuosl.org; linux- > wirel...@vger.kernel.org;

[PATCH 24/34] brcmfmac: Rename chip.ctx -> chip.bus_priv

2017-07-19 Thread Ian Molton
This driver uses the label ctx like its going out of fashion. Lets rename this usage of it so that its easier to see whats going on. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/chip.c| 24 +++---

[PATCH 31/34] brcmfmac: Remove func0 from function array

2017-07-19 Thread Ian Molton
Linux doesnt pass you func0 as a function when probing - instead providing specific access functions to read/write it. This prepares for a patch to remove the actual array entry itself. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c

[PATCH 28/34] brcmfmac: Rename buscore->core for consistency

2017-07-19 Thread Ian Molton
Avoid confusion with unrelated _buscore labels. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

[PATCH 30/34] brcmfmac: Correctly handle accesses to SDIO func0

2017-07-19 Thread Ian Molton
Rather than workaround the restrictions on func0 addressing in the driver, set MMC_QUIRK_LENIENT_FN0 Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 4 ++-- 2 files

[PATCH 34/34] brcmfmac: Reduce the noise from repeatedly dereferencing common pointers

2017-07-19 Thread Ian Molton
This introduces no functional changes, but makes the code drastically more readable, reducing the amount of dereferencing performed inside functions throughout the SDIO core. For example, reduce: sdio_release_host(bus->sdiodev->func1); to: sdio_release_host(func1); Fixup a few

[PATCH 26/34] brcmfmac: General cleaning up. whitespace and comments fix.

2017-07-19 Thread Ian Molton
Tidy code, fix whitespace, remove useless debug code. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c| 24 ++ 1 file changed, 15 insertions(+), 9 deletions(-) diff --git

[PATCH 25/34] brcmfmac: Remove repeated calls to brcmf_chip_get_core()

2017-07-19 Thread Ian Molton
There is no need to repeatdly call brcmf_chip_get_core(), which traverses a list of cores every time its called (including during register access code!). Call it once, and store a pointer to the core structure. The existing code does nto keep track of users of the cores anyway, and even so, this

[PATCH 21/34] brcmfmac: Simplify chip probe routine

2017-07-19 Thread Ian Molton
* Renamed routine in line with kernel convention. * Improved handling of chips that cannot autoprobe Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/chip.c| 130 + 1 file changed, 84 insertions(+), 46 deletions(-) diff --git

[PATCH 15/34] brcmfamc: remove unnecessary call to brcmf_sdiod_set_backplane_window()

2017-07-19 Thread Ian Molton
All functions that might require the window address changing call brcmf_sdiod_set_backplane_window() prior to access. Thus resetting the window is not required. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 5 - 1 file

[PATCH 08/34] brcmfmac: Fix uninitialised variable

2017-07-19 Thread Ian Molton
Unlikely to be a problem, but brcmf_sdiod_regrb() is not symmetric with brcmf_sdiod_regrl() in this regard. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[PATCH 03/34] brcmfmac: Split brcmf_sdiod_regrw_helper() up.

2017-07-19 Thread Ian Molton
This large function is concealing a LOT of obscure logic about how the hardware functions. Time to split it up. This first patch splits the function into two pieces - read and write, doing away with the rw flag in the process. Signed-off-by: Ian Molton ---

[PATCH 07/34] brcmfmac: Remove brcmf_sdiod_request_data()

2017-07-19 Thread Ian Molton
This function is obfuscating how IO works on this chip. Remove it and push its logic into brcmf_sdiod_reg_{read,write}(). Handling of -ENOMEDIUM is altered, but as that's pretty much broken anyway we can ignore that. Signed-off-by: Ian Molton ---

[PATCH 29/34] brcmfmac: stabilise the value of ->sbwad in use for some xfer routines.

2017-07-19 Thread Ian Molton
The IO functions operate within the Chipcommon IO window. Explicitly set this, rather than relying on the last initialisation IO access to leave it set to the right value by chance. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 8

[PATCH 16/34] brcmfmac: Cleanup offsetof()

2017-07-19 Thread Ian Molton
Create a macro to make the code a bit more readable, whilst we're stuck with using struct element offsets as register offsets. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c| 35 +- 1 file changed, 14 insertions(+), 21

[PATCH 33/34] brcmfmac: Remove array of functions

2017-07-19 Thread Ian Molton
Replace the array of functions with a pair of pointers to the relevant functions. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 115 +++ .../wireless/broadcom/brcm80211/brcmfmac/sdio.c| 164 ++---

[PATCH 13/34] brcmfmac: Tidy register definitions a little

2017-07-19 Thread Ian Molton
Trivial tidy of register definitions. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h

[PATCH 27/34] brcmfmac: Remove {r,w}_sdreg32

2017-07-19 Thread Ian Molton
Remove yet another IO function from the code and replace with one that already exists. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/sdio.c| 88 +++--- 1 file changed, 42 insertions(+), 46 deletions(-) diff --git

[PATCH 18/34] brcmfmac: Rename SOC_AI to SOC_AXI

2017-07-19 Thread Ian Molton
This #define is poorly named. Correct it. At the same time, convert the if..elseif...else it is used in to a switch for clarity. Signed-off-by: Ian Molton --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 11 +++ 1 file changed, 7 insertions(+), 4

[PATCH 32/34] brcmfmac: Replace function index with function pointer

2017-07-19 Thread Ian Molton
In preparation for removing the function array, remove all code that refers to function by index and replace with pointers to the function itself. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 69 +++---

Re: brcmfmac bus level addressing issues.

2017-07-19 Thread Ian Molton
On 19/07/17 12:47, Arend van Spriel wrote: > On 19-07-17 00:45, Ian Molton wrote: >> (as it stands, back to back wpasuplpicant runs make it keel over, as >> does module unload and reload). > > It is good to get such feedback. We should get in details about this. I'll reply with a couple of logs

Re: [PATCH] ath10k_htt_rx_amsdu_allowed(): use ath10k_dbg()

2017-07-19 Thread Joe Perches
On Wed, 2017-07-19 at 17:37 +0200, Gabriel C wrote: > Each time we get disconencted from AP we get flooded with messages > like: > > ... > ath10k_pci :03:00.0: no channel configured; ignoring frame(s)! > > ath10k_warn: 155 callbacks suppressed

Re: [PATCH] ath10k_htt_rx_amsdu_allowed(): use ath10k_dbg()

2017-07-19 Thread Ryan Hsu
On 07/19/2017 11:24 AM, Gabriel Craciunescu wrote: To make it consistent, maybe rename the patch title starting with ath10k: > From: Gabriel Craciunescu > > Each time we get disconencted from AP we get flooded with messages like: > > ... > ath10k_pci

PATCH v3 brcmfmac driver cleanup

2017-07-19 Thread Ian Molton
Hi all, Please find the 3rd revision of my cleanup patchset for brcmfmac. I've done some further cleanup and it now handles SDIO the ay the MMC subsystem was designed to. I've also taken the liberty of greatly reducing the amount of indirection used thoughout the SDIO code, which I think has

[PATCH 14/34] brcmfmac: Remove brcmf_sdiod_addrprep()

2017-07-19 Thread Ian Molton
This function has become trivial enough that it may as well be pushed into its callers, which has the side-benefit of clarifying what's going on. Remove it, and rename brcmf_sdiod_set_sbaddr_window() to brcmf_sdiod_set_backplane_window() as it's easier to understand. Signed-off-by: Ian Molton

[PATCH 11/34] brcmfmac: Split brcmf_sdiod_buffrw function up.

2017-07-19 Thread Ian Molton
This function needs to be split up into separate read / write variants for clarity. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 64 +++--- 1 file changed, 45 insertions(+), 19 deletions(-) diff --git

[PATCH 23/34] brcmfmac: HUGE cleanup of IO access functions.

2017-07-19 Thread Ian Molton
Most of the core IO functions are called via a long train of pointers. Introduce brcmf_readl(), brcmf_writel(), brcmf_writelp(), brcmf_clear_bits(), and brcmf_set_bits_post() in an attempt to deal with this. These brcmf_writelp() and brcmf_set_bits_post() issue posted writes. Signed-off-by: Ian

[PATCH 12/34] brcmfmac: Replace old IO functions with simpler ones.

2017-07-19 Thread Ian Molton
Primarily this patch removes: brcmf_sdiod_f0_writeb() brcmf_sdiod_reg_write() brcmf_sdiod_reg_read() Since we no longer use the quirky method of deciding which function to address via the address being accessed, take the opportunity to rename some IO functions more in line with common kernel

[PATCH 20/34] brcmfmac: Whitespace patch

2017-07-19 Thread Ian Molton
Improve legibility / conform to kernel coding style. Signed-off-by: Ian Molton --- .../wireless/broadcom/brcm80211/brcmfmac/chip.c| 47 ++ 1 file changed, 47 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c

Re: [PATCH v1 4/6] vmbus: Switch to use new generic UUID API

2017-07-19 Thread Andy Shevchenko
On Wed, Jul 19, 2017 at 11:18 PM, Haiyang Zhang wrote: >> struct hv_fcopy_hdr { >> __u32 operation; >> - uuid_le service_id0; /* currently unused */ >> - uuid_le service_id1; /* currently unused */ >> + __u8 service_id0[16]; /* currently unused */ >> +

Re: [PATCH] wireless: airo: remove unnecessary static in writerids()

2017-07-19 Thread David Miller
From: "Gustavo A. R. Silva" Date: Tue, 18 Jul 2017 15:37:11 -0500 > Remove unnecessary static on local function pointer _writer_. > Such pointer is initialized before being used, on every > execution path throughout the function. The static has no > benefit and, removing

Re: [PATCH] rtlwifi: remove useless code

2017-07-19 Thread David Miller
From: "Gustavo A. R. Silva" Date: Tue, 18 Jul 2017 15:41:06 -0500 > Remove useless local variables last_read_point and last_txw_point and > the code related. > > Signed-off-by: Gustavo A. R. Silva Applied.

Re: ath10k_htt_rx_amsdu_allowed() noise

2017-07-19 Thread Gabriel C
On 18.07.2017 09:14, Ryan Hsu wrote: On 07/16/2017 03:56 PM, Gabriel C wrote: Can ath10k_warn() be ath10k_dbg() there ? Maybe this ? Looks good to me. From d4138d936635ca7b69ed7f7b0cda4914f0f07917 Mon Sep 17 00:00:00 2001 From: Gabriel Craciunescu Date: Mon, 17