Re: [PATCH v2] dgnc: Don't save boards in memory that have failed to initialize

From: Mark Hounschell
Date: Mon Mar 16 2015 - 13:18:42 EST


On 03/15/2015 08:07 AM, Mark Hounschell wrote:
On 03/14/2015 04:44 AM, Greg KH wrote:
On Fri, Mar 13, 2015 at 04:55:55PM -0400, Mark Hounschell wrote:
On 03/12/2015 12:14 PM, Giedrius StatkeviÄius wrote:
On 2015.03.12 12:08, Greg KH wrote:
On Mon, Mar 09, 2015 at 06:29:38PM +0200, Giedrius StatkeviÄius wrote:
Remove BOARD_FAILED and don't save dgnc_boards which failed to
initialize.

Assign the result of kzalloc() to brd in dgnc_found_board() and
only put
it in the dgnc_Board[] if it successfully initializes. Also, remove
BOARD_FAILED enum and all ifs that check for it. Finally, remove one
final place where state was set to BOARD_FAILED which was even
redundant
before this patch.

Signed-off-by: Giedrius StatkeviÄius
<giedrius.statkevicius@xxxxxxxxx>
---
v2: Remove "brd = dgnc_Board[dgnc_NumBoards];" line which I forgot
to do
in the first version

drivers/staging/dgnc/dgnc_driver.c | 20 ++------------------
drivers/staging/dgnc/dgnc_driver.h | 3 +--
drivers/staging/dgnc/dgnc_mgmt.c | 5 +----
drivers/staging/dgnc/dgnc_tty.c | 8 --------
4 files changed, 4 insertions(+), 32 deletions(-)

diff --git a/drivers/staging/dgnc/dgnc_driver.c
b/drivers/staging/dgnc/dgnc_driver.c
index fa1ee79..075727d 100644
--- a/drivers/staging/dgnc/dgnc_driver.c
+++ b/drivers/staging/dgnc/dgnc_driver.c
@@ -401,8 +401,7 @@ static int dgnc_found_board(struct pci_dev
*pdev, int id)
unsigned long flags;

/* get the board structure and prep it */
- dgnc_Board[dgnc_NumBoards] = kzalloc(sizeof(*brd), GFP_KERNEL);
- brd = dgnc_Board[dgnc_NumBoards];
+ brd = kzalloc(sizeof(*brd), GFP_KERNEL);

You've done a great job here, but...

Yeah, sorry...

I really want to see this whole "static list of boards/cards" go away.
There should not be any need for that in any in-kernel driver. Your
patch here is a sign that things are really wrong with this whole
static
array mess.

So could you do that instead? I don't want to take patches around
this
whole "board state" mess anymore, as it should all not be needed at
all.

If you need pointers on what needs to be done here, just let me know.

thanks,

greg k-h


I can try :) But my main concern is the lack of dgnc driver maintainers
activity and that I don't own the hardware this driver is written
for as
it's quite expensive (cheapest cards I've found start at 300$~) and I
can't afford it ATM. But I guess if I keep the patches small and
logical
everything will be okay.


I am on the maintainers list and actually have hardware. I have just
been so
swamped the last few months that I haven't been able to do ANYTHING
here.
Even work on the dgap driver that I was working on, I just haven't
had the
time. I can tell you that the dgnc driver does NOT work at all and
hasn't
worked since it was introduced into staging by Greg.

Really? It's always been broken? Why don't we just delete the thing?


Well, broken might not be the best word. I should have just said,
doesn't work for me.
It did work on a 3.4 kernel when I provided it to you. I have spent no
time as to why but will take a look on Monday.


The driver actually does work. It didn't work for me because the device entries were not as they used to be. So if you want to make a change you think needs testing, I can test it.
I only have a single card 8 port though.

Regards
Mark

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/