Patch Issues
Greetings Maintainers,
Today I build the below patch and am getting some rather odd build errors. I looked through the man pages and there were no clear answers about how to fix them.I will paste them below with the patch. Any option would be greatly appertained if someone has some time.
Thanks,
Nick
Build Warnings:drivers/mtd/inftlmount.c: In function ‘INFTL_formatblock’:drivers/mtd/inftlmount.c:428:13: error: invalid storage class for function ‘format_chain’
static void format_chain(struct INFTLrecord *inftl, unsigned int first_block)
^
drivers/mtd/inftlmount.c:428:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void format_chain(struct INFTLrecord *inftl, unsigned int first_block)
^drivers/mtd/inftlmount.c:781:1: error: expected declaration or statement at end of input
}
^drivers/mtd/inftlmount.c: At top level:drivers/mtd/inftlmount.c:336:12: warning: ‘check_free_sectors’ defined but not used [-Wunused-function]
static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address,
^
drivers/mtd/inftlmount.c: In function ‘INFTL_formatblock’:drivers/mtd/inftlmount.c:781:1: warning: control reaches end of non-void function [-Wreturn-type]
}
Patch:
Quoted 1 line
From
6b481c8f5030da2e9616bd038193d68340c0b5d0Mon Sep 17 00:00:00 2001
2 From: Nicholas Krause <[email protected]>
3 Date: Thu, 15 Jan 2015 20:10:37 -0500
4 Subject: [PATCH] mtd: Remove unneeded call to check_free_sectors in the
5 function,INFTL_formatblock
6
7 Removes unneeded call to check_free_sectors internally in the function,INFTL_formatblock. 8 This call is no longer needed due to us checking to see if erasing the block against the 9 structure pointer passed to the function,inftl internal variable state is equal to the
10 macro,MTD_ERASE_FAILED to see if the block has failed in being erased successfully.Due 11 to this we can remove the no longer needed check to check_free_sectors and comments 12 related to questioning the reason for it's use with the check against MTD_ERASE_FAILED 13 for inftl's state variable already checking for successfully erasing of the mtd block. 14
15 Signed-off-by: Nicholas Krause <[email protected]>
16 ---
17 drivers/mtd/inftlmount.c | 10 ----------
18 1 file changed, 10 deletions(-)
19
20 diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c
21 index 1388c8d..def5cea 100644
22 --- a/drivers/mtd/inftlmount.c
23 +++ b/drivers/mtd/inftlmount.c
24 @@ -367,7 +367,6 @@ static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address,
25 *
26 * Return: 0 when succeed, -1 on error.
27 *
28 - * ToDo: 1. Is it necessary to check_free_sector after erasing ??
29 */
30 int INFTL_formatblock(struct INFTLrecord *inftl, int block)
31 {
32 @@ -401,15 +400,6 @@ int INFTL_formatblock(struct INFTLrecord *inftl, int block)
33 goto fail;
34 }
35
36 - /*
37 - * Check the "freeness" of Erase Unit before updating metadata.
38 - * FixMe: is this check really necessary? Since we have check
39 - * the return code after the erase operation.
40 - */
41 - if (check_free_sectors(inftl, instr->addr, instr->len, 1) != 0)
42 - goto fail;
43 - }
44 -
45 uci.EraseMark = cpu_to_le16(ERASE_MARK);
46 uci.EraseMark1 = cpu_to_le16(ERASE_MARK);
47 uci.Reserved[0] = 0; 48 --
49 2.1.0
50
Hi Nick,
I'm not quite sure about if it is a correct modification. But,
Quoted 1 line · nick
drivers/mtd/inftlmount.c:336:12: warning: ‘check_free_sectors’ defined but not used [-Wunused-function]
check if this function is still called by other functions, if it is not, just remove it in your patch.
Quoted 46 lines
static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address,
^
drivers/mtd/inftlmount.c: In function ‘INFTL_formatblock’:drivers/mtd/inftlmount.c:781:1: warning: control reaches end of non-void function [-Wreturn-type]
}
Patch:
From6b481c8f5030da2e9616bd038193d68340c0b5d0Mon Sep 17 00:00:00 2001
2 From: Nicholas Krause <[email protected]>
3 Date: Thu, 15 Jan 2015 20:10:37 -0500
4 Subject: [PATCH] mtd: Remove unneeded call tocheck_free_sectorsin the
5 function,INFTL_formatblock
6
7 Removes unneeded call tocheck_free_sectorsinternally in the function,INFTL_formatblock. 8 This call is no longer needed due to us checking to see if erasing the block against the 9 structure pointer passed to the function,inftl internal variable state is equal to the
10 macro,MTD_ERASE_FAILED to see if the block has failed in being erased successfully.Due 11 to this we can remove the no longer needed check tocheck_free_sectorsand comments 12 related to questioning the reason for it's use with the check againstMTD_ERASE_FAILED13 for inftl's state variable already checking for successfully erasing of the mtd block. 14
15 Signed-off-by: Nicholas Krause <[email protected]>
16 ---17 drivers/mtd/inftlmount.c | 10 ---------- 18 1 file changed, 10 deletions(-) 19 20 diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c 21 index 1388c8d..def5cea 100644 22 --- a/drivers/mtd/inftlmount.c 23 +++ b/drivers/mtd/inftlmount.c 24 @@ -367,7 +367,6 @@ static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address, 25 * 26 * Return: 0 when succeed, -1 on error. 27 * 28 - * ToDo: 1. Is it necessary to check_free_sector after erasing ?? 29 */ 30 int INFTL_formatblock(struct INFTLrecord *inftl, int block) 31 { 32 @@ -401,15 +400,6 @@ int INFTL_formatblock(struct INFTLrecord *inftl, int block) 33 goto fail; 34 } 35 36 - /* 37 - * Check the "freeness" of Erase Unit before updating metadata. 38 - * FixMe: is this check really necessary? Since we have check 39 - * the return code after the erase operation. 40 - */
Quoted 3 lines
41 - if (
check_free_sectors(inftl, instr->addr, instr->len, 1)!= 0)
42 - goto fail;
43 - }
You should keep this '}'.
Quoted 12 lines
44 -
45 uci.EraseMark = cpu_to_le16(ERASE_MARK); 46 uci.EraseMark1 = cpu_to_le16(ERASE_MARK); 47 uci.Reserved[0] = 0;48 --
49 2.1.0
50______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
Hujuianyang,
Thanks for the reply. I will get around to this tomorrow. Nick
Quoted 76 lines · hujianyang
Hi Nick,
I'm not quite sure about if it is a correct modification. But,
Quoted 1 line · nick
drivers/mtd/inftlmount.c:336:12: warning: ‘check_free_sectors’ defined but not used [-Wunused-function]check if this function is still called by other functions, if it is not, just remove it in your patch.
Quoted 46 lines
static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address,
^
drivers/mtd/inftlmount.c: In function ‘INFTL_formatblock’:drivers/mtd/inftlmount.c:781:1: warning: control reaches end of non-void function [-Wreturn-type]
}
Patch:
From6b481c8f5030da2e9616bd038193d68340c0b5d0Mon Sep 17 00:00:00 2001
2 From: Nicholas Krause <[email protected]>
3 Date: Thu, 15 Jan 2015 20:10:37 -0500
4 Subject: [PATCH] mtd: Remove unneeded call tocheck_free_sectorsin the
5 function,INFTL_formatblock
6
7 Removes unneeded call tocheck_free_sectorsinternally in the function,INFTL_formatblock. 8 This call is no longer needed due to us checking to see if erasing the block against the 9 structure pointer passed to the function,inftl internal variable state is equal to the
10 macro,MTD_ERASE_FAILED to see if the block has failed in being erased successfully.Due 11 to this we can remove the no longer needed check tocheck_free_sectorsand comments 12 related to questioning the reason for it's use with the check againstMTD_ERASE_FAILED13 for inftl's state variable already checking for successfully erasing of the mtd block. 14
15 Signed-off-by: Nicholas Krause <[email protected]>
16 ---17 drivers/mtd/inftlmount.c | 10 ---------- 18 1 file changed, 10 deletions(-) 19 20 diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c 21 index 1388c8d..def5cea 100644 22 --- a/drivers/mtd/inftlmount.c 23 +++ b/drivers/mtd/inftlmount.c 24 @@ -367,7 +367,6 @@ static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address, 25 * 26 * Return: 0 when succeed, -1 on error. 27 * 28 - * ToDo: 1. Is it necessary to check_free_sector after erasing ?? 29 */ 30 int INFTL_formatblock(struct INFTLrecord *inftl, int block) 31 { 32 @@ -401,15 +400,6 @@ int INFTL_formatblock(struct INFTLrecord *inftl, int block) 33 goto fail; 34 } 35 36 - /* 37 - * Check the "freeness" of Erase Unit before updating metadata. 38 - * FixMe: is this check really necessary? Since we have check 39 - * the return code after the erase operation. 40 - */Quoted 3 lines
41 - if (
check_free_sectors(inftl, instr->addr, instr->len, 1)!= 0)
42 - goto fail;
43 - }You should keep this '}'.
Quoted 12 lines
44 -
45 uci.EraseMark = cpu_to_le16(ERASE_MARK); 46 uci.EraseMark1 = cpu_to_le16(ERASE_MARK); 47 uci.Reserved[0] = 0;48 --
49 2.1.0
50______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
Hujuianyang,
Also if I remove the function,check_free_sectors it gives me even more errors. I tried in a second patch as part of a series.
Nick
Quoted 81 lines · nick
Hujuianyang,
Thanks for the reply. I will get around to this tomorrow. NickQuoted 76 lines · hujianyang
Hi Nick,
I'm not quite sure about if it is a correct modification. But,
Quoted 1 line · nick
drivers/mtd/inftlmount.c:336:12: warning: ‘check_free_sectors’ defined but not used [-Wunused-function]check if this function is still called by other functions, if it is not, just remove it in your patch.
Quoted 46 lines
static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address,
^
drivers/mtd/inftlmount.c: In function ‘INFTL_formatblock’:drivers/mtd/inftlmount.c:781:1: warning: control reaches end of non-void function [-Wreturn-type]
}
Patch:
From6b481c8f5030da2e9616bd038193d68340c0b5d0Mon Sep 17 00:00:00 2001
2 From: Nicholas Krause <[email protected]>
3 Date: Thu, 15 Jan 2015 20:10:37 -0500
4 Subject: [PATCH] mtd: Remove unneeded call tocheck_free_sectorsin the
5 function,INFTL_formatblock
6
7 Removes unneeded call tocheck_free_sectorsinternally in the function,INFTL_formatblock. 8 This call is no longer needed due to us checking to see if erasing the block against the 9 structure pointer passed to the function,inftl internal variable state is equal to the
10 macro,MTD_ERASE_FAILED to see if the block has failed in being erased successfully.Due 11 to this we can remove the no longer needed check tocheck_free_sectorsand comments 12 related to questioning the reason for it's use with the check againstMTD_ERASE_FAILED13 for inftl's state variable already checking for successfully erasing of the mtd block. 14
15 Signed-off-by: Nicholas Krause <[email protected]>
16 ---17 drivers/mtd/inftlmount.c | 10 ---------- 18 1 file changed, 10 deletions(-) 19 20 diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c 21 index 1388c8d..def5cea 100644 22 --- a/drivers/mtd/inftlmount.c 23 +++ b/drivers/mtd/inftlmount.c 24 @@ -367,7 +367,6 @@ static int check_free_sectors(struct INFTLrecord *inftl, unsigned int address, 25 * 26 * Return: 0 when succeed, -1 on error. 27 * 28 - * ToDo: 1. Is it necessary to check_free_sector after erasing ?? 29 */ 30 int INFTL_formatblock(struct INFTLrecord *inftl, int block) 31 { 32 @@ -401,15 +400,6 @@ int INFTL_formatblock(struct INFTLrecord *inftl, int block) 33 goto fail; 34 } 35 36 - /* 37 - * Check the "freeness" of Erase Unit before updating metadata. 38 - * FixMe: is this check really necessary? Since we have check 39 - * the return code after the erase operation. 40 - */Quoted 3 lines
41 - if (
check_free_sectors(inftl, instr->addr, instr->len, 1)!= 0)
42 - goto fail;
43 - }You should keep this '}'.
Quoted 12 lines
44 -
45 uci.EraseMark = cpu_to_le16(ERASE_MARK); 46 uci.EraseMark1 = cpu_to_le16(ERASE_MARK); 47 uci.Reserved[0] = 0;48 --
49 2.1.0
50______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/