On Tue, 03 Sep 2013, nidhi mittal hada wrote: > Hi, > > while in the pursuit of learning to understand assembly .. > This is my doubt ..Please help to understand > > *I want to catch where in this disassembly call is made to get_sb function.* > > Somehow in this disassembly, i m not finding, a direct *call* instruction, > with function name, written in english. > > [...] > > *Thats the definition of function* > > vfs_kern_mount(struct file_system_type *type, int flags, const char *name, > void *data) > { > struct vfsmount *mnt; > char *secdata = NULL; > int error; > > if (!type) > return ERR_PTR(-ENODEV); > > error = -ENOMEM; > > * mnt = alloc_vfsmnt(name);* > if (!mnt) > goto out; > > *<<<<<<<<<<<<<<THIS PORTION, IS NOT VISIBLE TO ME, **IN ASSEMBLY > >>>>>>>>>>>>>>>* > if (data && !(type->fs_flags & FS_BINARY_MOUNTDATA)) { > secdata = alloc_secdata(); > if (!secdata) > goto out_mnt; > > error = security_sb_copy_data(data, secdata); > if (error) > goto out_free_secdata; > } > > * error = type->get_sb(type, flags, name, data, > mnt);>>>>>>>>>>>>>>>>thats the line i want to catch, in assembly above. > Where is this call made in assembly ???* > if (error < 0) > goto out_free_secdata; > BUG_ON(!mnt->mnt_sb); > mnt->mnt_sb->s_flags |= MS_BORN; > > * error = security_sb_kern_mount(mnt->mnt_sb, flags, secdata);* > if (error) > goto out_sb; > . > . > . > . > . > *out_sb:* > dput(mnt->mnt_root); > deactivate_locked_super(mnt->mnt_sb); > *out_free_secdata*: > free_secdata(secdata); > *out_mnt:* > free_vfsmnt(mnt); > *out:* >>>368 > return ERR_PTR(error); > } You won't find a "direct *call* instruction, with function name, written in english" because 'get_sb' is not a function[*] but a function pointer. And moreover it is a member of a structure. You will have to find out where a pointer to this structure is stored and where a member relative to this structure it is referenced in a call instruction. (Hint: It is the only function pointer inside 'type' which is used in this function. Moreover, it is the only function pointer used in this function at all.) Regards, Tobi [*] To my shame, I have no clue about the subtleties of definitions of entities in the C language. Please forgive me if my words don't accord with these definitions. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies