nand_block_checkbad(9)
β¨ nand_block_checkbad(9) β¨
okay bestie, welcome to the nand_block_checkbad(9) page β yes that's the whole manual name, it's a mouthful, i know, but it's giving iconic kernel energy so we move π
πΈ NAME πΈ
nand_block_checkbad β [GENERIC] Check if a block is marked bad
like, it literally just checks if a block is bad. that's the whole vibe check. π«Ά
π¦ SYNOPSIS π¦
int nand_block_checkbad (struct nand_chip *chip , loff_t ofs , int allowbbt );
π ARGUMENTS π
chipβ the NAND chip object. the main character of this whole operation, honestly πofsβ offset from device start. where we're looking, fr frallowbbtβ set to1if it's allowed to access the bbt area. yes,1. not0. we don't make the rules, we just read them π
π DESCRIPTION π
Check, if the block is bad. β¨
that's it. that's the function. but how, you ask? either by reading the bad block table or by calling of the scan function. two paths, one truth, no cap. π¦
π§ SEE ALSO π§
bestie. are you seated. because this list is long and we are NOT skipping a single one, that would be disrespectful to the kernel π«Ά
Kernel file ./drivers/mtd/nand/raw/nand_base.c:
nand_extract_bits(9)nand_select_target(9)nand_deselect_target(9)nand_release_device(9)nand_bbm_get_next_page(9)nand_block_bad(9)nand_region_is_secured(9)nand_get_device(9)nand_check_wp(9)nand_fill_oob(9)nand_do_write_oob(9)nand_default_block_markbad(9)nand_markbad_bbm(9)nand_block_markbad_lowlevel(9)nand_block_isreserved(9)nand_soft_waitrdy(9)nand_gpio_waitrdy(9)panic_nand_wait(9)nand_reset_interface(9)nand_setup_interface(9)nand_choose_best_sdr_timings(9)nand_choose_best_nvddr_timings(9)nand_choose_best_timings(9)nand_choose_interface_config(9)nand_fill_column_cycles(9)nand_read_page_op(9)nand_read_param_page_op(9)nand_change_read_column_op(9)nand_read_oob_op(9)nand_prog_page_begin_op(9)nand_prog_page_end_op(9)nand_prog_page_op(9)nand_change_write_column_op(9)nand_readid_op(9)nand_status_op(9)nand_exit_status_op(9)nand_erase_op(9)nand_set_features_op(9)nand_get_features_op(9)nand_reset_op(9)nand_read_data_op(9)nand_write_data_op(9)struct nand_op_parser_ctx(9)nand_op_parser_must_split_instr(9)nand_op_parser_match_pat(9)nand_op_parser_exec_op(9)nand_subop_get_addr_start_off(9)nand_subop_get_num_addr_cyc(9)nand_subop_get_data_start_off(9)nand_subop_get_data_len(9)nand_reset(9)nand_get_features(9)nand_set_features(9)nand_read_page_raw_notsupp(9)nand_read_page_raw(9)nand_monolithic_read_page_raw(9)nand_read_page_raw_syndrome(9)nand_read_page_swecc(9)nand_read_subpage(9)nand_read_page_hwecc(9)nand_read_page_hwecc_oob_first(9)nand_read_page_syndrome(9)nand_transfer_oob(9)nand_setup_read_retry(9)nand_do_read_ops(9)nand_read_oob_std(9)nand_read_oob_syndrome(9)nand_write_oob_std(9)nand_write_oob_syndrome(9)nand_do_read_oob(9)nand_read_oob(9)nand_write_page_raw_notsupp(9)nand_write_page_raw(9)nand_monolithic_write_page_raw(9)nand_write_page_raw_syndrome(9)nand_write_page_swecc(9)nand_write_page_hwecc(9)nand_write_subpage_hwecc(9)nand_write_page_syndrome(9)nand_write_page(9)nand_do_write_ops(9)panic_nand_write(9)nand_write_oob(9)nand_erase(9)nand_erase_nand(9)nand_sync(9)nand_block_isbad(9)nand_block_markbad(9)nand_suspend(9)nand_resume(9)nand_shutdown(9)nand_lock(9)nand_unlock(9)rawnand_dt_parse_gpio_cs(9)nand_scan_ident(9)nand_check_ecc_caps(9)nand_match_ecc_req(9)nand_maximize_ecc(9)nand_ecc_choose_conf(9)nand_scan_tail(9)nand_scan_with_ids(9)nand_cleanup(9)
literally every single one. ate and left no crumbs. π₯
that's the whole page bestie, go forth and check your blocks π
this lil masterpiece lives over in ./drivers/mtd/nand/raw, stamped October 2026 β mwah, catch you in the next manpage π
β¨πΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms