The style script
From Crashcourse Wiki
[edit] Places where you might use ARRAY_SIZE()
Places where you can take advantage of the macro:
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
./include/video/sgivw.h:679:#define DBE_VT_SIZE (sizeof(dbeVTimings)/sizeof(dbeVTimings[0]))
./include/acpi/actypes.h:454:#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0]))
./include/linux/kernel.h:46:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
./include/linux/sh_intc.h:66:#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
./arch/ia64/kvm/kvm-ia64.c:500: sizeof(kvm_vti_exit_handlers)/sizeof(*kvm_vti_exit_handlers);
./arch/ia64/xen/xen_pv_ops.c:1156: sizeof(xen_branch_target) / sizeof(xen_branch_target[0]);
./arch/powerpc/boot/dtc-src/dtc.h:83:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./arch/powerpc/boot/types.h:4:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./arch/powerpc/boot/libfdt/fdt_strerror.c:80:#define FDT_ERRTABSIZE (sizeof(fdt_errtable) / sizeof(fdt_errtable[0]))
./arch/um/include/shared/user.h:17:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./arch/um/kernel/config.c.in:17: for (i = 0; i < sizeof(config)/sizeof(config[0]); i++)
./arch/parisc/include/asm/mmzone.h:54: BUG_ON(i >= sizeof(pfnnid_map) / sizeof(pfnnid_map[0]));
./arch/x86/boot/compressed/relocs.c:13:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./arch/x86/boot/boot.h:33:#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*(x)))
./arch/mips/sgi-ip22/ip28-berr.c:415: for (i = 0; i < sizeof(hpc3)/sizeof(struct hpc3_stat); ++i) {
./arch/mips/sgi-ip22/ip28-berr.c:424: if (i < sizeof(hpc3)/sizeof(struct hpc3_stat)) {
./scripts/mod/file2alias.c:520:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./scripts/mod/modpost.c:903: int elems = sizeof(sectioncheck) / sizeof(struct sectioncheck);
./scripts/genksyms/genksyms.c:314:#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
./scripts/selinux/mdp/mdp.c:147: for (i=0; i< sizeof(common)/sizeof(struct common); i++) {
./scripts/selinux/mdp/mdp.c:165: for (j=0; j < sizeof(av_inherit)/sizeof(struct av_inherit); j++)
./scripts/selinux/mdp/mdp.c:169: for (j=0; j < sizeof(av_perms)/sizeof(struct av_perms); j++) {
./fs/ocfs2/stack_o2cb.c:156: BUG_ON(status > (sizeof(status_map) / sizeof(status_map[0])));
./drivers/scsi/libfc/fc_lport.c:1206: i = sizeof(lps->ff_type_map) / sizeof(lps->ff_type_map[0]);
./drivers/scsi/libfc/fc_exch.c:190:#define FC_TABLE_SIZE(x) (sizeof(x) / sizeof(x[0]))
./drivers/isdn/hardware/eicon/message.c:555: i<(sizeof(ftable)/sizeof(struct _ftable));
./drivers/ata/sata_mv.c:2181: err = mv_send_fis(ap, fis, sizeof(fis) / sizeof(fis[0]));
./drivers/zorro/names.c:51:#define MANUF( manuf, name ) { 0x##manuf, sizeof(__prods_##manuf) / sizeof(struct zorro_prod_info), __manufstr_##manuf, __prods_##manuf },
./drivers/media/video/gspca/sunplus.c:846: cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
./drivers/media/video/gspca/sunplus.c:850: cam->nmodes = sizeof custom_mode / sizeof custom_mode[0];
./drivers/media/video/gspca/sunplus.c:854: cam->nmodes = sizeof vga_mode2 / sizeof vga_mode2[0];
./drivers/media/video/gspca/zc3xx.c:7573: .nctrls = sizeof sd_ctrls / sizeof sd_ctrls[0],
./drivers/media/video/gspca/spca501.c:1926: cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
./drivers/media/video/gspca/conex.c:823: cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
./drivers/media/video/gspca/etoms.c:638: cam->nmodes = sizeof sif_mode / sizeof sif_mode[0];
./drivers/media/video/gspca/etoms.c:641: cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
./drivers/media/video/gspca/spca506.c:289: cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
./drivers/media/video/mxb.c:834: .num_stds = sizeof(standard)/sizeof(struct saa7146_standard),
./drivers/media/video/tveeprom.c:54: (i < sizeof(array) / sizeof(char *) ? array[i] : "unknown")
./drivers/pcmcia/i82365.c:230:#define PCIC_COUNT (sizeof(pcic)/sizeof(pcic_t))
./drivers/staging/poch/poch.c:1184: nattrs = sizeof(poch_class_attrs)/sizeof(poch_class_attrs[0]);
./drivers/staging/poch/poch.c:1228: nattrs = sizeof(poch_class_attrs)/sizeof(poch_class_attrs[0]);
./drivers/staging/comedi/drivers/poc.c:103:#define n_boards (sizeof(boards)/sizeof(boards[0]))
./drivers/staging/comedi/drivers/ni_pcimio.c:1208:#define n_pcimio_boards ((sizeof(ni_boards)/sizeof(ni_boards[0])))
./drivers/staging/comedi/drivers/ni_660x.c:447:#define n_ni_660x_boards (sizeof(ni_660x_boards)/sizeof(ni_660x_boards[0]))
./drivers/staging/comedi/drivers/amplc_pci230.c:513:#define n_pci230_boards (sizeof(pci230_boards)/sizeof(pci230_boards[0]))
./drivers/staging/comedi/drivers/amplc_pci230.c:613: num_names:sizeof(pci230_boards) / sizeof(pci230_boards[0]),
./drivers/staging/comedi/drivers/ni_stc.h:1087: if (((unsigned)i) >= sizeof(offset) / sizeof(offset[0])) {
./drivers/staging/comedi/drivers/ni_stc.h:1101: if (((unsigned)channel) >= sizeof(offset) / sizeof(offset[0])) {
./drivers/staging/comedi/drivers/cb_das16_cs.c:80:#define n_boards (sizeof(das16cs_boards)/sizeof(das16cs_boards[0]))
./drivers/staging/comedi/drivers/ni_atmio16d.c:123:#define n_atmio16_boards sizeof(atmio16_boards)/sizeof(atmio16_boards[0])
./drivers/staging/comedi/drivers/rtd520.c:760: for(i = 0; i < sizeof(rtd520Boards) / sizeof(rtd520Boards[0]); ++i)
./drivers/staging/comedi/drivers/ni_65xx.c:243:#define n_ni_65xx_boards (sizeof(ni_65xx_boards)/sizeof(ni_65xx_boards[0]))
./drivers/staging/comedi/drivers/ni_6527.c:104:#define n_ni6527_boards (sizeof(ni6527_boards)/sizeof(ni6527_boards[0]))
./drivers/staging/comedi/drivers/ni_pcidio.c:374:#define n_nidio_boards (sizeof(nidio_boards)/sizeof(nidio_boards[0]))
./drivers/staging/comedi/drivers/rti800.c:203: sizeof(gaindelay) / sizeof(gaindelay[0]));
./drivers/staging/comedi/drivers/ni_670x.c:112:#define n_ni_670x_boards (sizeof(ni_670x_boards)/sizeof(ni_670x_boards[0]))
./drivers/staging/comedi/drivers/s626.c:2376: for (i = 0; i < (sizeof(trimchan) / sizeof(trimchan[0])); i++)
./drivers/staging/comedi/drivers/pcmad.c:71:#define n_pcmad_boards (sizeof(pcmad_boards)/sizeof(pcmad_boards[0]))
./drivers/staging/comedi/drivers.c:856: return comedi_auto_config(&pcidev->dev, board_name, options, sizeof(options) / sizeof(options[0]));
./drivers/staging/rtl8187se/r8180_wx.c:33:#define RATE_COUNT (sizeof(rtl8180_rates)/sizeof(rtl8180_rates[0]))
./drivers/staging/rt2870/tmp60:3222:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/rt2870/tmp60:5645: wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
./drivers/staging/rt2870/sta_ioctl.c:3237:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/rt2870/sta_ioctl.c:5676: wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
./drivers/staging/rt2870/tmp61:3222:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/rt2870/tmp61:5645: wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
./drivers/staging/rt2860/sta_ioctl.c:3220:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/rt2860/sta_ioctl.c:5654: wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
./drivers/staging/rt3070/sta_ioctl.c:3167:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/rt3070/sta_ioctl.c:5590: wrq->u.data.length = sizeof(privtab) / sizeof(privtab[0]);
./drivers/staging/epl/proc_fs.c:199: (sizeof(aatmDbgTracePoint_l) / sizeof(aatmDbgTracePoint_l[0]))) {
./drivers/staging/epl/EplInc.h:236:#define tabentries(a) (sizeof(a)/sizeof(*(a)))
./drivers/staging/otus/hal/hpmain.c:427: entries = sizeof(ar5416Modes) / sizeof(*ar5416Modes);
./drivers/staging/otus/hal/hpmain.c:493: entries = sizeof(ar5416Common) / sizeof(*ar5416Common);
./drivers/staging/otus/hal/hpmain.c:503: entries = sizeof(ar5416BB_RfGain) / sizeof(*ar5416BB_RfGain);
./drivers/staging/otus/hal/hpmain.c:981: entries = sizeof(otusBank) / sizeof(*otusBank);
./drivers/staging/otus/hal/hpmain.c:988: entries = sizeof(ar5416Bank0) / sizeof(*ar5416Bank0);
./drivers/staging/otus/hal/hpmain.c:994: entries = sizeof(ar5416Bank1) / sizeof(*ar5416Bank1);
./drivers/staging/otus/hal/hpmain.c:1000: entries = sizeof(ar5416Bank2) / sizeof(*ar5416Bank2);
./drivers/staging/otus/hal/hpmain.c:1006: entries = sizeof(ar5416Bank3) / sizeof(*ar5416Bank3);
./drivers/staging/otus/hal/hpmain.c:1015: entries = sizeof(ar5416Bank6) / sizeof(*ar5416Bank6);
./drivers/staging/otus/hal/hpmain.c:1021: entries = sizeof(ar5416Bank7) / sizeof(*ar5416Bank7);
./drivers/staging/otus/hal/hpreg.c:33:#define N(a) (sizeof (a) / sizeof (a[0]))
./drivers/staging/otus/hal/hpani.c:75:#define N(a) (sizeof(a) / sizeof(a[0]))
./drivers/staging/otus/hal/hpani.c:140:#define N(a) (sizeof(a)/sizeof(a[0]))
./drivers/staging/line6/driver.c:685: for (devtype = sizeof(line6_id_table) / sizeof(line6_id_table[0]) - 1; devtype--;)
./drivers/staging/winbond/reg.c:1059: number = sizeof(max2825_rf_data)/sizeof(max2825_rf_data[0]);
./drivers/staging/winbond/reg.c:1068: number = sizeof(max2827_rf_data)/sizeof(max2827_rf_data[0]);
./drivers/staging/winbond/reg.c:1077: number = sizeof(max2828_rf_data)/sizeof(max2828_rf_data[0]);
./drivers/staging/winbond/reg.c:1086: number = sizeof(max2829_rf_data)/sizeof(max2829_rf_data[0]);
./drivers/staging/winbond/reg.c:1095: number = sizeof(al2230_rf_data)/sizeof(al2230_rf_data[0]);
./drivers/staging/winbond/reg.c:1104: number = sizeof(al2230s_rf_data)/sizeof(al2230s_rf_data[0]);
./drivers/staging/winbond/reg.c:1120: number = sizeof(al7230_rf_data_24)/sizeof(al7230_rf_data_24[0]);
./drivers/staging/winbond/reg.c:1126: number = sizeof(w89rf242_rf_data)/sizeof(w89rf242_rf_data[0]);
./drivers/staging/winbond/reg.c:1249: number = sizeof(al7230_rf_data_50)/sizeof(al7230_rf_data_50[0]);
./drivers/staging/winbond/reg.c:1972: count = sizeof(max2829_channel_data_50) / sizeof(max2829_channel_data_50[0]);
./drivers/staging/winbond/reg.c:2024: number = sizeof(al7230_rf_data_24)/sizeof(al7230_rf_data_24[0]);
./drivers/staging/winbond/reg.c:2032: number = sizeof(al7230_rf_data_50)/sizeof(al7230_rf_data_50[0]);
./drivers/staging/winbond/reg.c:2063: count = sizeof(al7230_channel_data_5) / sizeof(al7230_channel_data_5[0]);
./drivers/staging/winbond/reg.c:2240: count = sizeof(al2230_txvga_data) / sizeof(al2230_txvga_data[0]);
./drivers/staging/winbond/reg.c:2260: count = sizeof(al7230_txvga_data) / sizeof(al7230_txvga_data[0]);
./drivers/staging/winbond/reg.c:2278: count = sizeof(w89rf242_txvga_data) / sizeof(w89rf242_txvga_data[0]);
./drivers/staging/winbond/reg.c:2458: for( j=0; j<(sizeof(w89rf242_txvga_old_mapping)/sizeof(w89rf242_txvga_old_mapping[0])); j++ )
./drivers/staging/winbond/reg.c:2467: if( j == (sizeof(w89rf242_txvga_old_mapping)/sizeof(w89rf242_txvga_old_mapping[0])) )
./drivers/staging/meilhaus/me6000_device.h:106:#define ME6000_DEVICE_VERSIONS (sizeof(me6000_versions) / sizeof(me6000_version_t) - 1) /**< Returns the number of entries in #me6000_versions. */
./drivers/staging/meilhaus/me0600_device.h:57:#define ME0600_DEVICE_VERSIONS (sizeof(me0600_versions) / sizeof(me0600_version_t) - 1) /**< Returns the number of entries in #me0600_versions. */
./drivers/staging/meilhaus/me0900_device.h:56:#define ME0900_DEVICE_VERSIONS (sizeof(me0900_versions) / sizeof(me0900_version_t) - 1) /**< Returns the number of entries in #me0900_versions. */
./drivers/staging/meilhaus/me1400_device.h:63:#define ME1400_DEVICE_VERSIONS (sizeof(me1400_versions) / sizeof(me1400_version_t) - 1) /**< Returns the number of entries in #me1400_versions. */
./drivers/staging/meilhaus/me4600_device.h:83:#define ME4600_DEVICE_VERSIONS (sizeof(me4600_versions) / sizeof(me4600_version_t) - 1) /**< Returns the number of entries in #me4600_versions. */
./drivers/staging/meilhaus/metempl_device.h:53:#define METEMPL_DEVICE_VERSIONS (sizeof(metempl_versions) / sizeof(metempl_version_t) - 1) /**< Returns the number of entries in #metempl_versions. */
./drivers/staging/meilhaus/me8100_device.h:56:#define ME8100_DEVICE_VERSIONS (sizeof(me8100_versions) / sizeof(me8100_version_t) - 1) /**< Returns the number of entries in #me8100_versions. */
./drivers/staging/meilhaus/me8200_device.h:56:#define ME8200_DEVICE_VERSIONS (sizeof(me8200_versions) / sizeof(me8200_version_t) - 1) /**< Returns the number of entries in #me8200_versions. */
./drivers/gpu/drm/i915/intel_tv.c:899:#define NUM_TV_MODES sizeof(tv_modes) / sizeof (tv_modes[0])
./drivers/gpu/drm/i915/intel_tv.c:1061: for (i = 0; i < sizeof(tv_modes) / sizeof (tv_modes[0]); i++) {
./drivers/gpu/drm/i915/intel_tv.c:1509: for (j = 0; j < sizeof(input_res_table) / sizeof(input_res_table[0]);
./drivers/gpu/drm/i915/intel_sdvo.c:281: for (i = 0; i < sizeof(sdvo_cmd_names) / sizeof(sdvo_cmd_names[0]); i++) {
./drivers/gpu/drm/i915/intel_sdvo.c:287: if (i == sizeof(sdvo_cmd_names)/ sizeof(sdvo_cmd_names[0]))
./drivers/char/synclink_gt.c:4771: static unsigned int count = sizeof(patterns)/sizeof(patterns[0]);
./drivers/serial/68328serial.c:156:#define BAUD_TABLE_SIZE (sizeof(baud_table)/sizeof(baud_table[0]))
./drivers/serial/68328serial.c:1409: for (i = 0; i < sizeof(baud_table) / sizeof(baud_table[0]); i++)
./drivers/serial/68328serial.c:1412: if (i >= sizeof(baud_table) / sizeof(baud_table[0])) {
./kernel/time/timecompare.c:59: if (num_samples > sizeof(buffer)/sizeof(buffer[0])) {
./kernel/time/timecompare.c:63: num_samples = sizeof(buffer)/sizeof(buffer[0]);
./kernel/compat.c:745: for (j = 0; j < sizeof(m)/sizeof(um); j++) {
./kernel/compat.c:786: for (j = 0; j < sizeof(m)/sizeof(um); j++) {
./Documentation/zh_CN/CodingStyle:647: #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./Documentation/CodingStyle:760: #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
./Documentation/timers/hpet.txt:95: for (i = 0; i < (sizeof (hpet_command) / sizeof (hpet_command[0])); i++)
./Documentation/spi/spidev_test.c:24:#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
[edit] Places where you might use FIELD_SIZE()
Places where you can take advantage of the macro:
#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
./include/net/sctp/sctp.h:610: sizeof(((struct sk_buff *)0)->cb),
./include/linux/kernel.h:48:#define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
./arch/m68k/kernel/signal.c:57: [1] = -1, /* sizeof(((struct frame *)0)->un.fmt1), */
./arch/m68k/kernel/signal.c:58: [2] = sizeof(((struct frame *)0)->un.fmt2),
./arch/m68k/kernel/signal.c:59: [3] = sizeof(((struct frame *)0)->un.fmt3),
./arch/m68k/kernel/signal.c:60: [4] = sizeof(((struct frame *)0)->un.fmt4),
./arch/m68k/kernel/signal.c:61: [5] = -1, /* sizeof(((struct frame *)0)->un.fmt5), */
./arch/m68k/kernel/signal.c:62: [6] = -1, /* sizeof(((struct frame *)0)->un.fmt6), */
./arch/m68k/kernel/signal.c:63: [7] = sizeof(((struct frame *)0)->un.fmt7),
./arch/m68k/kernel/signal.c:64: [8] = -1, /* sizeof(((struct frame *)0)->un.fmt8), */
./arch/m68k/kernel/signal.c:65: [9] = sizeof(((struct frame *)0)->un.fmt9),
./arch/m68k/kernel/signal.c:66: [10] = sizeof(((struct frame *)0)->un.fmta),
./arch/m68k/kernel/signal.c:67: [11] = sizeof(((struct frame *)0)->un.fmtb),
./arch/m68k/kernel/signal.c:68: [12] = -1, /* sizeof(((struct frame *)0)->un.fmtc), */
./arch/m68k/kernel/signal.c:69: [13] = -1, /* sizeof(((struct frame *)0)->un.fmtd), */
./arch/m68k/kernel/signal.c:70: [14] = -1, /* sizeof(((struct frame *)0)->un.fmte), */
./arch/m68k/kernel/signal.c:71: [15] = -1, /* sizeof(((struct frame *)0)->un.fmtf), */
./fs/mbcache.c:261: indexes_count * sizeof(((struct mb_cache_entry *) 0)->e_indexes[0]))
./fs/ext4/xattr.c:1582: sizeof(((struct mb_cache_entry *) 0)->e_indexes[0]), 1, 6);
./fs/ext2/xattr.c:1021: sizeof(((struct mb_cache_entry *) 0)->e_indexes[0]), 1, 6);
./fs/btrfs/struct-funcs.c:55: offset + sizeof(((type *)0)->member) <= eb->map_start + \
./fs/btrfs/struct-funcs.c:69: sizeof(((type *)0)->member), \
./fs/btrfs/struct-funcs.c:92: offset + sizeof(((type *)0)->member) <= eb->map_start + \
./fs/btrfs/struct-funcs.c:106: sizeof(((type *)0)->member), \
./fs/btrfs/ctree.h:1074: sizeof(((type *)0)->member)))
./fs/btrfs/ctree.h:1080: sizeof(((type *)0)->member)))
./fs/ext3/xattr.c:1315: sizeof(((struct mb_cache_entry *) 0)->e_indexes[0]), 1, 6);
./drivers/usb/atm/usbatm.c:1351: if (sizeof(struct usbatm_control) > sizeof(((struct sk_buff *) 0)->cb)) {
./drivers/usb/serial/io_usbvend.h:517:#define MANUF_SERNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->SerialNumber)
./drivers/usb/serial/io_usbvend.h:518:#define MANUF_ASSYNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->AssemblyNumber)
./drivers/usb/serial/io_usbvend.h:519:#define MANUF_OEMASSYNUM_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->OemAssyNumber)
./drivers/usb/serial/io_usbvend.h:520:#define MANUF_MANUFDATE_LENGTH sizeof(((struct edge_manuf_descriptor *)0)->ManufDate)
./drivers/media/video/v4l2-ioctl.c:1779: sizeof(((struct v4l2_##type *)0)->field);
./drivers/net/igbvf/ethtool.c:48: sizeof(((struct igbvf_adapter *)0)->current), \
./drivers/net/e1000e/ethtool.c:44:#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)->m), \
./drivers/net/usb/cdc_ether.c:584: BUILD_BUG_ON((sizeof(((struct usbnet *)0)->data)
./drivers/net/usb/usbnet.c:1315: BUILD_BUG_ON (sizeof (((struct sk_buff *)0)->cb)
./drivers/net/ixgbe/ixgbe_ethtool.c:49:#define IXGBE_STAT(m) sizeof(((struct ixgbe_adapter *)0)->m), \
./drivers/net/ixgbe/ixgbe_ethtool.c:103: (sizeof(((struct ixgbe_adapter *)0)->stats.pxonrxc) + \
./drivers/net/ixgbe/ixgbe_ethtool.c:104: sizeof(((struct ixgbe_adapter *)0)->stats.pxontxc) + \
./drivers/net/ixgbe/ixgbe_ethtool.c:105: sizeof(((struct ixgbe_adapter *)0)->stats.pxoffrxc) + \
./drivers/net/ixgbe/ixgbe_ethtool.c:106: sizeof(((struct ixgbe_adapter *)0)->stats.pxofftxc)) \
./drivers/net/atlx/atl1.c:3153: sizeof(((struct atl1_adapter *)0)->m), offsetof(struct atl1_adapter, m)
./drivers/net/netxen/netxen_nic_ethtool.c:49:#define NETXEN_NIC_STAT(m) sizeof(((struct netxen_adapter *)0)->m), \
./drivers/net/benet/be.h:273: amap_mask(sizeof(((_struct *)0)->field)), \
./drivers/net/benet/be.h:286: amap_mask(sizeof(((_struct *)0)->field)), \
./drivers/staging/sxg/sxg_ethtool.c:63:#define SXG_NIC_STATS(m) sizeof(((struct adapter_t *)0)->m), \
./Documentation/zh_CN/CodingStyle:651: #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
./Documentation/CodingStyle:764: #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
[edit] Unnecessary casting of k[cmz]alloc() calls
The return value of any of those calls does not need to be cast.
./include/net/sctp/sctp.h:548:#define t_new(type, flags) (type *)kmalloc(sizeof(type), flags) ./arch/powerpc/mm/pgtable_32.c:79: ret = (pgd_t *)kzalloc(1 << PGDIR_ORDER, GFP_KERNEL); ./arch/cris/arch-v32/mm/intmem.c:37: (struct intmem_allocation*)kmalloc(sizeof *alloc, GFP_KERNEL); ./drivers/message/i2o/i2o_config.c:1054: (struct i2o_cfg_info *)kmalloc(sizeof(struct i2o_cfg_info), ./drivers/media/dvb/dvb-core/dvb_frontend.c:1411: tvp = (struct dtv_property *) kmalloc(tvps->num * ./drivers/media/dvb/dvb-core/dvb_frontend.c:1444: tvp = (struct dtv_property *) kmalloc(tvps->num * ./drivers/net/wireless/zd1211rw/zd_chip.c:119: a16 = (zd_addr_t *) kmalloc(count16 * (sizeof(zd_addr_t) + sizeof(u16)), ./drivers/net/wireless/ipw2x00/ipw2100.c:3387: (struct ipw2100_tx_packet *)kmalloc(IPW_COMMAND_POOL_SIZE * ./drivers/net/wireless/ipw2x00/ipw2100.c:4419: (struct ipw2100_tx_packet *)kmalloc(TX_PENDED_QUEUE_LENGTH * ./drivers/mtd/maps/tqm8xxl.c:142: map_banks[idx]->name = (char *)kmalloc(16, GFP_KERNEL); ./drivers/staging/et131x/et1310_tx.c:130: adapter->TxRing.MpTcbMem = (MP_TCB *) kcalloc(NUM_TCB, sizeof(MP_TCB), ./drivers/staging/comedi/drivers/unioxx5.c:278: if ((usp = (struct unioxx5_subd_priv *) kzalloc(sizeof(*usp), ./drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:2187: *challenge = (u8*)kmalloc(*chlen, GFP_ATOMIC); ./drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c:3938: param = (struct ieee_param *)kmalloc(p->length, GFP_KERNEL); ./drivers/staging/rt2870/tmp60:1420: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:3405: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:4366: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:4804: pLinkStatus = (RT_802_11_LINK_STATUS *) kmalloc(sizeof(RT_802_11_LINK_STATUS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:4824: pConfiguration = (NDIS_802_11_CONFIGURATION *) kmalloc(sizeof(NDIS_802_11_CONFIGURATION), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:4890: pStatistics = (NDIS_802_11_STATISTICS *) kmalloc(sizeof(NDIS_802_11_STATISTICS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:4945: pStaConfig = (RT_802_11_STA_CONFIG *) kmalloc(sizeof(RT_802_11_STA_CONFIG), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:5145: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:5182: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp60:5369: pChListBuf = (RT_CHANNEL_LIST_INFO *) kmalloc(sizeof(RT_CHANNEL_LIST_INFO), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/rt_main_dev.c:274: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/rt_main_dev.c:1641: dev = (struct net_device *) kmalloc(alloc_size, GFP_KERNEL); ./drivers/staging/rt2870/common/cmm_info.c:2337: msg = (CHAR *) kmalloc(sizeof(CHAR)*(MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/common/cmm_data.c:1651: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/common/ba_action.c:891: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/common/ba_action.c:924: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/common/ba_action.c:985: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:1420: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:3420: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:4397: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:4835: pLinkStatus = (RT_802_11_LINK_STATUS *) kmalloc(sizeof(RT_802_11_LINK_STATUS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:4855: pConfiguration = (NDIS_802_11_CONFIGURATION *) kmalloc(sizeof(NDIS_802_11_CONFIGURATION), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:4921: pStatistics = (NDIS_802_11_STATISTICS *) kmalloc(sizeof(NDIS_802_11_STATISTICS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:4976: pStaConfig = (RT_802_11_STA_CONFIG *) kmalloc(sizeof(RT_802_11_STA_CONFIG), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:5176: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:5213: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/sta_ioctl.c:5400: pChListBuf = (RT_CHANNEL_LIST_INFO *) kmalloc(sizeof(RT_CHANNEL_LIST_INFO), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:1420: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:3405: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:4366: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:4804: pLinkStatus = (RT_802_11_LINK_STATUS *) kmalloc(sizeof(RT_802_11_LINK_STATUS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:4824: pConfiguration = (NDIS_802_11_CONFIGURATION *) kmalloc(sizeof(NDIS_802_11_CONFIGURATION), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:4890: pStatistics = (NDIS_802_11_STATISTICS *) kmalloc(sizeof(NDIS_802_11_STATISTICS), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:4945: pStaConfig = (RT_802_11_STA_CONFIG *) kmalloc(sizeof(RT_802_11_STA_CONFIG), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:5145: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:5182: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2870/tmp61:5369: pChListBuf = (RT_CHANNEL_LIST_INFO *) kmalloc(sizeof(RT_CHANNEL_LIST_INFO), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/rt_main_dev.c:269: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/common/cmm_info.c:2041: msg = (CHAR *) kmalloc(sizeof(CHAR)*(MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/common/cmm_data.c:2408: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/common/ba_action.c:895: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/common/ba_action.c:928: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/common/ba_action.c:989: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:1424: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:3402: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:4370: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:4808: pLinkStatus = (RT_802_11_LINK_STATUS *) kmalloc(sizeof(RT_802_11_LINK_STATUS), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:4828: pConfiguration = (NDIS_802_11_CONFIGURATION *) kmalloc(sizeof(NDIS_802_11_CONFIGURATION), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:4894: pStatistics = (NDIS_802_11_STATISTICS *) kmalloc(sizeof(NDIS_802_11_STATISTICS), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:4949: pStaConfig = (RT_802_11_STA_CONFIG *) kmalloc(sizeof(RT_802_11_STA_CONFIG), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:5149: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:5186: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt2860/sta_ioctl.c:5378: pChListBuf = (RT_CHANNEL_LIST_INFO *) kmalloc(sizeof(RT_CHANNEL_LIST_INFO), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/rt_main_dev.c:286: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/rt_main_dev.c:1626: dev = (struct net_device *) kmalloc(alloc_size, GFP_KERNEL); ./drivers/staging/rt3070/common/cmm_info.c:2017: msg = (CHAR *) kmalloc(sizeof(CHAR)*(MAX_LEN_OF_MAC_TABLE*MAC_LINE_LEN), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/common/cmm_data.c:1753: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/common/ba_action.c:884: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/common/ba_action.c:917: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/common/ba_action.c:978: MLME_QUEUE_ELEM *Elem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:1441: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:3349: pSsidString = (CHAR *) kmalloc(MAX_LEN_OF_SSID+1, MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:4310: MLME_QUEUE_ELEM *MsgElem = (MLME_QUEUE_ELEM *) kmalloc(sizeof(MLME_QUEUE_ELEM), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:4748: pLinkStatus = (RT_802_11_LINK_STATUS *) kmalloc(sizeof(RT_802_11_LINK_STATUS), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:4768: pConfiguration = (NDIS_802_11_CONFIGURATION *) kmalloc(sizeof(NDIS_802_11_CONFIGURATION), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:4834: pStatistics = (NDIS_802_11_STATISTICS *) kmalloc(sizeof(NDIS_802_11_STATISTICS), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:4889: pStaConfig = (RT_802_11_STA_CONFIG *) kmalloc(sizeof(RT_802_11_STA_CONFIG), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:5089: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:5126: pHTPhyMode = (OID_SET_HT_PHYMODE *) kmalloc(sizeof(OID_SET_HT_PHYMODE), MEM_ALLOC_FLAG); ./drivers/staging/rt3070/sta_ioctl.c:5313: pChListBuf = (RT_CHANNEL_LIST_INFO *) kmalloc(sizeof(RT_CHANNEL_LIST_INFO), MEM_ALLOC_FLAG);
[edit] kcalloc(1, ...) calls that can be simplified to kzalloc(...)
./sound/pci/hda/patch_realtek.c:12228: spec = kcalloc(1, sizeof(*spec), GFP_KERNEL); ./sound/isa/msnd/msnd_midi.c:165: mpu = kcalloc(1, sizeof(*mpu), GFP_KERNEL); ./drivers/block/aoe/aoedev.c:213: d = kcalloc(1, sizeof *d, GFP_ATOMIC); ./drivers/block/aoe/aoecmd.c:945: t = kcalloc(1, sizeof *t, GFP_ATOMIC); ./drivers/net/cxgb3/cxgb3_offload.c:1237: t = kcalloc(1, sizeof(*t), GFP_KERNEL); ./drivers/gpu/drm/drm_gem.c:136: obj = kcalloc(1, sizeof(*obj), GFP_KERNEL);
[edit] People who seem to be redefining MAX() or MIN()
./include/linux/kernel.h:552:#define min(x, y) ({ \
./include/linux/kernel.h:558:#define max(x, y) ({ \
./arch/powerpc/boot/types.h:15:#define min(x,y) ({ \
./arch/powerpc/boot/types.h:21:#define max(x,y) ({ \
./arch/blackfin/mach-bf537/boards/stamp.c:408:#define MAX(x, y) (x > y ? x : y)
./arch/um/drivers/mconsole_user.c:76:#define MIN(a,b) ((a)<(b) ? (a):(b))
./scripts/kconfig/lxdialog/dialog.h:62:#define MIN(x,y) (x < y ? x : y)
./scripts/kconfig/lxdialog/dialog.h:63:#define MAX(x,y) (x > y ? x : y)
./fs/xfs/linux-2.6/xfs_linux.h:153:#define MIN(a,b) (min(a,b))
./fs/xfs/linux-2.6/xfs_linux.h:154:#define MAX(a,b) (max(a,b))
./drivers/scsi/ips.h:92: #define min(x,y) ((x) < (y) ? x : y)
./drivers/media/dvb/siano/smscoreapi.h:46:#define min(a, b) (((a) < (b)) ? (a) : (b))
./drivers/net/tehuti.h:79:#define MIN(x, y) ((x) < (y) ? (x) : (y))
./drivers/staging/comedi/drivers/pcmda12.c:58:#define MIN(a,b) ( ((a) < (b)) ? (a) : (b) )
./drivers/staging/comedi/drivers/pcmmio.c:79:#define MIN(a,b) ( ((a) < (b)) ? (a) : (b) )
./drivers/staging/comedi/drivers/pcmuio.c:82:#define MIN(a,b) ( ((a) < (b)) ? (a) : (b) )
./drivers/staging/sxg/sxg.h:430:#define MIN(a, b) ((u32)(a) < (u32)(b) ? (a) : (b))
./drivers/staging/sxg/sxg.h:431:#define MAX(a, b) ((u32)(a) > (u32)(b) ? (a) : (b))
./drivers/staging/rt2870/rtmp.h:715:#define min(_a, _b) (((_a) < (_b)) ? (_a) : (_b))
./drivers/staging/rt2870/rtmp.h:719:#define max(_a, _b) (((_a) > (_b)) ? (_a) : (_b))
./drivers/staging/rt2860/rtmp.h:785:#define min(_a, _b) (((_a) < (_b)) ? (_a) : (_b))
./drivers/staging/rt2860/rtmp.h:789:#define max(_a, _b) (((_a) > (_b)) ? (_a) : (_b))
./drivers/staging/rt3070/rtmp.h:762:#define min(_a, _b) (((_a) < (_b)) ? (_a) : (_b))
./drivers/staging/rt3070/rtmp.h:766:#define max(_a, _b) (((_a) > (_b)) ? (_a) : (_b))
./drivers/staging/epl/EplDllkCal.c:94:#define min(a,b) (((a) < (b)) ? (a) : (b))
./net/9p/protocol.c:38:#define MIN(a, b) (((a) < (b)) ? (a) : (b))
./net/9p/protocol.c:42:#define MAX(a, b) (((a) > (b)) ? (a) : (b))
[edit] Testing for power of 2 or a single bit set
Be careful with this -- these constructs could be testing whether something is a power or two, OR whether a single bit is set. While mathematically those are the same things, semantically we should distinguish between them.
./mm/debug-pagealloc.c:57: return error && !(error & (error - 1));
./mm/bootmem.c:441: BUG_ON(align & (align - 1));
./mm/slab.c:1806: if (!(error & (error - 1))) {
./mm/slub.c:3059: (KMALLOC_MIN_SIZE & (KMALLOC_MIN_SIZE - 1)));
./mm/dmapool.c:138: } else if (align & (align - 1)) {
./mm/dmapool.c:155: } else if ((boundary < size) || (boundary & (boundary - 1))) {
./include/sound/pcm_params.h:173: if (mask->bits[i] & (mask->bits[i] - 1))
./include/linux/log2.h:54: return (n != 0 && ((n & (n - 1)) == 0));
./include/linux/bitops.h:38: if (count & (count - 1))
./arch/sparc/mm/srmmu.c:352: if (size & (size-1)) {
./arch/sparc/math-emu/math_64.c:109: if((eflag & (eflag - 1)) != 0) {
./arch/sparc/math-emu/math_32.c:224: if ((eflag & (eflag - 1)) != 0) {
./arch/powerpc/sysdev/ppc4xx_pci.c:171: if ((size & (size - 1)) != 0 ||
./arch/powerpc/mm/ppc_mmu_32.c:216: if (n_hpteg & (n_hpteg - 1)) {
./arch/powerpc/boot/cuboot-pq2.c:176: if (mem->size[1] & (mem->size[1] - 1))
./arch/powerpc/boot/cuboot-pq2.c:178: if (io->size[1] & (io->size[1] - 1))
./arch/powerpc/lib/rheap.c:258: if ((alignment & (alignment - 1)) != 0)
./arch/powerpc/lib/rheap.c:307: if ((alignment & (alignment - 1)) != 0)
./arch/powerpc/lib/rheap.c:450: if (size <= 0 || (alignment & (alignment - 1)) != 0)
./arch/blackfin/include/asm/ipipe.h:175: if (__pending && (__pending & (__pending - 1)) == 0) \
./arch/blackfin/kernel/irqchip.c:163: other_ints = pending & (pending - 1);
./arch/arm/include/asm/div64.h:77: (__LINUX_ARM_ARCH__ < 4 && (__b & (__b - 1)) != 0)) { \
./arch/arm/include/asm/div64.h:80: } else if ((__b & (__b - 1)) == 0) { \
./fs/ext4/super.c:1482: if (option & (option - 1)) {
./fs/ext4/super.c:2095: if (t & (t-1))
./fs/nfs/internal.h:226: if ((bsize & (bsize - 1)) || nrbitsp) {
./fs/ntfs/logfile.c:68: logfile_log_page_size & (logfile_log_page_size - 1)) {
./fs/ntfs/inode.c:1573: if (ni->itype.index.block_size & (ni->itype.index.block_size - 1)) {
./fs/hfs/mdb.c:109: while (size & (size - 1))
./drivers/video/uvesafb.c:1580: while (temp_size & (temp_size - 1))
./drivers/video/vesafb.c:424: while (temp_size & (temp_size - 1))
./drivers/scsi/esp_scsi.c:1131: if (!bits || (bits & (bits - 1)))
./drivers/input/mouse/elantech.c:628: etd->parity[i] = etd->parity[i & (i - 1)] ^ 1;
./drivers/virtio/virtio_ring.c:293: if (num & (num - 1)) {
./drivers/usb/storage/alauda.c:230: parity[i] = (parity[i&(i-1)] ^ 1);
./drivers/usb/storage/sddr09.c:203: parity[i] = (parity[i&(i-1)] ^ 1);
./drivers/media/video/cx88/cx88-alsa.c:391: BUG_ON(chip->num_periods & (chip->num_periods-1));
./drivers/net/3c503.c:217: if ( (iobase_reg & (iobase_reg - 1))
./drivers/net/3c503.c:218: || (membase_reg & (membase_reg - 1))) {
./drivers/net/chelsio/cxgb2.c:654: if (cmd->advertising & (cmd->advertising - 1))
./drivers/net/cpmac.c:1246: if (mask & (mask - 1)) {
./drivers/net/wireless/iwlwifi/iwl-tx.c:358: BUILD_BUG_ON(TFD_QUEUE_SIZE_MAX & (TFD_QUEUE_SIZE_MAX - 1));
./drivers/net/benet/be.h:226: BUG_ON(limit & (limit - 1));
./drivers/pcmcia/i82365.c:718: tmp = tmp & (tmp-1);
./drivers/pcmcia/i82365.c:719: if ((tmp & (tmp-1)) == 0)
./drivers/pcmcia/tcic.c:334: base = base & (base-1);
./drivers/pcmcia/tcic.c:490: scan = (mask & (mask-1));
./drivers/pcmcia/tcic.c:491: if (((scan & (scan-1)) == 0) && (poll_interval == 0))
./drivers/infiniband/hw/ipath/ipath_iba7220.c:2115: !(val & (val - 1)))
./drivers/md/raid5.c:5165: if (new_chunk & (new_chunk-1))
./drivers/md/raid5.c:5203: if (new_chunk & (new_chunk-1))
./drivers/mtd/nand/davinci_nand.c:205: } else if (!(diff & (diff - 1))) {
./drivers/staging/comedi/drivers/amplc_pci224.c:790: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci224.c:792: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci224.c:794: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci224.c:796: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci224.c:798: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1274: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1276: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1278: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1280: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1282: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1710: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1712: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1714: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1716: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_pci230.c:1718: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_dio200.c:843: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_dio200.c:845: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_dio200.c:847: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_dio200.c:849: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/amplc_dio200.c:851: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmmio.c:1123: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmmio.c:1125: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmmio.c:1127: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmmio.c:1129: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmmio.c:1131: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmuio.c:1033: if ((cmd->start_src & (cmd->start_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmuio.c:1035: if ((cmd->scan_begin_src & (cmd->scan_begin_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmuio.c:1037: if ((cmd->convert_src & (cmd->convert_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmuio.c:1039: if ((cmd->scan_end_src & (cmd->scan_end_src - 1)) != 0)
./drivers/staging/comedi/drivers/pcmuio.c:1041: if ((cmd->stop_src & (cmd->stop_src - 1)) != 0)
./drivers/gpu/drm/i915/i915_gem_tiling.c:248: if (stride & (stride - 1))
./drivers/gpu/drm/drm_bufs.c:1665: if (size & (size - 1))
./drivers/s390/cio/device.c:1173: if ((sch->schib.pmcw.pim & (sch->schib.pmcw.pim - 1)) != 0)
./net/decnet/dn_route.c:1768: while(dn_rt_hash_mask & (dn_rt_hash_mask - 1))
./kernel/kfifo.c:77: if (size & (size - 1)) {
./drivers/net/wireless/rt2x00/rt2x00reg.h:174:#define is_power_of_two(x) ( !((x) & ((x)-1)) )
[edit] Testing for "(unsigned long)__builtin_return_address(0)" simplification
Where the simplification macros are defined:
include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) include/linux/kernel.h:#define _RET_IP_ (unsigned long)__builtin_return_address(0)
Uses of _RET_IP_:
include/linux/lockdep.h: lock_contended(&(_lock)->dep_map, _RET_IP_); \ include/linux/lockdep.h: lock_acquired(&(_lock)->dep_map, _RET_IP_); \ include/linux/kernel.h:#define _RET_IP_ (unsigned long)__builtin_return_address(0) include/linux/slab.h: __kmalloc_track_caller(size, flags, _RET_IP_) include/linux/slab.h: _RET_IP_) kernel/rwsem.c: rwsem_acquire_read(&sem->dep_map, 0, 0, _RET_IP_); kernel/rwsem.c: rwsem_acquire_read(&sem->dep_map, 0, 1, _RET_IP_); kernel/rwsem.c: rwsem_acquire(&sem->dep_map, 0, 0, _RET_IP_); kernel/rwsem.c: rwsem_acquire(&sem->dep_map, 0, 1, _RET_IP_); kernel/rwsem.c: rwsem_release(&sem->dep_map, 1, _RET_IP_); kernel/rwsem.c: rwsem_release(&sem->dep_map, 1, _RET_IP_); kernel/rwsem.c: rwsem_acquire_read(&sem->dep_map, subclass, 0, _RET_IP_); kernel/rwsem.c: rwsem_acquire(&sem->dep_map, subclass, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); kernel/spinlock.c: rwlock_acquire_read(&lock->dep_map, 0, 1, _RET_IP_); kernel/spinlock.c: rwlock_acquire(&lock->dep_map, 0, 1, _RET_IP_); kernel/spinlock.c: rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); kernel/spinlock.c: spin_acquire_nest(&lock->dep_map, 0, 0, nest_lock, _RET_IP_); kernel/spinlock.c: spin_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: spin_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: spin_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: spin_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: rwlock_release(&lock->dep_map, 1, _RET_IP_); kernel/spinlock.c: spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); kernel/mutex.c: __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, subclass, _RET_IP_); kernel/mutex.c: return __mutex_lock_common(lock, TASK_KILLABLE, subclass, _RET_IP_); kernel/mutex.c: subclass, _RET_IP_); kernel/mutex.c: mutex_release(&lock->dep_map, nested, _RET_IP_); kernel/mutex.c: __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, 0, _RET_IP_); kernel/mutex.c: return __mutex_lock_common(lock, TASK_KILLABLE, 0, _RET_IP_); kernel/mutex.c: return __mutex_lock_common(lock, TASK_INTERRUPTIBLE, 0, _RET_IP_); kernel/mutex.c: mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_); kernel/lockdep.c: print_lock_contention_bug(curr, lock, _RET_IP_); kernel/sched.c: lock_set_subclass(&this_rq->lock.dep_map, 0, _RET_IP_); kernel/trace/trace_events_stage_3.h: * event_trace_printk(_RET_IP_, "<call>: " <fmt>); kernel/trace/trace_events_stage_3.h: event_trace_printk(_RET_IP_, #call ": " fmt); \ mm/slab.c: trace_kmem_cache_alloc(_RET_IP_, ret, mm/slab.c: trace_kmem_cache_alloc_node(_RET_IP_, ret, mm/slab.c: trace_kmem_cache_free(_RET_IP_, objp); mm/slab.c: trace_kfree(_RET_IP_, objp); mm/slub.c: void *ret = slab_alloc(s, gfpflags, -1, _RET_IP_); mm/slub.c: trace_kmem_cache_alloc(_RET_IP_, ret, s->objsize, s->size, gfpflags); mm/slub.c: return slab_alloc(s, gfpflags, -1, _RET_IP_); mm/slub.c: void *ret = slab_alloc(s, gfpflags, node, _RET_IP_); mm/slub.c: trace_kmem_cache_alloc_node(_RET_IP_, ret, mm/slub.c: return slab_alloc(s, gfpflags, node, _RET_IP_); mm/slub.c: slab_free(s, page, x, _RET_IP_); mm/slub.c: trace_kmem_cache_free(_RET_IP_, x); mm/slub.c: ret = slab_alloc(s, flags, -1, _RET_IP_); mm/slub.c: trace_kmalloc(_RET_IP_, ret, size, s->size, flags); mm/slub.c: trace_kmalloc_node(_RET_IP_, ret, mm/slub.c: ret = slab_alloc(s, flags, node, _RET_IP_); mm/slub.c: trace_kmalloc_node(_RET_IP_, ret, size, s->size, flags, node); mm/slub.c: trace_kfree(_RET_IP_, x); mm/slub.c: slab_free(page->slab, page, object, _RET_IP_); mm/slob.c: trace_kmalloc_node(_RET_IP_, ret, mm/slob.c: trace_kmalloc_node(_RET_IP_, ret, mm/slob.c: trace_kfree(_RET_IP_, block); mm/slob.c: trace_kmem_cache_alloc_node(_RET_IP_, b, c->size, mm/slob.c: trace_kmem_cache_alloc_node(_RET_IP_, b, c->size, mm/slob.c: trace_kmem_cache_free(_RET_IP_, b); net/core/sock.c: mutex_acquire(&sk->sk_lock.dep_map, 0, 1, _RET_IP_); net/core/sock.c: mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_); net/core/sock.c: mutex_acquire(&sk->sk_lock.dep_map, subclass, 0, _RET_IP_); net/core/sock.c: mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
Uses of CALLER_ADDR0:
include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) kernel/softirq.c: trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1)); kernel/lockdep.c: time_hardirqs_on(CALLER_ADDR0, ip); kernel/lockdep.c: trace_hardirqs_on_caller(CALLER_ADDR0); kernel/lockdep.c: time_hardirqs_off(CALLER_ADDR0, ip); kernel/lockdep.c: trace_hardirqs_off_caller(CALLER_ADDR0); kernel/sched.c: trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1)); kernel/sched.c: trace_preempt_on(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1)); kernel/trace/trace_sched_wakeup.c: trace_function(wakeup_trace, CALLER_ADDR0, CALLER_ADDR1, flags, pc); kernel/trace/trace_irqsoff.c: trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); kernel/trace/trace_irqsoff.c: trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc); kernel/trace/trace_irqsoff.c: start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_irqsoff.c: stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_irqsoff.c: stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_irqsoff.c: start_critical_timing(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_irqsoff.c: stop_critical_timing(CALLER_ADDR0, caller_addr); kernel/trace/trace_irqsoff.c: start_critical_timing(CALLER_ADDR0, caller_addr);
Continuing uses of (unsigned long)__builtin_return_address(0):
arch/parisc/kernel/stacktrace.c: r.gr[2] = (unsigned long)__builtin_return_address(0); arch/parisc/kernel/traps.c: r.gr[2] = (unsigned long)__builtin_return_address(0); arch/arm/kernel/stacktrace.c: frame.lr = (unsigned long)__builtin_return_address(0); arch/arm/kernel/unwind.c: frame.lr = (unsigned long)__builtin_return_address(0); drivers/mtd/nand/nand_base.c: is_module_text_address((unsigned long)__builtin_return_address(0)) fs/gfs2/glock.c: gh->gh_ip = (unsigned long)__builtin_return_address(0); fs/gfs2/glock.c: gh->gh_ip = (unsigned long)__builtin_return_address(0); fs/gfs2/trans.c: tr->tr_ip = (unsigned long)__builtin_return_address(0); fs/gfs2/glops.c: tr.tr_ip = (unsigned long)__builtin_return_address(0); include/linux/kernel.h:#define _RET_IP_ (unsigned long)__builtin_return_address(0) include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) include/linux/ftrace.h:# define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) kernel/spinlock.c: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); kernel/spinlock.c: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); kernel/spinlock.c: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); kernel/spinlock.c: local_bh_enable_ip((unsigned long)__builtin_return_address(0)); kernel/softirq.c: __local_bh_disable((unsigned long)__builtin_return_address(0)); kernel/softirq.c: trace_softirqs_on((unsigned long)__builtin_return_address(0)); kernel/softirq.c: _local_bh_enable_ip((unsigned long)__builtin_return_address(0)); kernel/softirq.c: __local_bh_disable((unsigned long)__builtin_return_address(0)); kernel/panic.c: caller = (unsigned long)__builtin_return_address(0); kernel/panic.c: unsigned long caller = (unsigned long)__builtin_return_address(0);
Questionable (long) casts of __builtin_return_address(0):
lib/smp_processor_id.c: print_symbol("caller is %s\n", (long)__builtin_return_address(0));
Return to Kernel_cleanup page.

