linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
@ 2023-08-03 12:20 Dan Carpenter
  2023-08-04 16:45 ` Miquel Raynal
  0 siblings, 1 reply; 14+ messages in thread
From: Dan Carpenter @ 2023-08-03 12:20 UTC (permalink / raw)
  To: oe-kbuild, Md Sadre Alam
  Cc: lkp, oe-kbuild-all, Linux Memory Management List, Miquel Raynal,
	Sricharan Ramabadhran

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   fb4327106e5250ee360d0d8b056c1eef7eeb9a98
commit: 89550beb098e04b951df079483fb064eafc0e5fa [1937/6910] mtd: rawnand: qcom: Implement exec_op()
config: riscv-randconfig-m031-20230730 (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202308032022.SnXkKyFs-lkp@intel.com/

New smatch warnings:
drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
drivers/mtd/nand/raw/qcom_nandc.c:3369 qcom_check_op() warn: was && intended here instead of ||?

Old smatch warnings:
drivers/mtd/nand/raw/qcom_nandc.c:3076 qcom_read_status_exec() warn: inconsistent indenting

vim +/ret +2941 drivers/mtd/nand/raw/qcom_nandc.c

89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2909  static int qcom_op_cmd_mapping(struct qcom_nand_controller *nandc, u8 cmd,
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2910  			       struct qcom_op *q_op)
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2911  {
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2912  	int ret;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2913  
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2914  	switch (cmd) {
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2915  	case NAND_CMD_RESET:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2916  		ret = OP_RESET_DEVICE;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2917  		break;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2918  	case NAND_CMD_READID:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2919  		ret = OP_FETCH_ID;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2920  		break;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2921  	case NAND_CMD_PARAM:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2922  		if (nandc->props->qpic_v2)
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2923  			ret = OP_PAGE_READ_ONFI_READ;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2924  		else
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2925  			ret = OP_PAGE_READ;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2926  		break;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2927  	case NAND_CMD_ERASE1:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2928  	case NAND_CMD_ERASE2:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2929  		ret = OP_BLOCK_ERASE;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2930  		break;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2931  	case NAND_CMD_STATUS:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2932  		ret = OP_CHECK_STATUS;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2933  		break;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2934  	case NAND_CMD_PAGEPROG:
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2935  		ret = OP_PROGRAM_PAGE;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2936  		q_op->flag = OP_PROGRAM_PAGE;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2937  		nandc->exec_opwrite = true;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2938  		break;

No default case.  I'm more concerned about the && vs || warning, but
the zero day bot doesn't include that code into the email.

89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2939  	}
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2940  
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10 @2941  	return ret;
89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2942  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-03 12:20 [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret' Dan Carpenter
@ 2023-08-04 16:45 ` Miquel Raynal
  2023-08-04 16:52   ` Dan Carpenter
  0 siblings, 1 reply; 14+ messages in thread
From: Miquel Raynal @ 2023-08-04 16:45 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List, Sricharan Ramabadhran,
	Manivannan Sadhasivam

Hi Sadre, Sricharan & Manivannan,

A couple of questions for you below.

dan.carpenter@linaro.org wrote on Thu, 3 Aug 2023 15:20:56 +0300:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   fb4327106e5250ee360d0d8b056c1eef7eeb9a98
> commit: 89550beb098e04b951df079483fb064eafc0e5fa [1937/6910] mtd: rawnand: qcom: Implement exec_op()
> config: riscv-randconfig-m031-20230730 (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 12.3.0
> reproduce: (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202308032022.SnXkKyFs-lkp@intel.com/
> 
> New smatch warnings:
> drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
> drivers/mtd/nand/raw/qcom_nandc.c:3369 qcom_check_op() warn: was && intended here instead of ||?
> 
> Old smatch warnings:
> drivers/mtd/nand/raw/qcom_nandc.c:3076 qcom_read_status_exec() warn: inconsistent indenting
> 
> vim +/ret +2941 drivers/mtd/nand/raw/qcom_nandc.c
> 
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2909  static int qcom_op_cmd_mapping(struct qcom_nand_controller *nandc, u8 cmd,
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2910  			       struct qcom_op *q_op)
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2911  {
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2912  	int ret;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2913  
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2914  	switch (cmd) {
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2915  	case NAND_CMD_RESET:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2916  		ret = OP_RESET_DEVICE;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2917  		break;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2918  	case NAND_CMD_READID:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2919  		ret = OP_FETCH_ID;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2920  		break;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2921  	case NAND_CMD_PARAM:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2922  		if (nandc->props->qpic_v2)
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2923  			ret = OP_PAGE_READ_ONFI_READ;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2924  		else
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2925  			ret = OP_PAGE_READ;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2926  		break;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2927  	case NAND_CMD_ERASE1:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2928  	case NAND_CMD_ERASE2:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2929  		ret = OP_BLOCK_ERASE;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2930  		break;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2931  	case NAND_CMD_STATUS:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2932  		ret = OP_CHECK_STATUS;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2933  		break;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2934  	case NAND_CMD_PAGEPROG:
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2935  		ret = OP_PROGRAM_PAGE;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2936  		q_op->flag = OP_PROGRAM_PAGE;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2937  		nandc->exec_opwrite = true;
> 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2938  		break;
> 
> No default case.  I'm more concerned about the && vs || warning, but
> the zero day bot doesn't include that code into the email.

The default case here is in theory not possible, as long as
qcom_check_op() is properly implemented. We should however silence the
warning by handling it. Maybe a WARN_ON_ONCE() + ret = <anything that
will produce an error when executing the command> would work.

However I doubt the following piece of code has been successfully
tested:

        for (op_id = 0; op_id < op->ninstrs; op_id++) {
                instr = &op->instrs[op_id];

                switch (instr->type) {
                case NAND_OP_CMD_INSTR:
                        if (instr->ctx.cmd.opcode != NAND_CMD_RESET ||
                            instr->ctx.cmd.opcode != NAND_CMD_READID ||
                            instr->ctx.cmd.opcode != NAND_CMD_PARAM ||
                            instr->ctx.cmd.opcode != NAND_CMD_ERASE1 ||
                            instr->ctx.cmd.opcode != NAND_CMD_ERASE2 ||
                            instr->ctx.cmd.opcode != NAND_CMD_STATUS ||
                            instr->ctx.cmd.opcode != NAND_CMD_PAGEPROG)
                                return -ENOTSUPP;
                        break;

The || should be &&, otherwise it cannot work, or am I missing
something?

Thanks,
Miquèl


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-04 16:45 ` Miquel Raynal
@ 2023-08-04 16:52   ` Dan Carpenter
  2023-08-04 17:07     ` Miquel Raynal
  0 siblings, 1 reply; 14+ messages in thread
From: Dan Carpenter @ 2023-08-04 16:52 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List, Sricharan Ramabadhran,
	Manivannan Sadhasivam

On Fri, Aug 04, 2023 at 06:45:50PM +0200, Miquel Raynal wrote:
> Hi Sadre, Sricharan & Manivannan,
> 
> A couple of questions for you below.
> 
> dan.carpenter@linaro.org wrote on Thu, 3 Aug 2023 15:20:56 +0300:
> 
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head:   fb4327106e5250ee360d0d8b056c1eef7eeb9a98
> > commit: 89550beb098e04b951df079483fb064eafc0e5fa [1937/6910] mtd: rawnand: qcom: Implement exec_op()
> > config: riscv-randconfig-m031-20230730 (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/config)
> > compiler: riscv64-linux-gcc (GCC) 12.3.0
> > reproduce: (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/reproduce)
> > 
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> > | Closes: https://lore.kernel.org/r/202308032022.SnXkKyFs-lkp@intel.com/
> > 
> > New smatch warnings:
> > drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
> > drivers/mtd/nand/raw/qcom_nandc.c:3369 qcom_check_op() warn: was && intended here instead of ||?
> > 
> > Old smatch warnings:
> > drivers/mtd/nand/raw/qcom_nandc.c:3076 qcom_read_status_exec() warn: inconsistent indenting
> > 
> > vim +/ret +2941 drivers/mtd/nand/raw/qcom_nandc.c
> > 
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2909  static int qcom_op_cmd_mapping(struct qcom_nand_controller *nandc, u8 cmd,
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2910  			       struct qcom_op *q_op)
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2911  {
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2912  	int ret;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2913  
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2914  	switch (cmd) {
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2915  	case NAND_CMD_RESET:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2916  		ret = OP_RESET_DEVICE;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2917  		break;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2918  	case NAND_CMD_READID:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2919  		ret = OP_FETCH_ID;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2920  		break;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2921  	case NAND_CMD_PARAM:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2922  		if (nandc->props->qpic_v2)
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2923  			ret = OP_PAGE_READ_ONFI_READ;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2924  		else
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2925  			ret = OP_PAGE_READ;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2926  		break;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2927  	case NAND_CMD_ERASE1:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2928  	case NAND_CMD_ERASE2:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2929  		ret = OP_BLOCK_ERASE;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2930  		break;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2931  	case NAND_CMD_STATUS:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2932  		ret = OP_CHECK_STATUS;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2933  		break;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2934  	case NAND_CMD_PAGEPROG:
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2935  		ret = OP_PROGRAM_PAGE;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2936  		q_op->flag = OP_PROGRAM_PAGE;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2937  		nandc->exec_opwrite = true;
> > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2938  		break;
> > 
> > No default case.  I'm more concerned about the && vs || warning, but
> > the zero day bot doesn't include that code into the email.
> 
> The default case here is in theory not possible, as long as
> qcom_check_op() is properly implemented. We should however silence the
> warning by handling it. Maybe a WARN_ON_ONCE() + ret = <anything that
> will produce an error when executing the command> would work.
> 

The kbuild-bot runs without the cross function database so it has a lot
of false positives that you wouldn't see if you had the DB.  (There
isn't really a way to build with the cross function DB.  It takes way
way way too long.  Also it sometimes finds bug which are complicated to
explain or to assign blame for in an automated way).  But these false
positives are frustrating to me.

In real life, GCC is going to automatically initialize stack variables
to zero on production systems.

> However I doubt the following piece of code has been successfully
> tested:
> 
>         for (op_id = 0; op_id < op->ninstrs; op_id++) {
>                 instr = &op->instrs[op_id];
> 
>                 switch (instr->type) {
>                 case NAND_OP_CMD_INSTR:
>                         if (instr->ctx.cmd.opcode != NAND_CMD_RESET ||
>                             instr->ctx.cmd.opcode != NAND_CMD_READID ||
>                             instr->ctx.cmd.opcode != NAND_CMD_PARAM ||
>                             instr->ctx.cmd.opcode != NAND_CMD_ERASE1 ||
>                             instr->ctx.cmd.opcode != NAND_CMD_ERASE2 ||
>                             instr->ctx.cmd.opcode != NAND_CMD_STATUS ||
>                             instr->ctx.cmd.opcode != NAND_CMD_PAGEPROG)
>                                 return -ENOTSUPP;
>                         break;
> 
> The || should be &&, otherwise it cannot work, or am I missing
> something?

Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
always returns -ENOTSUPP.

regards,
dan carpenter



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-04 16:52   ` Dan Carpenter
@ 2023-08-04 17:07     ` Miquel Raynal
  2023-08-05  6:55       ` Manivannan Sadhasivam
  0 siblings, 1 reply; 14+ messages in thread
From: Miquel Raynal @ 2023-08-04 17:07 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List, Sricharan Ramabadhran,
	Manivannan Sadhasivam

Hi Dan,

dan.carpenter@linaro.org wrote on Fri, 4 Aug 2023 19:52:50 +0300:

> On Fri, Aug 04, 2023 at 06:45:50PM +0200, Miquel Raynal wrote:
> > Hi Sadre, Sricharan & Manivannan,
> > 
> > A couple of questions for you below.
> > 
> > dan.carpenter@linaro.org wrote on Thu, 3 Aug 2023 15:20:56 +0300:
> >   
> > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > > head:   fb4327106e5250ee360d0d8b056c1eef7eeb9a98
> > > commit: 89550beb098e04b951df079483fb064eafc0e5fa [1937/6910] mtd: rawnand: qcom: Implement exec_op()
> > > config: riscv-randconfig-m031-20230730 (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/config)
> > > compiler: riscv64-linux-gcc (GCC) 12.3.0
> > > reproduce: (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/reproduce)
> > > 
> > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > the same patch/commit), kindly add following tags
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> > > | Closes: https://lore.kernel.org/r/202308032022.SnXkKyFs-lkp@intel.com/
> > > 
> > > New smatch warnings:
> > > drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
> > > drivers/mtd/nand/raw/qcom_nandc.c:3369 qcom_check_op() warn: was && intended here instead of ||?
> > > 
> > > Old smatch warnings:
> > > drivers/mtd/nand/raw/qcom_nandc.c:3076 qcom_read_status_exec() warn: inconsistent indenting
> > > 
> > > vim +/ret +2941 drivers/mtd/nand/raw/qcom_nandc.c
> > > 
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2909  static int qcom_op_cmd_mapping(struct qcom_nand_controller *nandc, u8 cmd,
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2910  			       struct qcom_op *q_op)
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2911  {
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2912  	int ret;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2913  
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2914  	switch (cmd) {
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2915  	case NAND_CMD_RESET:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2916  		ret = OP_RESET_DEVICE;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2917  		break;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2918  	case NAND_CMD_READID:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2919  		ret = OP_FETCH_ID;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2920  		break;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2921  	case NAND_CMD_PARAM:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2922  		if (nandc->props->qpic_v2)
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2923  			ret = OP_PAGE_READ_ONFI_READ;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2924  		else
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2925  			ret = OP_PAGE_READ;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2926  		break;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2927  	case NAND_CMD_ERASE1:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2928  	case NAND_CMD_ERASE2:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2929  		ret = OP_BLOCK_ERASE;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2930  		break;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2931  	case NAND_CMD_STATUS:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2932  		ret = OP_CHECK_STATUS;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2933  		break;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2934  	case NAND_CMD_PAGEPROG:
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2935  		ret = OP_PROGRAM_PAGE;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2936  		q_op->flag = OP_PROGRAM_PAGE;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2937  		nandc->exec_opwrite = true;
> > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2938  		break;
> > > 
> > > No default case.  I'm more concerned about the && vs || warning, but
> > > the zero day bot doesn't include that code into the email.  
> > 
> > The default case here is in theory not possible, as long as
> > qcom_check_op() is properly implemented. We should however silence the
> > warning by handling it. Maybe a WARN_ON_ONCE() + ret = <anything that
> > will produce an error when executing the command> would work.
> >   
> 
> The kbuild-bot runs without the cross function database so it has a lot
> of false positives that you wouldn't see if you had the DB.  (There
> isn't really a way to build with the cross function DB.  It takes way
> way way too long.  Also it sometimes finds bug which are complicated to
> explain or to assign blame for in an automated way).  But these false
> positives are frustrating to me.

I understand.

> In real life, GCC is going to automatically initialize stack variables
> to zero on production systems.

Well, we must silence this by setting reg in all cases, but here the
variable is badly named, it should be s/ret/cmd/. That's why, if we
silence it properly, I would go for a runtime warning if we ever
encounter the situation because this is a purely software bug.

> > However I doubt the following piece of code has been successfully
> > tested:
> > 
> >         for (op_id = 0; op_id < op->ninstrs; op_id++) {
> >                 instr = &op->instrs[op_id];
> > 
> >                 switch (instr->type) {
> >                 case NAND_OP_CMD_INSTR:
> >                         if (instr->ctx.cmd.opcode != NAND_CMD_RESET ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_READID ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_PARAM ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_ERASE1 ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_ERASE2 ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_STATUS ||
> >                             instr->ctx.cmd.opcode != NAND_CMD_PAGEPROG)
> >                                 return -ENOTSUPP;
> >                         break;
> > 
> > The || should be &&, otherwise it cannot work, or am I missing
> > something?  
> 
> Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
> always returns -ENOTSUPP.
> 
> regards,
> dan carpenter
> 


Thanks,
Miquèl


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-04 17:07     ` Miquel Raynal
@ 2023-08-05  6:55       ` Manivannan Sadhasivam
  2023-08-06  7:58         ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Manivannan Sadhasivam @ 2023-08-05  6:55 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: Dan Carpenter, oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List, Sricharan Ramabadhran

On Fri, Aug 04, 2023 at 07:07:50PM +0200, Miquel Raynal wrote:
> Hi Dan,
> 
> dan.carpenter@linaro.org wrote on Fri, 4 Aug 2023 19:52:50 +0300:
> 
> > On Fri, Aug 04, 2023 at 06:45:50PM +0200, Miquel Raynal wrote:
> > > Hi Sadre, Sricharan & Manivannan,
> > > 
> > > A couple of questions for you below.
> > > 
> > > dan.carpenter@linaro.org wrote on Thu, 3 Aug 2023 15:20:56 +0300:
> > >   
> > > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > > > head:   fb4327106e5250ee360d0d8b056c1eef7eeb9a98
> > > > commit: 89550beb098e04b951df079483fb064eafc0e5fa [1937/6910] mtd: rawnand: qcom: Implement exec_op()
> > > > config: riscv-randconfig-m031-20230730 (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/config)
> > > > compiler: riscv64-linux-gcc (GCC) 12.3.0
> > > > reproduce: (https://download.01.org/0day-ci/archive/20230803/202308032022.SnXkKyFs-lkp@intel.com/reproduce)
> > > > 
> > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > > the same patch/commit), kindly add following tags
> > > > | Reported-by: kernel test robot <lkp@intel.com>
> > > > | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> > > > | Closes: https://lore.kernel.org/r/202308032022.SnXkKyFs-lkp@intel.com/
> > > > 
> > > > New smatch warnings:
> > > > drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
> > > > drivers/mtd/nand/raw/qcom_nandc.c:3369 qcom_check_op() warn: was && intended here instead of ||?
> > > > 
> > > > Old smatch warnings:
> > > > drivers/mtd/nand/raw/qcom_nandc.c:3076 qcom_read_status_exec() warn: inconsistent indenting
> > > > 
> > > > vim +/ret +2941 drivers/mtd/nand/raw/qcom_nandc.c
> > > > 
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2909  static int qcom_op_cmd_mapping(struct qcom_nand_controller *nandc, u8 cmd,
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2910  			       struct qcom_op *q_op)
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2911  {
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2912  	int ret;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2913  
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2914  	switch (cmd) {
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2915  	case NAND_CMD_RESET:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2916  		ret = OP_RESET_DEVICE;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2917  		break;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2918  	case NAND_CMD_READID:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2919  		ret = OP_FETCH_ID;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2920  		break;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2921  	case NAND_CMD_PARAM:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2922  		if (nandc->props->qpic_v2)
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2923  			ret = OP_PAGE_READ_ONFI_READ;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2924  		else
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2925  			ret = OP_PAGE_READ;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2926  		break;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2927  	case NAND_CMD_ERASE1:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2928  	case NAND_CMD_ERASE2:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2929  		ret = OP_BLOCK_ERASE;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2930  		break;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2931  	case NAND_CMD_STATUS:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2932  		ret = OP_CHECK_STATUS;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2933  		break;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2934  	case NAND_CMD_PAGEPROG:
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2935  		ret = OP_PROGRAM_PAGE;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2936  		q_op->flag = OP_PROGRAM_PAGE;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2937  		nandc->exec_opwrite = true;
> > > > 89550beb098e04 drivers/mtd/nand/raw/qcom_nandc.c Md Sadre Alam 2023-07-10  2938  		break;
> > > > 
> > > > No default case.  I'm more concerned about the && vs || warning, but
> > > > the zero day bot doesn't include that code into the email.  
> > > 
> > > The default case here is in theory not possible, as long as
> > > qcom_check_op() is properly implemented. We should however silence the
> > > warning by handling it. Maybe a WARN_ON_ONCE() + ret = <anything that
> > > will produce an error when executing the command> would work.
> > >   
> > 
> > The kbuild-bot runs without the cross function database so it has a lot
> > of false positives that you wouldn't see if you had the DB.  (There
> > isn't really a way to build with the cross function DB.  It takes way
> > way way too long.  Also it sometimes finds bug which are complicated to
> > explain or to assign blame for in an automated way).  But these false
> > positives are frustrating to me.
> 
> I understand.
> 
> > In real life, GCC is going to automatically initialize stack variables
> > to zero on production systems.
> 
> Well, we must silence this by setting reg in all cases, but here the
> variable is badly named, it should be s/ret/cmd/. That's why, if we
> silence it properly, I would go for a runtime warning if we ever
> encounter the situation because this is a purely software bug.
> 

I agree, it is better to add a default case for sanity. Regarding the variable
naming, I agree it should be improved. Something like,

s/cmd/opcode
s/ret/cmd

Also, I do not want to add WARN_ON_ONCE() here, but rather a dev_err().

> > > However I doubt the following piece of code has been successfully
> > > tested:
> > > 
> > >         for (op_id = 0; op_id < op->ninstrs; op_id++) {
> > >                 instr = &op->instrs[op_id];
> > > 
> > >                 switch (instr->type) {
> > >                 case NAND_OP_CMD_INSTR:
> > >                         if (instr->ctx.cmd.opcode != NAND_CMD_RESET ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_READID ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_PARAM ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_ERASE1 ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_ERASE2 ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_STATUS ||
> > >                             instr->ctx.cmd.opcode != NAND_CMD_PAGEPROG)
> > >                                 return -ENOTSUPP;
> > >                         break;
> > > 
> > > The || should be &&, otherwise it cannot work, or am I missing
> > > something?  
> > 
> > Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
> > always returns -ENOTSUPP.
> > 

Yes, this is a bug.

I didn't get a chance to review the exec_op conversion series (blame myself).
Now I see scope for a cleaup series :/

Let me spin something by the end of today.

- Mani

> > regards,
> > dan carpenter
> > 
> 
> 
> Thanks,
> Miquèl

-- 
மணிவண்ணன் சதாசிவம்


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-05  6:55       ` Manivannan Sadhasivam
@ 2023-08-06  7:58         ` Sricharan Ramabadhran
  2023-08-07 18:54           ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-06  7:58 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Miquel Raynal
  Cc: Dan Carpenter, oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List

Hi Miquel/Mani/Dan,

<..>

>>>> The || should be &&, otherwise it cannot work, or am I missing
>>>> something?
>>>
>>> Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
>>> always returns -ENOTSUPP.
>>>
> 
> Yes, this is a bug.
> 
> I didn't get a chance to review the exec_op conversion series (blame myself).
> Now I see scope for a cleaup series :/
> 
> Let me spin something by the end of today.
> 
   Thanks a lot Mani for the quick fixes. Will test it.
   Sorry it was a holiday for us past few days, so just checked this.

Regards,
  Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-06  7:58         ` Sricharan Ramabadhran
@ 2023-08-07 18:54           ` Sricharan Ramabadhran
  2023-08-07 19:14             ` Miquel Raynal
  0 siblings, 1 reply; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-07 18:54 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Miquel Raynal
  Cc: Dan Carpenter, oe-kbuild, Md Sadre Alam, lkp, oe-kbuild-all,
	Linux Memory Management List

Hi Mani/Miquel,

On 8/6/2023 1:28 PM, Sricharan Ramabadhran wrote:
> Hi Miquel/Mani/Dan,
> 
> <..>
> 
>>>>> The || should be &&, otherwise it cannot work, or am I missing
>>>>> something?
>>>>
>>>> Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
>>>> always returns -ENOTSUPP.
>>>>
>>
>> Yes, this is a bug.
>>
>> I didn't get a chance to review the exec_op conversion series (blame 
>> myself).
>> Now I see scope for a cleaup series :/
>>
>> Let me spin something by the end of today.
>>
>    Thanks a lot Mani for the quick fixes. Will test it.
>    Sorry it was a holiday for us past few days, so just checked this.
> 
> Regards,
>   Sricharan

  With this series applied on linux-next, started seeing the below
  messages flooded on console while doing mtd r/w.
  "xxx "Opcode not supported: 0"

  opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
  invoked from qcom_nandc.c driver from below places. For read/write_page
  driver does not use the exec ops. Hence these calls just ends up
  being -ENOTSUPP and ignored. So removed their invocations.
  If this is fine, can this be added to your series ? (will send
  git-format patch to add to your cleanup series). So far, tested
  mtd raw/block read/writes and all works fine. Will do further tests
  as well.

--- a/drivers/mtd/nand/raw/qcom_nandc.c
+++ b/drivers/mtd/nand/raw/qcom_nandc.c
@@ -1470,7 +1470,6 @@ qcom_nandc_read_cw_raw(struct mtd_info *mtd, 
struct nand_chip *chip,
         int ret, reg_off = FLASH_BUF_ACC, read_loc = 0;
         int raw_cw = cw;

-       nand_read_page_op(chip, page, 0, NULL, 0);
         host->use_ecc = false;

         if (nandc->props->qpic_v2)
@@ -1890,7 +1889,6 @@ static int qcom_nandc_read_page(struct nand_chip 
*chip, u8 *buf,
         if (host->nr_boot_partitions)
                 qcom_nandc_codeword_fixup(host, page);

-       nand_read_page_op(chip, page, 0, NULL, 0);
         nandc->buf_count = 0;
         nandc->buf_start = 0;
         host->use_ecc = true;
@@ -1965,8 +1963,6 @@ static int qcom_nandc_write_page(struct nand_chip 
*chip, const u8 *buf,
         if (host->nr_boot_partitions)
                 qcom_nandc_codeword_fixup(host, page);

-       nand_prog_page_begin_op(chip, page, 0, NULL, 0);
-
         set_address(host, 0, page);
         nandc->buf_count = 0;
         nandc->buf_start = 0;
@@ -2039,7 +2035,6 @@ static int qcom_nandc_write_page_raw(struct 
nand_chip *chip,
         if (host->nr_boot_partitions)
                 qcom_nandc_codeword_fixup(host, page);

-       nand_prog_page_begin_op(chip, page, 0, NULL, 0);
         clear_read_regs(nandc);
         clear_bam_transaction(nandc);


Regards,
  Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-07 18:54           ` Sricharan Ramabadhran
@ 2023-08-07 19:14             ` Miquel Raynal
  2023-08-08  5:16               ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Miquel Raynal @ 2023-08-07 19:14 UTC (permalink / raw)
  To: Sricharan Ramabadhran
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List

Hi Sricharan,

quic_srichara@quicinc.com wrote on Tue, 8 Aug 2023 00:24:08 +0530:

> Hi Mani/Miquel,
> 
> On 8/6/2023 1:28 PM, Sricharan Ramabadhran wrote:
> > Hi Miquel/Mani/Dan,
> > 
> > <..>
> > 
> >>>>> The || should be &&, otherwise it cannot work, or am I missing
> >>>>> something?
> >>>>
> >>>> Yeah.  That's how this bug normally looks like.  NAND_OP_CMD_INSTR
> >>>> always returns -ENOTSUPP.
> >>>>
> >>
> >> Yes, this is a bug.
> >>
> >> I didn't get a chance to review the exec_op conversion series (blame >> myself).
> >> Now I see scope for a cleaup series :/
> >>
> >> Let me spin something by the end of today.
> >>
> >    Thanks a lot Mani for the quick fixes. Will test it.
> >    Sorry it was a holiday for us past few days, so just checked this.
> > 
> > Regards,
> >   Sricharan
> 
>   With this series applied on linux-next, started seeing the below
>   messages flooded on console while doing mtd r/w.
>   "xxx "Opcode not supported: 0"
> 
>   opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
>   invoked from qcom_nandc.c driver from below places. For read/write_page
>   driver does not use the exec ops. Hence these calls just ends up
>   being -ENOTSUPP and ignored. So removed their invocations.
>   If this is fine, can this be added to your series ? (will send
>   git-format patch to add to your cleanup series). So far, tested
>   mtd raw/block read/writes and all works fine. Will do further tests
>   as well.

Unless I really don't understand the controller, this is non sense.
nand_read_page_op() is precisely what allows your NAND to perform a
read. Removing this call cannot work.

What you need is a proper ->exec_op() implementation, and repeating
this becomes slightly annoying. 

Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
I bet something along:
	CMD_READ0:
		ret = XXX_OPCODE_READ;
		break;
will make it work.

Please fix the driver and test with nandbiterrs -i. If this test works,
it is encouraging. Otherwise it is still broken.
 
> --- a/drivers/mtd/nand/raw/qcom_nandc.c
> +++ b/drivers/mtd/nand/raw/qcom_nandc.c
> @@ -1470,7 +1470,6 @@ qcom_nandc_read_cw_raw(struct mtd_info *mtd, struct nand_chip *chip,
>          int ret, reg_off = FLASH_BUF_ACC, read_loc = 0;
>          int raw_cw = cw;
> 
> -       nand_read_page_op(chip, page, 0, NULL, 0);
>          host->use_ecc = false;
> 
>          if (nandc->props->qpic_v2)
> @@ -1890,7 +1889,6 @@ static int qcom_nandc_read_page(struct nand_chip *chip, u8 *buf,
>          if (host->nr_boot_partitions)
>                  qcom_nandc_codeword_fixup(host, page);
> 
> -       nand_read_page_op(chip, page, 0, NULL, 0);
>          nandc->buf_count = 0;
>          nandc->buf_start = 0;
>          host->use_ecc = true;
> @@ -1965,8 +1963,6 @@ static int qcom_nandc_write_page(struct nand_chip *chip, const u8 *buf,
>          if (host->nr_boot_partitions)
>                  qcom_nandc_codeword_fixup(host, page);
> 
> -       nand_prog_page_begin_op(chip, page, 0, NULL, 0);
> -
>          set_address(host, 0, page);
>          nandc->buf_count = 0;
>          nandc->buf_start = 0;
> @@ -2039,7 +2035,6 @@ static int qcom_nandc_write_page_raw(struct nand_chip *chip,
>          if (host->nr_boot_partitions)
>                  qcom_nandc_codeword_fixup(host, page);
> 
> -       nand_prog_page_begin_op(chip, page, 0, NULL, 0);
>          clear_read_regs(nandc);
>          clear_bam_transaction(nandc);
> 
> 
> Regards,
>   Sricharan


Miquèl


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-07 19:14             ` Miquel Raynal
@ 2023-08-08  5:16               ` Sricharan Ramabadhran
  2023-08-18 13:33                 ` Miquel Raynal
  0 siblings, 1 reply; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-08  5:16 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List


<..>

>>    With this series applied on linux-next, started seeing the below
>>    messages flooded on console while doing mtd r/w.
>>    "xxx "Opcode not supported: 0"
>>
>>    opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
>>    invoked from qcom_nandc.c driver from below places. For read/write_page
>>    driver does not use the exec ops. Hence these calls just ends up
>>    being -ENOTSUPP and ignored. So removed their invocations.
>>    If this is fine, can this be added to your series ? (will send
>>    git-format patch to add to your cleanup series). So far, tested
>>    mtd raw/block read/writes and all works fine. Will do further tests
>>    as well.
> 
> Unless I really don't understand the controller, this is non sense.
> nand_read_page_op() is precisely what allows your NAND to perform a
> read. Removing this call cannot work.
> 
> What you need is a proper ->exec_op() implementation, and repeating
> this becomes slightly annoying.
> 
> Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
> I bet something along:
> 	CMD_READ0:
> 		ret = XXX_OPCODE_READ;
> 		break;
> will make it work.
> 
> Please fix the driver and test with nandbiterrs -i. If this test works,
> it is encouraging. Otherwise it is still broken.

  ok understand. Will fix this up.

Regards,
  Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-08  5:16               ` Sricharan Ramabadhran
@ 2023-08-18 13:33                 ` Miquel Raynal
  2023-08-18 13:51                   ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Miquel Raynal @ 2023-08-18 13:33 UTC (permalink / raw)
  To: Sricharan Ramabadhran
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List

Hi Sricharan,

quic_srichara@quicinc.com wrote on Tue, 8 Aug 2023 10:46:14 +0530:

> <..>
> 
> >>    With this series applied on linux-next, started seeing the below
> >>    messages flooded on console while doing mtd r/w.
> >>    "xxx "Opcode not supported: 0"
> >>
> >>    opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
> >>    invoked from qcom_nandc.c driver from below places. For read/write_page
> >>    driver does not use the exec ops. Hence these calls just ends up
> >>    being -ENOTSUPP and ignored. So removed their invocations.
> >>    If this is fine, can this be added to your series ? (will send
> >>    git-format patch to add to your cleanup series). So far, tested
> >>    mtd raw/block read/writes and all works fine. Will do further tests
> >>    as well.  
> > 
> > Unless I really don't understand the controller, this is non sense.
> > nand_read_page_op() is precisely what allows your NAND to perform a
> > read. Removing this call cannot work.
> > 
> > What you need is a proper ->exec_op() implementation, and repeating
> > this becomes slightly annoying.
> > 
> > Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
> > I bet something along:
> > 	CMD_READ0:
> > 		ret = XXX_OPCODE_READ;
> > 		break;
> > will make it work.
> > 
> > Please fix the driver and test with nandbiterrs -i. If this test works,
> > it is encouraging. Otherwise it is still broken.  
> 
>   ok understand. Will fix this up.

This is urgent now. The driver in -next is broken, shall I revert
everything or will you test the above fix quickly?

Thanks,
Miquèl


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-18 13:33                 ` Miquel Raynal
@ 2023-08-18 13:51                   ` Sricharan Ramabadhran
  2023-08-18 14:03                     ` Miquel Raynal
  0 siblings, 1 reply; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-18 13:51 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List

Hi Miquel,

On 8/18/2023 7:03 PM, Miquel Raynal wrote:
> Hi Sricharan,
> 
> quic_srichara@quicinc.com wrote on Tue, 8 Aug 2023 10:46:14 +0530:
> 
>> <..>
>>
>>>>     With this series applied on linux-next, started seeing the below
>>>>     messages flooded on console while doing mtd r/w.
>>>>     "xxx "Opcode not supported: 0"
>>>>
>>>>     opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
>>>>     invoked from qcom_nandc.c driver from below places. For read/write_page
>>>>     driver does not use the exec ops. Hence these calls just ends up
>>>>     being -ENOTSUPP and ignored. So removed their invocations.
>>>>     If this is fine, can this be added to your series ? (will send
>>>>     git-format patch to add to your cleanup series). So far, tested
>>>>     mtd raw/block read/writes and all works fine. Will do further tests
>>>>     as well.
>>>
>>> Unless I really don't understand the controller, this is non sense.
>>> nand_read_page_op() is precisely what allows your NAND to perform a
>>> read. Removing this call cannot work.
>>>
>>> What you need is a proper ->exec_op() implementation, and repeating
>>> this becomes slightly annoying.
>>>
>>> Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
>>> I bet something along:
>>> 	CMD_READ0:
>>> 		ret = XXX_OPCODE_READ;
>>> 		break;
>>> will make it work.
>>>
>>> Please fix the driver and test with nandbiterrs -i. If this test works,
>>> it is encouraging. Otherwise it is still broken.
>>
>>    ok understand. Will fix this up.
> 
> This is urgent now. The driver in -next is broken, shall I revert
> everything or will you test the above fix quickly?
> 

   While we are able to reproduce the issue, add path for
   CMD_READ0/READ_START for IPQ platforms. All mtd tests including
   nandbiterrs works fine.  But we are not able to get hold of a SDX
   device where we could reproduce the issue to debug. We are working
   offline with Manivannan for the SDX remote debug. Will keep you
   updated here and if we are not able to solve this on SDX in next
   couple of days, only way looks like revert and re-apply it for 6.7.

Regards,
  Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-18 13:51                   ` Sricharan Ramabadhran
@ 2023-08-18 14:03                     ` Miquel Raynal
  2023-08-18 14:17                       ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Miquel Raynal @ 2023-08-18 14:03 UTC (permalink / raw)
  To: Sricharan Ramabadhran
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List

Hi Sricharan,

quic_srichara@quicinc.com wrote on Fri, 18 Aug 2023 19:21:04 +0530:

> Hi Miquel,
> 
> On 8/18/2023 7:03 PM, Miquel Raynal wrote:
> > Hi Sricharan,
> > 
> > quic_srichara@quicinc.com wrote on Tue, 8 Aug 2023 10:46:14 +0530:
> >   
> >> <..>
> >>  
> >>>>     With this series applied on linux-next, started seeing the below
> >>>>     messages flooded on console while doing mtd r/w.
> >>>>     "xxx "Opcode not supported: 0"
> >>>>
> >>>>     opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
> >>>>     invoked from qcom_nandc.c driver from below places. For read/write_page
> >>>>     driver does not use the exec ops. Hence these calls just ends up
> >>>>     being -ENOTSUPP and ignored. So removed their invocations.
> >>>>     If this is fine, can this be added to your series ? (will send
> >>>>     git-format patch to add to your cleanup series). So far, tested
> >>>>     mtd raw/block read/writes and all works fine. Will do further tests
> >>>>     as well.  
> >>>
> >>> Unless I really don't understand the controller, this is non sense.
> >>> nand_read_page_op() is precisely what allows your NAND to perform a
> >>> read. Removing this call cannot work.
> >>>
> >>> What you need is a proper ->exec_op() implementation, and repeating
> >>> this becomes slightly annoying.
> >>>
> >>> Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
> >>> I bet something along:
> >>> 	CMD_READ0:
> >>> 		ret = XXX_OPCODE_READ;
> >>> 		break;
> >>> will make it work.
> >>>
> >>> Please fix the driver and test with nandbiterrs -i. If this test works,
> >>> it is encouraging. Otherwise it is still broken.  
> >>
> >>    ok understand. Will fix this up.  
> > 
> > This is urgent now. The driver in -next is broken, shall I revert
> > everything or will you test the above fix quickly?
> >   
> 
>    While we are able to reproduce the issue, add path for
>    CMD_READ0/READ_START for IPQ platforms. All mtd tests including
>    nandbiterrs works fine.  But we are not able to get hold of a SDX
>    device where we could reproduce the issue to debug. We are working
>    offline with Manivannan for the SDX remote debug. Will keep you
>    updated here and if we are not able to solve this on SDX in next
>    couple of days, only way looks like revert and re-apply it for 6.7.

If the READ path works on IPQ platforms it's already a huge step
forward, please send the fix on top of Mannivan series.

Now, what is the issue with SDX?

Thanks,
Miquèl


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-18 14:03                     ` Miquel Raynal
@ 2023-08-18 14:17                       ` Sricharan Ramabadhran
  2023-08-18 15:24                         ` Sricharan Ramabadhran
  0 siblings, 1 reply; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-18 14:17 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List



On 8/18/2023 7:33 PM, Miquel Raynal wrote:
> Hi Sricharan,
> 
> quic_srichara@quicinc.com wrote on Fri, 18 Aug 2023 19:21:04 +0530:
> 
>> Hi Miquel,
>>
>> On 8/18/2023 7:03 PM, Miquel Raynal wrote:
>>> Hi Sricharan,
>>>
>>> quic_srichara@quicinc.com wrote on Tue, 8 Aug 2023 10:46:14 +0530:
>>>    
>>>> <..>
>>>>   
>>>>>>      With this series applied on linux-next, started seeing the below
>>>>>>      messages flooded on console while doing mtd r/w.
>>>>>>      "xxx "Opcode not supported: 0"
>>>>>>
>>>>>>      opcode '0' corresponds to NAND_CMD_READ0. This command inturn was
>>>>>>      invoked from qcom_nandc.c driver from below places. For read/write_page
>>>>>>      driver does not use the exec ops. Hence these calls just ends up
>>>>>>      being -ENOTSUPP and ignored. So removed their invocations.
>>>>>>      If this is fine, can this be added to your series ? (will send
>>>>>>      git-format patch to add to your cleanup series). So far, tested
>>>>>>      mtd raw/block read/writes and all works fine. Will do further tests
>>>>>>      as well.
>>>>>
>>>>> Unless I really don't understand the controller, this is non sense.
>>>>> nand_read_page_op() is precisely what allows your NAND to perform a
>>>>> read. Removing this call cannot work.
>>>>>
>>>>> What you need is a proper ->exec_op() implementation, and repeating
>>>>> this becomes slightly annoying.
>>>>>
>>>>> Look at your qcom_op_cmd_mapping, you don't even have a path for reads.
>>>>> I bet something along:
>>>>> 	CMD_READ0:
>>>>> 		ret = XXX_OPCODE_READ;
>>>>> 		break;
>>>>> will make it work.
>>>>>
>>>>> Please fix the driver and test with nandbiterrs -i. If this test works,
>>>>> it is encouraging. Otherwise it is still broken.
>>>>
>>>>     ok understand. Will fix this up.
>>>
>>> This is urgent now. The driver in -next is broken, shall I revert
>>> everything or will you test the above fix quickly?
>>>    
>>
>>     While we are able to reproduce the issue, add path for
>>     CMD_READ0/READ_START for IPQ platforms. All mtd tests including
>>     nandbiterrs works fine.  But we are not able to get hold of a SDX
>>     device where we could reproduce the issue to debug. We are working
>>     offline with Manivannan for the SDX remote debug. Will keep you
>>     updated here and if we are not able to solve this on SDX in next
>>     couple of days, only way looks like revert and re-apply it for 6.7.
> 
> If the READ path works on IPQ platforms it's already a huge step
> forward, please send the fix on top of Mannivan series.
> 
   ok, will send. Please confirm if its all fine.
   There are more abstraction/common mode in the driver to be pulled
   out, but that will do later.

> Now, what is the issue with SDX?

    Looks like SDX device that Mani is having is a 4K nand device.
    For some reason, after exec ops nand boot is broken on that board.
    We applied the fixes we did on top of Manivannan series.
    With that enumeration works, but still mount fails. But 4K nand
    device boot on IPQ works fine. Problem is we do not have a SDX board
    where we could debug that. We are trying to get a remote setup
    enabled for this.

Regards,
  Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret'.
  2023-08-18 14:17                       ` Sricharan Ramabadhran
@ 2023-08-18 15:24                         ` Sricharan Ramabadhran
  0 siblings, 0 replies; 14+ messages in thread
From: Sricharan Ramabadhran @ 2023-08-18 15:24 UTC (permalink / raw)
  To: Miquel Raynal
  Cc: Manivannan Sadhasivam, Dan Carpenter, oe-kbuild, Md Sadre Alam,
	lkp, oe-kbuild-all, Linux Memory Management List

Hi Miquel,

<..>

>>>>>>
>>>>>> Look at your qcom_op_cmd_mapping, you don't even have a path for 
>>>>>> reads.
>>>>>> I bet something along:
>>>>>>     CMD_READ0:
>>>>>>         ret = XXX_OPCODE_READ;
>>>>>>         break;
>>>>>> will make it work.
>>>>>>
>>>>>> Please fix the driver and test with nandbiterrs -i. If this test 
>>>>>> works,
>>>>>> it is encouraging. Otherwise it is still broken.
>>>>>
>>>>>     ok understand. Will fix this up.
>>>>
>>>> This is urgent now. The driver in -next is broken, shall I revert
>>>> everything or will you test the above fix quickly?
>>>
>>>     While we are able to reproduce the issue, add path for
>>>     CMD_READ0/READ_START for IPQ platforms. All mtd tests including
>>>     nandbiterrs works fine.  But we are not able to get hold of a SDX
>>>     device where we could reproduce the issue to debug. We are working
>>>     offline with Manivannan for the SDX remote debug. Will keep you
>>>     updated here and if we are not able to solve this on SDX in next
>>>     couple of days, only way looks like revert and re-apply it for 6.7.
>>
>> If the READ path works on IPQ platforms it's already a huge step
>> forward, please send the fix on top of Mannivan series.
>>
>    ok, will send. Please confirm if its all fine.
>    There are more abstraction/common mode in the driver to be pulled
>    out, but that will do later.
> 
      Just now Alam posted this series for this.
       "[PATCH 0/3]mtd: rawnand: qcom: Fixes for exec_op".

Regards,
  Sricharan


>> Now, what is the issue with SDX?
> 
>     Looks like SDX device that Mani is having is a 4K nand device.
>     For some reason, after exec ops nand boot is broken on that board.
>     We applied the fixes we did on top of Manivannan series.
>     With that enumeration works, but still mount fails. But 4K nand
>     device boot on IPQ works fine. Problem is we do not have a SDX board
>     where we could debug that. We are trying to get a remote setup
>     enabled for this.
> 
> Regards,
>   Sricharan


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-08-18 15:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-03 12:20 [linux-next:master 1937/6910] drivers/mtd/nand/raw/qcom_nandc.c:2941 qcom_op_cmd_mapping() error: uninitialized symbol 'ret' Dan Carpenter
2023-08-04 16:45 ` Miquel Raynal
2023-08-04 16:52   ` Dan Carpenter
2023-08-04 17:07     ` Miquel Raynal
2023-08-05  6:55       ` Manivannan Sadhasivam
2023-08-06  7:58         ` Sricharan Ramabadhran
2023-08-07 18:54           ` Sricharan Ramabadhran
2023-08-07 19:14             ` Miquel Raynal
2023-08-08  5:16               ` Sricharan Ramabadhran
2023-08-18 13:33                 ` Miquel Raynal
2023-08-18 13:51                   ` Sricharan Ramabadhran
2023-08-18 14:03                     ` Miquel Raynal
2023-08-18 14:17                       ` Sricharan Ramabadhran
2023-08-18 15:24                         ` Sricharan Ramabadhran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox